<?php

namespace App\Models;

use App\Models\BaseModel;

class ClassProgressReport extends BaseModel
{
    protected $table = 'class_progress_reports';

    // ✅ CI: useTimestamps = true (created_at/updated_at)
    public $timestamps = true;

    protected $fillable = [
        'class_section_id',
        'teacher_id',
        'week_start',
        'week_end',
        'subject',
        'unit_title',
        'materials',
        'covered',
        'homework',
        'assessment',
        'status',
        'status_notes',
        'class_notes',
        'next_week_plan',
        'support_needed',
        'flags_json',
        'attachment_path',
        'created_at',
        'updated_at',
    ];

    protected $casts = [
        'class_section_id' => 'integer',
        'teacher_id'       => 'integer',

        // change to 'datetime' if your columns are DATETIME
        'week_start'       => 'date',
        'week_end'         => 'date',

        // If flags_json is JSON in DB, this makes it an array automatically
        'flags_json'       => 'array',
    ];

    /* Optional relationships */
    public function classSection()
    {
        return $this->belongsTo(ClassSection::class, 'class_section_id');
    }

    public function teacher()
    {
        return $this->belongsTo(User::class, 'teacher_id');
    }

    public function attachments()
    {
        return $this->hasMany(ClassProgressAttachment::class, 'report_id');
    }
}