package domain import "time" type TicketOutcome struct { ID int64 `json:"id" example:"1"` TicketID int64 `json:"ticket_id" example:"1"` EventID int64 `json:"event_id" example:"1"` HomeTeamName string `json:"home_team_name" example:"Manchester"` AwayTeamName string `json:"away_team_name" example:"Liverpool"` MarketID int64 `json:"market_id" example:"1"` MarketName string `json:"market_name" example:"Fulltime Result"` OddID int64 `json:"odd_id" example:"1"` Odd float32 `json:"odd" example:"1.5"` OddName string `json:"odd_name" example:"1"` OddHeader string `json:"odd_header" example:"1"` OddHandicap string `json:"odd_handicap" example:"1"` Status OutcomeStatus `json:"status" example:"1"` Expires time.Time `json:"expires" example:"2025-04-08T12:00:00Z"` } type CreateTicketOutcome struct { TicketID int64 `json:"ticket_id" example:"1"` EventID int64 `json:"event_id" example:"1"` OddID int64 `json:"odd_id" example:"1"` HomeTeamName string `json:"home_team_name" example:"Manchester"` AwayTeamName string `json:"away_team_name" example:"Liverpool"` MarketID int64 `json:"market_id" example:"1"` MarketName string `json:"market_name" example:"Fulltime Result"` Odd float32 `json:"odd" example:"1.5"` OddName string `json:"odd_name" example:"1"` OddHeader string `json:"odd_header" example:"1"` OddHandicap string `json:"odd_handicap" example:"1"` Expires time.Time `json:"expires" example:"2025-04-08T12:00:00Z"` } // ID will serve as the fast code since this doesn't need to be secure type Ticket struct { ID int64 Amount Currency TotalOdds float32 CompanyID int64 } type GetTicket struct { ID int64 Amount Currency TotalOdds float32 Outcomes []TicketOutcome CompanyID int64 } type CreateTicket struct { Amount Currency TotalOdds float32 IP string CompanyID int64 } type CreateTicketOutcomeReq struct { // TicketID int64 `json:"ticket_id" example:"1"` EventID int64 `json:"event_id" example:"1"` OddID int64 `json:"odd_id" example:"1"` MarketID int64 `json:"market_id" example:"1"` // HomeTeamName string `json:"home_team_name" example:"Manchester"` // AwayTeamName string `json:"away_team_name" example:"Liverpool"` // MarketName string `json:"market_name" example:"Fulltime Result"` // Odd float32 `json:"odd" example:"1.5"` // OddName string `json:"odd_name" example:"1"` // Expires time.Time `json:"expires" example:"2025-04-08T12:00:00Z"` } type CreateTicketReq struct { Outcomes []CreateTicketOutcomeReq `json:"outcomes"` Amount float32 `json:"amount" example:"100.0"` } type CreateTicketRes struct { FastCode int64 `json:"fast_code" example:"1234"` CreatedNumber int64 `json:"created_number" example:"3"` } type TicketRes struct { ID int64 `json:"id" example:"1"` Outcomes []TicketOutcome `json:"outcomes"` Amount float32 `json:"amount" example:"100.0"` TotalOdds float32 `json:"total_odds" example:"4.22"` CompanyID int64 `json:"company_id" example:"1"` } type TicketFilter struct { CompanyID ValidInt64 }