<?php

declare(strict_types=1);

namespace App\Models;

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

/**
 * Snapshot diario de las métricas financieras del dashboard admin, por empresa.
 * Generado a las 23:55 por `credify:snapshot-dashboard`. Base para la flecha de
 * tendencia semana-sobre-semana (hoy vs hace ≥7 días).
 *
 * @property int $id
 * @property int $company_id
 * @property Carbon $snapshot_date
 * @property float $business_total
 * @property float $cash_base
 * @property float $por_cobrar
 * @property float $overdue
 * @property float $delinquency_rate
 */
class DashboardSnapshot extends Model
{
    public $timestamps = false;

    protected $fillable = [
        'company_id',
        'snapshot_date',
        'business_total',
        'cash_base',
        'por_cobrar',
        'overdue',
        'delinquency_rate',
        'created_at',
    ];

    protected $casts = [
        'snapshot_date' => 'date',
        'business_total' => 'float',
        'cash_base' => 'float',
        'por_cobrar' => 'float',
        'overdue' => 'float',
        'delinquency_rate' => 'float',
        'created_at' => 'datetime',
    ];

    public function company(): BelongsTo
    {
        return $this->belongsTo(Company::class);
    }
}
