CoachUser.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <?php
  2. namespace App\Models;
  3. use App\Enums\TechnicianStatus;
  4. use App\Traits\HasStateText;
  5. use Illuminate\Database\Eloquent\SoftDeletes;
  6. use Slowlyo\OwlAdmin\Models\BaseModel as Model;
  7. /**
  8. * 技师用户模型
  9. */
  10. class CoachUser extends Model
  11. {
  12. use HasStateText, SoftDeletes;
  13. protected $table = 'coach_users';
  14. protected $guarded = [];
  15. /**
  16. * 状态枚举类
  17. */
  18. protected string $stateEnumClass = TechnicianStatus::class;
  19. /**
  20. * @Author FelixYin
  21. * @description 技师关联信息
  22. */
  23. public function info()
  24. {
  25. return $this->hasOne(CoachInfoRecord::class, 'id', 'info_record_id');
  26. }
  27. /**
  28. * 获取技师关联的用户
  29. */
  30. public function user()
  31. {
  32. return $this->belongsTo(MemberUser::class, 'user_id');
  33. }
  34. /**
  35. * 获取技师的统计数据
  36. */
  37. public function statistic()
  38. {
  39. return $this->hasOne(CoachStatistic::class, 'coach_id');
  40. }
  41. /**
  42. * @Author FelixYin
  43. * @description 技师所属会员
  44. */
  45. public function member()
  46. {
  47. return $this->belongsTo(MemberUser::class, 'user_id');
  48. }
  49. /**
  50. * @Author FelixYin
  51. * @description 基本信息认证记录
  52. */
  53. public function infoRecords()
  54. {
  55. return $this->hasMany(CoachInfoRecord::class, 'coach_id', 'id');
  56. }
  57. /**
  58. * @Author FelixYin
  59. * @description 技师关联资质信息
  60. */
  61. public function qual()
  62. {
  63. return $this->hasOne(CoachQualRecord::class, 'id', 'qualification_record_id');
  64. }
  65. /**
  66. * @Author FelixYin
  67. * @description 技师关联评分
  68. */
  69. public function score()
  70. {
  71. return $this->hasOne(CoachScore::class, 'coach_id', 'id');
  72. }
  73. /**
  74. * @Author FelixYin
  75. * @description 技师关联定位
  76. */
  77. public function locations()
  78. {
  79. return $this->hasMany(CoachLocation::class, 'coach_id', 'id');
  80. }
  81. /**
  82. * @Author FelixYin
  83. * @description 技师关联订单
  84. */
  85. public function orders()
  86. {
  87. return $this->hasMany(Order::class, 'coach_id', 'id');
  88. }
  89. /**
  90. * @Author FelixYin
  91. * @description 技师关联抢单记录
  92. */
  93. public function grabRecords()
  94. {
  95. return $this->hasMany(OrderGrabRecord::class, 'coach_id', 'id');
  96. }
  97. /**
  98. * @Author FelixYin
  99. * @description 技师关联评论
  100. */
  101. public function comments()
  102. {
  103. return $this->hasMany(OrderComment::class, 'coach_id', 'id');
  104. }
  105. /**
  106. * @Author FelixYin
  107. * @description 技师关联钱包
  108. */
  109. public function wallet()
  110. {
  111. return $this->morphOne(Wallet::class, 'owner');
  112. }
  113. /**
  114. * @Author FelixYin
  115. * @description 技师所属店铺
  116. */
  117. public function shop()
  118. {
  119. return $this->belongsTo(ShopInfo::class, 'shop_id', 'shop_id');
  120. }
  121. /**
  122. * @Author FelixYin
  123. * @description 技师关联店铺开通服务
  124. */
  125. public function shopOpenService()
  126. {
  127. return $this->hasMany(ShopCoachService::class, 'coach_id', 'id');
  128. }
  129. /**
  130. * @Author FelixYin
  131. * @description 技师关联实名信息
  132. */
  133. public function real()
  134. {
  135. return $this->hasOne(CoachRealAuthRecord::class, 'id', 'real_auth_record_id');
  136. }
  137. /**
  138. * @Author FelixYin
  139. * @description 技师开通项目
  140. */
  141. public function projects()
  142. {
  143. return $this->hasMany(CoachProject::class, 'coach_id', 'id');
  144. }
  145. /**
  146. * @Author FelixYin
  147. * @description 技师关联资质记录
  148. */
  149. public function qualRecords()
  150. {
  151. return $this->hasMany(CoachQualRecord::class, 'coach_id', 'id');
  152. }
  153. /**
  154. * @Author FelixYin
  155. * @description 技师关联实名认证记录
  156. */
  157. public function realAuthRecords()
  158. {
  159. return $this->hasMany(CoachRealAuthRecord::class, 'coach_id', 'id');
  160. }
  161. }