| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <?php
- namespace App\Models;
- use App\Enums\PartnerAgreementStatusEnum;
- 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;
- 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,
- ];
- }
- 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');
- }
- }
|