<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Setting extends Model
{
    // 対応するテーブル名
    protected $table = 'setting';

    // 主キー
    protected $primaryKey = 'setting_id';

    // 主キーは自動増分
    public $incrementing = true;

    // 主キーの型
    protected $keyType = 'int';

    // 一括代入可能なカラム
    protected $fillable = [
        'edit_master',             // 編集マスタ
        'web_master',              // ウェブ参照マスタ
        'auto_change_date',        // ウェブ参照マスタ自動切り替え日時
        'auto_chage_master',       // 自動切換えウェブ参照マスタ（※DB定義のままchage）
        're-issue_alert_number',   // 再発行アラート回数
        'image_base_url1',         // ニュースイメージURLベース名
        'image_base_url2',         // 本人確認写真URLベース名
        'printable_alert_flag',    // プリンタ印字残警告フラグ
        'printable_number',        // プリンタロール紙印字可能数
        'printable_alert_number',  // プリンタロール紙印字残警告数
        'printer_keep_alive',      // プリンタ制御プログラムキープアライブ間隔（分）
        'operator_id',             // 更新オペレータID
    ];

    // キャスト（型変換）
    protected $casts = [
        'auto_change_date'        => 'datetime', // 日時
        're-issue_alert_number'   => 'integer',  // 整数
        'printable_alert_flag'    => 'boolean',  // 真偽値
        'printable_number'        => 'integer',  // 整数
        'printable_alert_number'  => 'integer',  // 整数
        'printer_keep_alive'      => 'integer',  // 整数
        'operator_id'             => 'integer',  // 整数
        'created_at'              => 'datetime', // 作成日時
        'updated_at'              => 'datetime', // 更新日時
    ];
    
    // アクセサ（getter）
    public function getReissueAlertNumberAttribute()
    {
        return $this->attributes['re-issue_alert_number'] ?? null;
    }

    // ミューテタ（setter）
    public function setReissueAlertNumberAttribute($value)
    {
        $this->attributes['re-issue_alert_number'] = $value;
    }

}
