CoachUser.php 3.6 KB

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