import Foundation

typealias ActionId = String

enum PlayerAction: String, Codable {
    /// The player can request cards to be dealt
    case deal = "deal"

    /// The player doubles on the initial four cards
    case initialDoubleCost = "double"

    /// The player does not double on the initial four cards
    case noDoubleCost = "skip"

    /// The player offers a wedding (one trump card)
    case offerWedding = "wedding"

    /// The player can choose to accept the wedding
    case acceptWedding = "accept"

    /// The player matches or increases the game during auction
    case increaseOrMatchGame = "bid"

    /// The player does not want to play
    case withdrawFromAuction = "out"

    /// The player claims to win and doubles the game cost ("schießen")
    case doubleDuringGame = "raise"

    /// The url path for the client to call (e.g. /player/deal)
    var id: ActionId {
        rawValue
    }
}
