package domain

type FootballMarket int64

const (
	FOOTBALL_FULL_TIME_RESULT FootballMarket = 40    //"full_time_result"
	FOOTBALL_DOUBLE_CHANCE    FootballMarket = 10114 //"double_chance"
	FOOTBALL_GOALS_OVER_UNDER FootballMarket = 981   //"goals_over_under"
	FOOTBALL_CORRECT_SCORE    FootballMarket = 43    //"correct_score"
	FOOTBALL_ASIAN_HANDICAP   FootballMarket = 938   //"asian_handicap"
	FOOTBALL_GOAL_LINE        FootballMarket = 10143 //"goal_line"

	FOOTBALL_HALF_TIME_RESULT          FootballMarket = 1579  //"half_time_result"
	FOOTBALL_FIRST_HALF_ASIAN_HANDICAP FootballMarket = 50137 //"1st_half_asian_handicap"
	FOOTBALL_FIRST_HALF_GOAL_LINE      FootballMarket = 50136 //"1st_half_goal_line"
	FOOTBALL_FIRST_TEAM_TO_SCORE       FootballMarket = 1178  //"first_team_to_score"
	FOOTBALL_GOALS_ODD_EVEN            FootballMarket = 10111 //"goals_odd_even"
	FOOTBALL_DRAW_NO_BET               FootballMarket = 10544 //"draw_no_bet"

	FOOTBALL_CORNERS                    FootballMarket = 760   //"corners"
	FOOTBALL_CORNERS_TWO_WAY            FootballMarket = 10235 //"corners_2_way"
	FOOTBALL_FIRST_HALF_CORNERS         FootballMarket = 10539 //"first_half_corners"
	FOOTBALL_ASIAN_TOTAL_CORNERS        FootballMarket = 10164 //"asian_total_corners"
	FOOTBALL_FIRST_HALF_ASIAN_CORNERS   FootballMarket = 10233 //"1st_half_asian_corners"
	FOOTBALL_FIRST_HALF_GOALS_ODD_EVEN  FootballMarket = 10206 //"1st_half_goals_odd_even"
	FOOTBALL_SECOND_HALF_GOALS_ODD_EVEN FootballMarket = 50433 //"2nd_half_goals_odd_even"

)

type BasketBallMarket int64

