PartnerAgreementService.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace App\Models;
  3. use App\Enums\PartnerAgreementServiceStatusEnum;
  4. use Illuminate\Database\Eloquent\Model;
  5. use Illuminate\Database\Eloquent\Relations\BelongsTo;
  6. use Illuminate\Database\Eloquent\Relations\HasMany;
  7. use Illuminate\Database\Eloquent\SoftDeletes;
  8. use App\Models\Media;
  9. class PartnerAgreementService extends Model
  10. {
  11. use SoftDeletes;
  12. protected $guarded = ['id'];
  13. protected function casts(): array
  14. {
  15. return [
  16. 'price' => 'float',
  17. 'associate_price' => 'float',
  18. 'supplier_price' => 'float',
  19. 'requires_scheduling' => 'boolean',
  20. 'status' => PartnerAgreementServiceStatusEnum::class,
  21. ];
  22. }
  23. public function partnerAgreement(): BelongsTo
  24. {
  25. return $this->belongsTo(PartnerAgreement::class);
  26. }
  27. public function category(): BelongsTo
  28. {
  29. return $this->belongsTo(Category::class);
  30. }
  31. public function appointments(): HasMany
  32. {
  33. return $this->hasMany(Appointment::class);
  34. }
  35. public function media(): HasMany
  36. {
  37. return $this->hasMany(Media::class, 'source_id')->where('source', 'partner_agreement_service');
  38. }
  39. }