'integer', 'player_id' => 'integer', 'draw_id' => 'integer', 'dimension' => 'integer', 'digit_slot' => 'integer', 'unit_bet_amount' => 'integer', 'total_bet_amount' => 'integer', 'rebate_rate_snapshot' => 'decimal:4', 'commission_rate_snapshot' => 'decimal:4', 'actual_deduct_amount' => 'integer', 'odds_snapshot_json' => 'json', 'rule_snapshot_json' => 'json', 'combination_count' => 'integer', 'estimated_max_payout' => 'integer', 'risk_locked_amount' => 'integer', 'win_amount' => 'integer', 'jackpot_win_amount' => 'integer', 'settled_at' => 'datetime', ]; } public function order(): BelongsTo { return $this->belongsTo(TicketOrder::class, 'order_id'); } public function player(): BelongsTo { return $this->belongsTo(Player::class); } public function draw(): BelongsTo { return $this->belongsTo(Draw::class); } public function combinations(): HasMany { return $this->hasMany(TicketCombination::class, 'ticket_item_id'); } public function latestSettlementDetail(): HasOne { return $this->hasOne(TicketSettlementDetail::class, 'ticket_item_id')->latestOfMany('id'); } }