UserInfo.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace App\Module\User\Model;
  3. use App\Module\Merchant\Model\Merchant;
  4. use App\Module\User\Enums\PhoneStatus;
  5. use App\Module\User\Enums\Status;
  6. use App\Module\User\Enums\Status2;
  7. use App\Module\User\Model\Events\UserInfoSaved;
  8. use App\Module\User\Model\Events\UserInfoUpdate;
  9. use UCore\ModelCore;
  10. use Illuminate\Database\Eloquent\Relations\HasOne;
  11. use Illuminate\Database\Eloquent\SoftDeletes;
  12. /**
  13. * 用户信息
  14. *
  15. * field start
  16. *
  17. * @property int $user_id 用户ID
  18. * @property int $status 状态
  19. * @property string $google2fa_secret
  20. * @property string $nickname 昵称
  21. * @property string $avatar 头像
  22. * @property \Carbon\Carbon $created_at
  23. * @property \Carbon\Carbon $updated_at
  24. * @property \Carbon\Carbon $deleted_at
  25. * field end
  26. *
  27. * Class UserInfo
  28. * @property UserPhone $user_phone
  29. */
  30. class UserInfo extends \App\Models\ModelCore
  31. {
  32. use SoftDeletes;
  33. protected $primaryKey = 'user_id';
  34. protected $casts = [
  35. 'status' => Status::class,
  36. ];
  37. protected $dispatchesEvents = [
  38. 'updated' => UserInfoUpdate::class,
  39. 'saved' => UserInfoSaved::class
  40. ];
  41. public function merchant(): HasOne
  42. {
  43. return $this->hasOne(Merchant::class, 'user_id', 'user_id')->orderByDesc('id');
  44. }
  45. public function user(): HasOne
  46. {
  47. return $this->hasOne(User::class, 'id', 'user_id');
  48. }
  49. public function user_phone(): HasOne
  50. {
  51. return $this->hasOne(UserPhone::class, 'user_id', 'user_id')->where('status', '=', PhoneStatus::BIND);
  52. }
  53. }