<?php

namespace App\Legacy;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Auth;

/**
 * 旧システム オペレータキューモデル（互換）
 * - テーブル: operator_que
 * - 主キー: que_id
 * - 旧定数/関連取得メソッドを維持
 */
class OperatorQue extends Model
{
    public const CREATED_AT = 'created_at';
    public const UPDATED_AT = 'updated_at';

    /**
     * キュー種別
     */
    public const QueClass = [
        '本人確認（社会人）',
        '本人確認（学生）',
        'タグ発送',
        '予約告知電話',
        '定期更新電話',
        '返金',
        '再発行リミット超過',
        '支払い催促',
        'シール発行催促',
        'サーバーエラー',
        'プリンタエラー',
        'スキャナーエラー',
        'プリンタ用紙残少警告',
    ];

    /**
     * キューステータス
     */
    public const QueStatus = [
        'キュー発生',
        'キュー作業中',
        'キュー作業済',
        '返金済',
    ];

    protected $table = 'operator_que';
    protected $primaryKey = 'que_id';

    protected $fillable = [
        'user_id',
        'que_comment',
        'park_id',
        'que_class',
        'que_status',
        'que_status_comment',
    ];

    protected static function boot()
    {
        parent::boot();
        static::creating(function (OperatorQue $model) {
            if (Auth::check() && property_exists($model, 'operator_id')) {
                $model->operator_id = Auth::user()->ope_id ?? null;
            }
        });
    }

    /**
     * 利用者取得（旧互換）
     */
    public function getUser()
    {
        return $this->belongsTo(User::class, 'user_id', 'user_seq')->first();
    }

    /**
     * 駐輪場取得（旧互換）
     */
    public function getPark()
    {
        return $this->belongsTo(Park::class, 'park_id', 'park_id')->first();
    }
}




