Group.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace App\Models;
  3. use App\Enums\DefaultStatusEnum;
  4. use Illuminate\Database\Eloquent\Factories\HasFactory;
  5. use Illuminate\Database\Eloquent\Model;
  6. use Illuminate\Database\Eloquent\Relations\BelongsToMany;
  7. use Illuminate\Database\Eloquent\SoftDeletes;
  8. /**
  9. * @property int $id
  10. * @property string $name
  11. * @property DefaultStatusEnum $status
  12. * @property \Illuminate\Support\Carbon|null $created_at
  13. * @property \Illuminate\Support\Carbon|null $updated_at
  14. * @property \Illuminate\Support\Carbon|null $deleted_at
  15. * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Unit> $units
  16. * @property-read int|null $units_count
  17. * @method static \Illuminate\Database\Eloquent\Builder<static>|Group newModelQuery()
  18. * @method static \Illuminate\Database\Eloquent\Builder<static>|Group newQuery()
  19. * @method static \Illuminate\Database\Eloquent\Builder<static>|Group onlyTrashed()
  20. * @method static \Illuminate\Database\Eloquent\Builder<static>|Group query()
  21. * @method static \Illuminate\Database\Eloquent\Builder<static>|Group whereCreatedAt($value)
  22. * @method static \Illuminate\Database\Eloquent\Builder<static>|Group whereDeletedAt($value)
  23. * @method static \Illuminate\Database\Eloquent\Builder<static>|Group whereId($value)
  24. * @method static \Illuminate\Database\Eloquent\Builder<static>|Group whereName($value)
  25. * @method static \Illuminate\Database\Eloquent\Builder<static>|Group whereStatus($value)
  26. * @method static \Illuminate\Database\Eloquent\Builder<static>|Group whereUpdatedAt($value)
  27. * @method static \Illuminate\Database\Eloquent\Builder<static>|Group withTrashed(bool $withTrashed = true)
  28. * @method static \Illuminate\Database\Eloquent\Builder<static>|Group withoutTrashed()
  29. * @mixin \Eloquent
  30. */
  31. class Group extends Model
  32. {
  33. use HasFactory, SoftDeletes;
  34. protected $table = 'groups';
  35. protected $guarded = ['id'];
  36. protected $casts = [
  37. 'status' => DefaultStatusEnum::class,
  38. 'created_at' => 'datetime',
  39. 'updated_at' => 'datetime',
  40. 'deleted_at' => 'datetime',
  41. ];
  42. public function units(): BelongsToMany
  43. {
  44. return $this->belongsToMany(Unit::class, 'group_units');
  45. }
  46. }