<?php

namespace App\Models\Game\Player;

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

/**
 * @property int $id
 * @property int $vnum0
 * @property int $count0
 * @property int $vnum1
 * @property int $count1
 * @property int $vnum2
 * @property int $count2
 * @property int $vnum3
 * @property int $count3
 * @property int $vnum4
 * @property int $count4
 * @property int $cost
 * @property int $src_vnum
 * @property int $result_vnum
 * @property int $prob
 * @property-read \App\Models\Game\Player\ItemProto|null $item0
 * @property-read \App\Models\Game\Player\ItemProto|null $item1
 * @property-read \App\Models\Game\Player\ItemProto|null $item2
 * @property-read \App\Models\Game\Player\ItemProto|null $item3
 * @property-read \App\Models\Game\Player\ItemProto|null $item4
 * @method static \Illuminate\Database\Eloquent\Builder<static>|RefineProto newModelQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|RefineProto newQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|RefineProto query()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|RefineProto whereCost($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|RefineProto whereCount0($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|RefineProto whereCount1($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|RefineProto whereCount2($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|RefineProto whereCount3($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|RefineProto whereCount4($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|RefineProto whereId($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|RefineProto whereProb($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|RefineProto whereResultVnum($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|RefineProto whereSrcVnum($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|RefineProto whereVnum0($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|RefineProto whereVnum1($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|RefineProto whereVnum2($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|RefineProto whereVnum3($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|RefineProto whereVnum4($value)
 * @mixin \Eloquent
 */
class RefineProto extends Model
{
    /**
     * Indicates if the model should be timestamped.
     *
     * @var bool
     */
    public $timestamps = false;

    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'refine_proto';

    /**
     * The primary key for the model.
     *
     * @var string
     */
    protected $primaryKey = 'id';

    /**
     * The attributes that are mass assignable.
     *
     * @var array<int, string>
     */
    protected $fillable = [

    ];

    /**
     * The attributes that should be hidden for serialization.
     *
     * @var array<int, string>
     */
    protected $hidden = [

    ];

    /**
     * The attributes that should be cast.
     *
     * @var array<string, string>
     */
    protected $casts = [

    ];

    public function item0(): BelongsTo
    {
        return $this->belongsTo(ItemProto::class, 'vnum0');
    }

    public function item1(): BelongsTo
    {
        return $this->belongsTo(ItemProto::class, 'vnum1');
    }

    public function item2(): BelongsTo
    {
        return $this->belongsTo(ItemProto::class, 'vnum2');
    }

    public function item3(): BelongsTo
    {
        return $this->belongsTo(ItemProto::class, 'vnum3');
    }

    public function item4(): BelongsTo
    {
        return $this->belongsTo(ItemProto::class, 'vnum4');
    }
}
