Invite.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace App\Models;
  3. use Auth;
  4. use Illuminate\Database\Eloquent\Model;
  5. use Illuminate\Database\Eloquent\Relations\BelongsTo;
  6. use Illuminate\Database\Eloquent\SoftDeletes;
  7. /**
  8. * 邀请码
  9. */
  10. class Invite extends Model
  11. {
  12. use SoftDeletes;
  13. protected $table = 'invite';
  14. protected $casts = ['dateline' => 'datetime', 'deleted_at' => 'datetime'];
  15. protected $guarded = [];
  16. public function scopeUid($query)
  17. {
  18. return $query->whereInviterId(Auth::id());
  19. }
  20. public function inviter(): BelongsTo
  21. {
  22. return $this->belongsTo(User::class);
  23. }
  24. public function invitee(): BelongsTo
  25. {
  26. return $this->belongsTo(User::class);
  27. }
  28. public function getStatusLabelAttribute(): string
  29. {
  30. return match ($this->attributes['status']) {
  31. 0 => '<span class="badge badge-success">'.trans('common.status.unused').'</span>',
  32. 1 => '<span class="badge badge-danger">'.trans('common.status.used').'</span>',
  33. 2 => '<span class="badge badge-default">'.trans('common.status.expire').'</span>',
  34. default => '<span class="badge badge-default"> '.trans('common.status.unknown').' </span>',
  35. };
  36. }
  37. }