File manager - Edit - /home/autoph/public_html/projects/aha-api/app/Models/ServiceSlot.php
Back
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use OwenIt\Auditing\Contracts\Auditable; use OwenIt\Auditing\Auditable as AuditableTrait; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\Model; use App\Models\ServiceSlotTimeHdr; use App\Models\Dealership; class ServiceSlot extends Model implements Auditable { use HasFactory, AuditableTrait; protected $table = 'service_slots'; /** * The attributes that are NOT mass assignable. * */ protected $guarded = [ 'deleted_at', ]; protected $appends = [ 'available', 'fully_booked', 'blocked', ]; /** * The attributes that should be cast. * * @var array<string, string> */ protected $casts = [ 'created_at' => 'datetime', 'updated_at' => 'datetime', 'deleted_at' => 'datetime', ]; public function dealership() { return $this->belongsTo(Dealership::class, 'dealer_id', 'id'); } public function service_slot_time_hdrs() { return $this->hasMany(ServiceSlotTimeHdr::class, 'service_slot_id', 'id'); } protected function getAvailableAttribute() { $available = false; $records = ServiceSlotTimeHdr::with(['service_slot_time_dtls']) ->where('service_slot_id',$this->id)->whereHas('service_slot_time_dtls', function($query) { $query->where(['enabled' =>1, 'booked'=>0]); })->get(); if($records && count($records)>0) { $available = true; } return $available; } protected function getFullyBookedAttribute() { $booked = false; $records = ServiceSlotTimeHdr::with(['service_slot_time_dtls']) ->where('service_slot_id',$this->id)->whereHas('service_slot_time_dtls', function($query) { $query->where(['booked'=>1]); })->get(); if($records && count($records)>0) { $booked = true; $records2 = ServiceSlotTimeHdr::with(['service_slot_time_dtls']) ->where('service_slot_id',$this->id)->whereHas('service_slot_time_dtls', function($query) { $query->where(['enabled'=>1, 'booked'=>0]); })->get(); if($records2 && count($records2)> 0) { $booked = false; } } return $booked; } protected function getBlockedAttribute() { $blocked = true; $records = ServiceSlotTimeHdr::where('service_slot_id',$this->id)->whereHas('service_slot_time_dtls', function($query) { $query->where('enabled',1)->orWhere('booked',1); })->get(); if($records && count($records)>0) { $blocked = false; } return $blocked; } }
| ver. 1.4 |
.
| PHP 8.1.32 | Generation time: 0 |
proxy
|
phpinfo
|
Settings