<?php

namespace App\Models;

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

/** 单注对 Jackpot 的蓄水 {@see jackpot_contributions} */
final class JackpotContribution extends Model
{
    protected $fillable = [
        'jackpot_pool_id',
        'draw_id',
        'player_id',
        'ticket_item_id',
        'contribution_amount',
        'currency_code',
    ];

    protected function casts(): array
    {
        return [
            'jackpot_pool_id' => 'integer',
            'draw_id' => 'integer',
            'player_id' => 'integer',
            'ticket_item_id' => 'integer',
            'contribution_amount' => 'integer',
        ];
    }

    public function pool(): BelongsTo
    {
        return $this->belongsTo(JackpotPool::class, 'jackpot_pool_id');
    }

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

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

    public function ticketItem(): BelongsTo
    {
        return $this->belongsTo(TicketItem::class, 'ticket_item_id');
    }
}
