<?php

declare(strict_types=1);

namespace App\Models;

use App\Contracts\Model;
use Illuminate\Support\Carbon;

/**
 * @property string      $id
 * @property string      $name
 * @property string      $name_long
 * @property Carbon|null $created_at
 * @property Carbon|null $updated_at
 *
 * @method static \Illuminate\Database\Eloquent\Builder<static>|SimBriefLayout newModelQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|SimBriefLayout newQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|SimBriefLayout query()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|SimBriefLayout whereCreatedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|SimBriefLayout whereId($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|SimBriefLayout whereName($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|SimBriefLayout whereNameLong($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|SimBriefLayout whereUpdatedAt($value)
 *
 * @mixin \Eloquent
 */
class SimBriefLayout extends Model
{
    public $table = 'simbrief_layouts';

    protected $fillable = [
        'id',
        'name',
        'name_long',
    ];

    public static array $rules = [
        'id'        => 'required|string',
        'name'      => 'required|string',
        'name_long' => 'required|string',
    ];

    #[\Override]
    protected function casts(): array
    {
        return [
            'id'        => 'string',
            'name'      => 'string',
            'name_long' => 'string',
        ];
    }
}
