<?php

declare(strict_types=1);

namespace Kylin\Report\Models;

use Kylin\Core\Models\BaseModel;

/**
 * 报表模型
 *
 * 依据《统计法》第九条：统计数据不得泄露商业秘密。
 * 依据《个人信息保护法》第二十八条：敏感字段脱敏展示。
 *
 * @property int    $id
 * @property string $name           报表名称
 * @property string $report_type    报表类型（daily/weekly/monthly/quarterly/yearly）
 * @property string $category       业务分类
 * @property string $filters        筛选条件（JSON）
 * @property string $data           报表数据（JSON）
 * @property string $generated_at   生成时间
 * @property int    $generated_by   生成人 ID
 */
class Report extends BaseModel
{
    protected $table = 'kylin_reports';

    protected $fillable = [
        'name', 'report_type', 'category',
        'filters', 'data', 'generated_at', 'generated_by',
    ];

    protected $casts = [
        'filters' => 'encrypted',
        'data' => 'encrypted',
        'generated_at' => 'datetime',
    ];
}