'datetime', 'completed_at' => 'datetime', ]; } protected static function booted(): void { static::creating(function (Consultation $consultation) { if (! $consultation->uuid) { $consultation->uuid = (string) Str::uuid(); } }); } public function getRouteKeyName(): string { return 'uuid'; } public function visit(): BelongsTo { return $this->belongsTo(Visit::class, 'visit_id'); } public function appointment(): BelongsTo { return $this->belongsTo(Appointment::class, 'appointment_id'); } public function patient(): BelongsTo { return $this->belongsTo(Patient::class, 'patient_id'); } public function practitioner(): BelongsTo { return $this->belongsTo(Practitioner::class, 'practitioner_id'); } public function vitalSigns(): HasMany { return $this->hasMany(VitalSign::class, 'consultation_id'); } public function diagnoses(): HasMany { return $this->hasMany(Diagnosis::class, 'consultation_id'); } public function assessments(): HasMany { return $this->hasMany(Assessment::class, 'consultation_id'); } public function documents(): HasMany { return $this->hasMany(ConsultationDocument::class, 'consultation_id'); } public function investigationRequests(): HasMany { return $this->hasMany(InvestigationRequest::class, 'consultation_id'); } public function prescriptions(): HasMany { return $this->hasMany(Prescription::class, 'consultation_id'); } }