const (
	// Main
	BASKETBALL_GAME_LINES    BasketBallMarket = 1453 //"game_lines"
	BASKETBALL_FIRST_HALF    BasketBallMarket = 928  //"1st_half"
	BASKETBALL_FIRST_QUARTER BasketBallMarket = 941  //"1st_quarter"

	// Main Props
	BASKETBALL_RESULT_AND_BOTH_TEAMS_TO_SCORE_X_POINTS BasketBallMarket = 181273 //"result_and_both_teams_to_score_'x'_points"
	BASKETBALL_DOUBLE_RESULT                           BasketBallMarket = 1517   //"double_result"
	BASKETBALL_MATCH_RESULT_AND_TOTAL                  BasketBallMarket = 181125 //"match_result_and_total"
	BASKETBALL_MATCH_HANDICAP_AND_TOTAL                BasketBallMarket = 181126 //"match_handicap_and_total"
	BASKETBALL_RACE_TO_20_POINTS                       BasketBallMarket = 1503   //"race_to_20_points"
	BASKETBALL_TIED_AT_END_OF_REGULATION               BasketBallMarket = 181127 //"tied_at_end_of_regulation"
	BASKETBALL_QUARTER_CORRECT_SCORE                   BasketBallMarket = 181276 //"quarter_correct_score"

	// Half Props
	BASKETBALL_FIRST_HALF_TEAM_TOTALS                  BasketBallMarket = 181159 //"1st_half_team_totals"
	BASKETBALL_FIRST_HALF_WINNING_MARGIN               BasketBallMarket = 181185 //"1st_half_winning_margin"
	BASKETBALL_FIRST_HALF_RESULT_AND_TOTAL             BasketBallMarket = 181181 //"1st_half_result_and_total"
	BASKETBALL_FIRST_HALF_HANDICAP_AND_TOTAL           BasketBallMarket = 181182 //"1st_half_handicap_and_total"
	BASKETBALL_FIRST_HALF_RACE_TO_POINTS               BasketBallMarket = 181186 //"1st_half_race_to_(points)"
	BASKETBALL_FIRST_HALF_BOTH_TEAMS_TO_SCORE_X_POINTS BasketBallMarket = 181195 //"1st_half_both_teams_to_score_x_points"
	BASKETBALL_FIRST_HALF_TEAM_TO_SCORE_X_POINTS       BasketBallMarket = 181198 //"1st_half_team_to_score_x_points"
	BASKETBALL_FIRST_HALF_MONEY_LINE_3_WAY             BasketBallMarket = 181183 //"1st_half_money_line_3_way"

	// Others
	BASKETBALL_GAME_TOTAL_ODD_EVEN                        BasketBallMarket = 180013 //"game_total_odd_even"
	BASKETBALL_FIRST_QUARTER_TOTAL_ODD_EVEN               BasketBallMarket = 180170 //"1st_quarter_total_odd_even"
	BASKETBALL_FIRST_QUARTER_MARGIN_OF_VICTORY            BasketBallMarket = 180180 //"1st_quarter_margin_of_victory"
	BASKETBALL_HIGHEST_SCORING_HALF                       BasketBallMarket = 181131 //"highest_scoring_half"
	BASKETBALL_HIGHEST_SCORING_QUARTER                    BasketBallMarket = 181132 //"highest_scoring_quarter"
	BASKETBALL_FIRST_HALF_DOUBLE_CHANCE                   BasketBallMarket = 181184 //"1st_half_double_chance"
	BASKETBALL_FIRST_HALF_TOTAL_ODD_EVEN                  BasketBallMarket = 181204 //"1st_half_total_odd_even"
	BASKETBALL_FIRST_QUARTER_3_WAY_LINES                  BasketBallMarket = 181212 //"1st_quarter_3_way_lines"
	BASKETBALL_FIRST_QUARTER_RESULT_AND_TOTAL             BasketBallMarket = 181242 //"1st_quarter_result_and_total"
	BASKETBALL_FIRST_QUARTER_HANDICAP_AND_TOTAL           BasketBallMarket = 181243 //"1st_quarter_handicap_and_total"
	BASKETBALL_FIRST_QUARTER_DOUBLE_CHANCE                BasketBallMarket = 181245 //"1st_quarter_double_chance"
	BASKETBALL_FIRST_QUARTER_RACE_TO_POINTS               BasketBallMarket = 181248 //"1st_quarter_race_to_(points)"
	BASKETBALL_FIRST_QUARTER_BOTH_TEAMS_TO_SCORE_X_POINTS BasketBallMarket = 181252 //"1st_quarter_both_teams_to_score_x_points"
	BASKETBALL_FIRST_QUARTER_TEAM_TO_SCORE_X_POINTS       BasketBallMarket = 181255 //"1st_quarter_team_to_score_x_points"

	// Quarter Props
	BASKETBALL_FIRST_QUARTER_TEAM_TOTALS    BasketBallMarket = 181220 //"1st_quarter_team_totals"
	BASKETBALL_FIRST_QUARTER_WINNING_MARGIN BasketBallMarket = 181247 //"1st_quarter_winning_margin"

	// Team Props
	BASKETBALL_TEAM_WITH_HIGHEST_SCORING_QUARTER BasketBallMarket = 181377 //"team_with_highest_scoring_quarter"
	BASKETBALL_TEAM_TOTALS                       BasketBallMarket = 181335 //"team_totals"

	BASKETBALL_TEAM_TOTAL_ODD_EVEN BasketBallMarket = 1731 //"team_total_odd_even"
)

type IceHockeyMarket int64

const (
	// Main
	ICE_HOCKEY_GAME_LINES IceHockeyMarket = 972

	ICE_HOCKEY_FIRST_PERIOD           IceHockeyMarket = 1531
	ICE_HOCKEY_THREE_WAY              IceHockeyMarket = 170008
	ICE_HOCKEY_DRAW_NO_BET            IceHockeyMarket = 170447
	ICE_HOCKEY_DOUBLE_CHANCE          IceHockeyMarket = 170038
	ICE_HOCKEY_WINNING_MARGIN         IceHockeyMarket = 1556
	ICE_HOCKEY_HIGHEST_SCORING_PERIOD IceHockeyMarket = 1557
	ICE_HOCKEY_TIED_AFTER_REGULATION  IceHockeyMarket = 170479
	ICE_HOCKEY_WHEN_WILL_MATCH_END    IceHockeyMarket = 170481
	ICE_HOCKEY_GAME_TOTAL_ODD_EVEN    IceHockeyMarket = 170013

	ICE_HOCKEY_ALTERNATIVE_PUCK_LINE_TWO_WAY IceHockeyMarket = 170226
	ICE_HOCKEY_ALTERNATIVE_TOTAL_TWO_WAY     IceHockeyMarket = 170240
)

