<?php

namespace App\Models;

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

/** 彩票钱包流水 {@see wallet_txns} */
final class WalletTxn extends Model
{
    protected $table = 'wallet_txns';

    protected $fillable = [
        'txn_no',
        'player_id',
        'wallet_id',
        'biz_type',
        'biz_no',
        'direction',
        'amount',
        'balance_before',
        'balance_after',
        'status',
        'external_ref_no',
        'idempotent_key',
        'remark',
    ];

    protected function casts(): array
    {
        return [
            'direction' => 'integer',
            'amount' => 'integer',
            'balance_before' => 'integer',
            'balance_after' => 'integer',
        ];
    }

    public function player(): BelongsTo
    {
        return $this->belongsTo(Player::class);
    }

    public function wallet(): BelongsTo
    {
        return $this->belongsTo(PlayerWallet::class, 'wallet_id');
    }
}
