Franchisee.php 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace App\Models;
  3. use App\ValueObjects\Cnpj;
  4. use App\ValueObjects\Cpf;
  5. use Illuminate\Database\Eloquent\Factories\HasFactory;
  6. use Illuminate\Database\Eloquent\Model;
  7. use Illuminate\Database\Eloquent\Relations\BelongsToMany;
  8. use Illuminate\Database\Eloquent\SoftDeletes;
  9. /**
  10. * @property int $id
  11. * @property string $name
  12. * @property \App\ValueObjects\Cpf|null $cpf
  13. * @property string|null $rg
  14. * @property \App\ValueObjects\Cnpj|null $cnpj
  15. * @property string|null $phone
  16. * @property string|null $cellphone_number
  17. * @property string $street
  18. * @property string|null $address_number
  19. * @property string $neighborhood
  20. * @property string $postal_code
  21. * @property int $city_id
  22. * @property int $state_id
  23. * @property string|null $birth_date
  24. * @property \Illuminate\Support\Carbon|null $created_at
  25. * @property \Illuminate\Support\Carbon|null $updated_at
  26. * @property \Illuminate\Support\Carbon|null $deleted_at
  27. * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Unit> $units
  28. * @property-read int|null $units_count
  29. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee newModelQuery()
  30. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee newQuery()
  31. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee onlyTrashed()
  32. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee query()
  33. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee whereAddressNumber($value)
  34. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee whereBirthDate($value)
  35. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee whereCellphoneNumber($value)
  36. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee whereCityId($value)
  37. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee whereCnpj($value)
  38. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee whereCpf($value)
  39. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee whereCreatedAt($value)
  40. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee whereDeletedAt($value)
  41. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee whereId($value)
  42. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee whereName($value)
  43. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee whereNeighborhood($value)
  44. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee wherePhone($value)
  45. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee wherePostalCode($value)
  46. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee whereRg($value)
  47. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee whereStateId($value)
  48. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee whereStreet($value)
  49. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee whereUpdatedAt($value)
  50. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee withTrashed(bool $withTrashed = true)
  51. * @method static \Illuminate\Database\Eloquent\Builder<static>|Franchisee withoutTrashed()
  52. * @mixin \Eloquent
  53. */
  54. class Franchisee extends Model
  55. {
  56. use HasFactory, SoftDeletes;
  57. protected $table = 'franchisees';
  58. protected $guarded = ['id'];
  59. protected $casts = [
  60. 'cnpj' => Cnpj::class,
  61. 'cpf' => Cpf::class,
  62. 'created_at' => 'datetime',
  63. 'updated_at' => 'datetime',
  64. 'deleted_at' => 'datetime',
  65. ];
  66. public function units(): BelongsToMany
  67. {
  68. return $this->belongsToMany(Unit::class, 'franchisee_units');
  69. }
  70. }