'datetime', 'completed_at' => 'datetime', ]; } protected static function booted(): void { static::creating(function (Visit $visit) { if (! $visit->uuid) { $visit->uuid = (string) Str::uuid(); } }); } public function getRouteKeyName(): string { return 'uuid'; } public function patient(): BelongsTo { return $this->belongsTo(Patient::class, 'patient_id'); } public function branch(): BelongsTo { return $this->belongsTo(Branch::class, 'branch_id'); } public function organization(): BelongsTo { return $this->belongsTo(Organization::class, 'organization_id'); } public function appointment(): HasOne { return $this->hasOne(Appointment::class, 'visit_id'); } public function consultations(): HasMany { return $this->hasMany(Consultation::class, 'visit_id'); } public function assessments(): HasMany { return $this->hasMany(Assessment::class, 'visit_id'); } public function bill(): HasOne { return $this->hasOne(Bill::class, 'visit_id'); } public function bills(): HasMany { return $this->hasMany(Bill::class, 'visit_id'); } }