// // BetType.swift // Baccarat // // Bet types and payout rates for baccarat. // import Foundation import SwiftUI /// The types of bets available in baccarat. enum BetType: String, CaseIterable, Identifiable { case player = "Player" case banker = "Banker" case tie = "Tie" var id: String { rawValue } /// The payout multiplier for winning this bet type. /// Player pays 1:1, Banker pays 0.95:1 (5% commission), Tie pays 8:1. var payoutMultiplier: Double { switch self { case .player: return 1.0 case .banker: return 0.95 // 5% commission case .tie: return 8.0 } } /// Display name with payout info. var displayWithPayout: String { switch self { case .player: return "Player (1:1)" case .banker: return "Banker (0.95:1)" case .tie: return "Tie (8:1)" } } /// The color associated with this bet type. var color: Color { switch self { case .player: return .blue case .banker: return .red case .tie: return .green } } } /// Represents a bet placed by the user. struct Bet: Identifiable, Equatable { let id = UUID() let type: BetType let amount: Int static func == (lhs: Bet, rhs: Bet) -> Bool { lhs.id == rhs.id } }