type CricketMarket int64

const (
	// Main
	CRICKET_TO_WIN_THE_MATCH    CricketMarket = 1246
	CRICKET_TEAM_TOP_BATTER     CricketMarket = 1241
	CRICKET_TEAM_TOP_BOWLE      CricketMarket = 1242
	CRICKET_PLAYER_OF_THE_MATCH CricketMarket = 346
	CRICKET_FIRST_WICKET_METHOD CricketMarket = 30205

	// First Over
	CRICKET_FIRST_OVER_TOTAL_RUNS          CricketMarket = 300336
	CRICKET_FIRST_OVER_TOTAL_RUNS_Odd_Even CricketMarket = 300118

	// Inninigs 1
	CRICKET_FIRST_INNINIGS_SCORE        CricketMarket = 300338
	CRICKET_INNINGS_OF_MATCH_BOWLED_OUT CricketMarket = 300108

	// Match
	CRICKET_TOP_MATCH_BATTER CricketMarket = 30245
	CRICKET_TOP_MATCH_BOWLER CricketMarket = 30246
)

type VolleyballMarket int64

const (
	VOLLEYBALL_GAME_LINES                    VolleyballMarket = 910000
	VOLLEYBALL_CORRECT_SET_SCORE             VolleyballMarket = 910201
	VOLLEYBALL_MATCH_TOTAL_ODD_EVEN          VolleyballMarket = 910217
	VOLLEYBALL_SET_ONE_LINES                 VolleyballMarket = 910204
	VOLLEYBALL_SET_ONE_TO_GO_TO_EXTRA_POINTS VolleyballMarket = 910209
	VOLLEYBALL_SET_ONE_TOTAL_ODD_EVEN        VolleyballMarket = 910218
)

type DartsMarket int64

const (
	// Main
	DARTS_MATCH_WINNER      DartsMarket = 703    // match_winner
	DARTS_MATCH_DOUBLE      DartsMarket = 150228 // match_double
	DARTS_MATCH_TREBLE      DartsMarket = 150230 // match_treble
	DARTS_CORRECT_LEG_SCORE DartsMarket = 150015 // correct_leg_score
	DARTS_TOTAL_LEGS        DartsMarket = 150117 // total_legs

	DARTS_MOST_HUNDERED_EIGHTYS          DartsMarket = 150030 // "most_180s"
	DARTS_TOTAL_HUNDERED_EIGHTYS         DartsMarket = 150012 // total_180s
	DARTS_MOST_HUNDERED_EIGHTYS_HANDICAP DartsMarket = 150227 // most_180s_handicap
	DARTS_PLAYER_HUNDERED_EIGHTYS        DartsMarket = 150121 // player_180s
	DARTS_FIRST_DART                     DartsMarket = 150125 // first_dart
)

type FutsalMarket int64

const (
	// Main
	FUTSAL_GAME_LINES FutsalMarket = 830001
	FUTSAL_MONEY_LINE FutsalMarket = 830130

	// Others
	FUTSAL_DOUBLE_RESULT_9_WAY FutsalMarket = 830124

	// Score
	FUTSAL_TEAM_TO_SCORE_FIRST FutsalMarket = 830141
	FUTSAL_RACE_TO_GOALS       FutsalMarket = 830142
)

type AmericanFootballMarket int64

const (
	// Main
	AMERICAN_FOOTBALL_GAME_LINES AmericanFootballMarket = 1441
)

type RugbyLeagueMarket int64

const (
	// Main
	RUGBY_L_GAME_BETTING_2_WAY RugbyLeagueMarket = 190006
)

type RugbyUnionMarket int64

const (
	// Main
	RUGBY_U_GAME_BETTING_2_WAY RugbyLeagueMarket = 80007
)

type BaseballMarket int64

const (
	// Main
	BASEBALL_GAME_LINES BaseballMarket = 1096
)

// TODO: Move this into the database so that it can be modified dynamically

