'Programat', 'arrived' => 'Sosit', 'done' => 'Finalizat', 'cancelled' => 'Anulat', 'no_show' => 'Neprezentat', ]; protected $fillable = [ 'company_id', 'post_id', 'client_id', 'vehicle_id', 'master_id', 'deal_id', 'date', 'time_start', 'time_end', 'title', 'color', 'status', 'notes', ]; protected $casts = [ 'date' => 'date', ]; public function post(): BelongsTo { return $this->belongsTo(Post::class); } public function client(): BelongsTo { return $this->belongsTo(Client::class); } public function vehicle(): BelongsTo { return $this->belongsTo(Vehicle::class); } public function master(): BelongsTo { return $this->belongsTo(User::class, 'master_id'); } public function deal(): BelongsTo { return $this->belongsTo(Deal::class); } /** Auto-send confirmation email when a 'scheduled' appointment is created. */ protected static function booted(): void { static::created(function (self $a) { if ($a->status === 'scheduled') { app(\App\Services\NotificationDispatcher::class)->appointmentConfirmed($a); } }); } }