| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
- namespace App\Models;
- use App\Enums\PartnerAgreementStatusEnum;
- use App\Enums\PartnerAgreementTypeEnum;
- use Illuminate\Database\Eloquent\Model;
- use Illuminate\Database\Eloquent\Relations\BelongsTo;
- use Illuminate\Database\Eloquent\Relations\HasMany;
- use Illuminate\Database\Eloquent\Relations\HasOne;
- use Illuminate\Database\Eloquent\SoftDeletes;
- use App\Models\User;
- class PartnerAgreement extends Model
- {
- use SoftDeletes;
- protected $guarded = ['id'];
- protected function casts(): array
- {
- return [
- 'discount_percentage' => 'float',
- 'contract_start' => 'date',
- 'contract_end' => 'date',
- 'status' => PartnerAgreementStatusEnum::class,
- 'type' => PartnerAgreementTypeEnum::class,
- ];
- }
- public function user(): BelongsTo
- {
- return $this->belongsTo(User::class);
- }
- public function category(): BelongsTo
- {
- return $this->belongsTo(Category::class);
- }
- public function city(): BelongsTo
- {
- return $this->belongsTo(City::class);
- }
- public function state(): BelongsTo
- {
- return $this->belongsTo(State::class);
- }
- public function services(): HasMany
- {
- return $this->hasMany(PartnerAgreementService::class);
- }
- public function appointments(): HasMany
- {
- return $this->hasMany(Appointment::class);
- }
- public function logo(): HasOne
- {
- return $this->hasOne(Media::class, 'source_id')->where('source', 'partner_agreement_logo');
- }
- public function media(): HasMany
- {
- return $this->hasMany(Media::class, 'source_id')->where('source', 'partner_agreement');
- }
- }
|