var SupportedMarkets = map[int64]bool{

	// Football Markets
	int64(FOOTBALL_FULL_TIME_RESULT):           true, //"full_time_result"
	int64(FOOTBALL_DOUBLE_CHANCE):              true, //"double_chance"
	int64(FOOTBALL_GOALS_OVER_UNDER):           true, //"goals_over_under"
	int64(FOOTBALL_CORRECT_SCORE):              true, //"correct_score"
	int64(FOOTBALL_ASIAN_HANDICAP):             true, //"asian_handicap"
	int64(FOOTBALL_GOAL_LINE):                  true, //"goal_line"
	int64(FOOTBALL_HALF_TIME_RESULT):           true, //"half_time_result"
	int64(FOOTBALL_FIRST_HALF_ASIAN_HANDICAP):  true, //"1st_half_asian_handicap"
	int64(FOOTBALL_FIRST_HALF_GOAL_LINE):       true, //"1st_half_goal_line"
	int64(FOOTBALL_FIRST_TEAM_TO_SCORE):        true, //"first_team_to_score"
	int64(FOOTBALL_GOALS_ODD_EVEN):             true, //"goals_odd_even"
	int64(FOOTBALL_DRAW_NO_BET):                true, //"draw_no_bet"
	int64(FOOTBALL_CORNERS):                    true,
	int64(FOOTBALL_CORNERS_TWO_WAY):            true,
	int64(FOOTBALL_FIRST_HALF_CORNERS):         true,
	int64(FOOTBALL_ASIAN_TOTAL_CORNERS):        true,
	int64(FOOTBALL_FIRST_HALF_ASIAN_CORNERS):   true,
	int64(FOOTBALL_FIRST_HALF_GOALS_ODD_EVEN):  true,
	int64(FOOTBALL_SECOND_HALF_GOALS_ODD_EVEN): true,

	// Basketball Markets
	int64(BASKETBALL_GAME_LINES):                              true,
	int64(BASKETBALL_RESULT_AND_BOTH_TEAMS_TO_SCORE_X_POINTS): true,
	int64(BASKETBALL_DOUBLE_RESULT):                           true,
	int64(BASKETBALL_MATCH_RESULT_AND_TOTAL):                  true,
	int64(BASKETBALL_MATCH_HANDICAP_AND_TOTAL):                true,
	int64(BASKETBALL_GAME_TOTAL_ODD_EVEN):                     true,
	int64(BASKETBALL_TEAM_TOTALS):                             true,
	int64(BASKETBALL_TEAM_TOTAL_ODD_EVEN):                     true,
	int64(BASKETBALL_RACE_TO_20_POINTS):                       false,
	int64(BASKETBALL_TIED_AT_END_OF_REGULATION):               false,

	int64(BASKETBALL_FIRST_HALF):                              true,
	int64(BASKETBALL_FIRST_HALF_TEAM_TOTALS):                  true,
	int64(BASKETBALL_FIRST_HALF_WINNING_MARGIN):               false,
	int64(BASKETBALL_FIRST_HALF_HANDICAP_AND_TOTAL):           true,
	int64(BASKETBALL_FIRST_HALF_BOTH_TEAMS_TO_SCORE_X_POINTS): true,
	int64(BASKETBALL_FIRST_HALF_MONEY_LINE_3_WAY):             true,
	int64(BASKETBALL_FIRST_HALF_DOUBLE_CHANCE):                true,
	int64(BASKETBALL_FIRST_HALF_TOTAL_ODD_EVEN):               true,
	int64(BASKETBALL_HIGHEST_SCORING_HALF):                    true,
	int64(BASKETBALL_FIRST_HALF_RESULT_AND_TOTAL):             false,
	int64(BASKETBALL_FIRST_HALF_RACE_TO_POINTS):               false,
	int64(BASKETBALL_FIRST_HALF_TEAM_TO_SCORE_X_POINTS):       false,

	int64(BASKETBALL_FIRST_QUARTER):                              true,
	int64(BASKETBALL_FIRST_QUARTER_HANDICAP_AND_TOTAL):           true,
	int64(BASKETBALL_FIRST_QUARTER_DOUBLE_CHANCE):                true,
	int64(BASKETBALL_FIRST_QUARTER_TEAM_TOTALS):                  true,
	int64(BASKETBALL_FIRST_QUARTER_WINNING_MARGIN):               false,
	int64(BASKETBALL_FIRST_QUARTER_TOTAL_ODD_EVEN):               true,
	int64(BASKETBALL_HIGHEST_SCORING_QUARTER):                    true,
	int64(BASKETBALL_TEAM_WITH_HIGHEST_SCORING_QUARTER):          true,
	int64(BASKETBALL_QUARTER_CORRECT_SCORE):                      false,
	int64(BASKETBALL_FIRST_QUARTER_3_WAY_LINES):                  false,
	int64(BASKETBALL_FIRST_QUARTER_RESULT_AND_TOTAL):             true,
	int64(BASKETBALL_FIRST_QUARTER_RACE_TO_POINTS):               false,
	int64(BASKETBALL_FIRST_QUARTER_BOTH_TEAMS_TO_SCORE_X_POINTS): false,
	int64(BASKETBALL_FIRST_QUARTER_TEAM_TO_SCORE_X_POINTS):       false,
	int64(BASKETBALL_FIRST_QUARTER_MARGIN_OF_VICTORY):            false,

	// Ice Hockey Markets
	int64(ICE_HOCKEY_GAME_LINES):             true,
	int64(ICE_HOCKEY_FIRST_PERIOD):           true,
	int64(ICE_HOCKEY_THREE_WAY):              true,
	int64(ICE_HOCKEY_DRAW_NO_BET):            true,
	int64(ICE_HOCKEY_DOUBLE_CHANCE):          true,
	int64(ICE_HOCKEY_WINNING_MARGIN):         true,
	int64(ICE_HOCKEY_HIGHEST_SCORING_PERIOD): true,
	int64(ICE_HOCKEY_TIED_AFTER_REGULATION):  true,
	int64(ICE_HOCKEY_WHEN_WILL_MATCH_END):    false,
	int64(ICE_HOCKEY_GAME_TOTAL_ODD_EVEN):    true,

	int64(ICE_HOCKEY_ALTERNATIVE_PUCK_LINE_TWO_WAY): false,
	int64(ICE_HOCKEY_ALTERNATIVE_TOTAL_TWO_WAY):     false,

	// Cricket Markets
	int64(CRICKET_TO_WIN_THE_MATCH): true,

	int64(CRICKET_FIRST_OVER_TOTAL_RUNS_Odd_Even): false,
	int64(CRICKET_FIRST_INNINIGS_SCORE):           false,
	int64(CRICKET_INNINGS_OF_MATCH_BOWLED_OUT):    false,
	int64(CRICKET_FIRST_OVER_TOTAL_RUNS):          false,
	int64(CRICKET_TEAM_TOP_BATTER):                false,
	int64(CRICKET_TEAM_TOP_BOWLE):                 false,
	int64(CRICKET_PLAYER_OF_THE_MATCH):            false,
	int64(CRICKET_FIRST_WICKET_METHOD):            false,
	int64(CRICKET_TOP_MATCH_BATTER):               false,
	int64(CRICKET_TOP_MATCH_BOWLER):               false,

	// Volleyball Markets
	int64(VOLLEYBALL_GAME_LINES):           true,
	int64(VOLLEYBALL_CORRECT_SET_SCORE):    true,
	int64(VOLLEYBALL_MATCH_TOTAL_ODD_EVEN): true,

	int64(VOLLEYBALL_SET_ONE_LINES):                 false,
	int64(VOLLEYBALL_SET_ONE_TO_GO_TO_EXTRA_POINTS): false,
	int64(VOLLEYBALL_SET_ONE_TOTAL_ODD_EVEN):        false,

	// Darts Markets
	int64(DARTS_MATCH_WINNER):      true,
	int64(DARTS_TOTAL_LEGS):        true,
	int64(DARTS_CORRECT_LEG_SCORE): false,
	int64(DARTS_MATCH_DOUBLE):      false,
	int64(DARTS_MATCH_TREBLE):      false,

	int64(DARTS_MOST_HUNDERED_EIGHTYS):          false,
	int64(DARTS_TOTAL_HUNDERED_EIGHTYS):         false,
	int64(DARTS_MOST_HUNDERED_EIGHTYS_HANDICAP): false,
	int64(DARTS_PLAYER_HUNDERED_EIGHTYS):        false,
	int64(DARTS_FIRST_DART):                     false,

	// Futsal Markets
	int64(FUTSAL_MONEY_LINE):          true,
	int64(FUTSAL_GAME_LINES):          true,
	int64(FUTSAL_TEAM_TO_SCORE_FIRST): true,

	int64(FUTSAL_DOUBLE_RESULT_9_WAY): false,
	int64(FUTSAL_RACE_TO_GOALS):       false,

	// American Football Markets
	int64(AMERICAN_FOOTBALL_GAME_LINES): true,

	// Rugby League Markets
	int64(RUGBY_L_GAME_BETTING_2_WAY): true,

	// Ruby Union Markets
	int64(RUGBY_U_GAME_BETTING_2_WAY): true,

	// Baseball Markets
	int64(BASEBALL_GAME_LINES): true,
}
