<?php

declare(strict_types=1);

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;

final class Appointment extends Model
{
    protected $table = 'appointments';
    protected $fillable = [
        'tenant_id', 'student_id', 'instructor_id', 'lesson_type_id',
        'title', 'category', 'start_at', 'end_at', 'units',
        'status', 'notes', 'warning_acknowledged', 'created_by', 'updated_by',
    ];
    protected $casts = [
        'student_id' => 'integer', 'instructor_id' => 'integer',
        'lesson_type_id' => 'integer', 'units' => 'integer',
        'warning_acknowledged' => 'integer', 'created_by' => 'integer', 'updated_by' => 'integer',
    ];

    public function tenant(): BelongsTo { return $this->belongsTo(Tenant::class, 'tenant_id'); }
    public function student(): BelongsTo { return $this->belongsTo(Student::class, 'student_id'); }
    public function instructor(): BelongsTo { return $this->belongsTo(Instructor::class, 'instructor_id'); }
    public function lessonType(): BelongsTo { return $this->belongsTo(LessonType::class, 'lesson_type_id'); }
}