10401 lines
255 KiB
YAML
10401 lines
255 KiB
YAML
definitions:
|
|
domain.ARIFPAYPaymentMethod:
|
|
properties:
|
|
id:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
type: object
|
|
domain.AleaPlayCallback:
|
|
properties:
|
|
amount:
|
|
type: number
|
|
currency:
|
|
type: string
|
|
event_id:
|
|
type: string
|
|
game_id:
|
|
type: string
|
|
is_free_round:
|
|
type: boolean
|
|
multiplier:
|
|
type: number
|
|
operator_id:
|
|
type: string
|
|
round_id:
|
|
type: string
|
|
session_id:
|
|
type: string
|
|
signature:
|
|
type: string
|
|
timestamp:
|
|
type: integer
|
|
transaction_id:
|
|
type: string
|
|
type:
|
|
description: BET, WIN, CASHOUT, etc.
|
|
type: string
|
|
user_id:
|
|
type: string
|
|
type: object
|
|
domain.ArifpayVerifyByTransactionIDRequest:
|
|
properties:
|
|
paymentType:
|
|
type: integer
|
|
transactionId:
|
|
type: string
|
|
type: object
|
|
domain.AtlasBetWinRequest:
|
|
properties:
|
|
betAmount:
|
|
type: number
|
|
casino_id:
|
|
type: string
|
|
currency:
|
|
type: string
|
|
game:
|
|
type: string
|
|
hash:
|
|
type: string
|
|
player_id:
|
|
type: string
|
|
round_id:
|
|
type: string
|
|
session_id:
|
|
type: string
|
|
timestamp:
|
|
type: string
|
|
transaction_id:
|
|
type: string
|
|
winAmount:
|
|
type: number
|
|
type: object
|
|
domain.AtlasBetWinResponse:
|
|
properties:
|
|
balance:
|
|
type: number
|
|
player_id:
|
|
type: string
|
|
type: object
|
|
domain.AtlasGameEntity:
|
|
properties:
|
|
demo_url:
|
|
description: ✅ new field
|
|
type: string
|
|
deviceType:
|
|
type: string
|
|
game_id:
|
|
type: string
|
|
has_demo:
|
|
type: boolean
|
|
hasFreeBets:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
providerId:
|
|
type: string
|
|
thumbnail_img_url:
|
|
description: ✅ new field
|
|
type: string
|
|
type:
|
|
type: string
|
|
type: object
|
|
domain.AtlasGameInitRequest:
|
|
properties:
|
|
currency:
|
|
type: string
|
|
game:
|
|
type: string
|
|
language:
|
|
type: string
|
|
player_id:
|
|
type: string
|
|
type: object
|
|
domain.AtlasGameInitResponse:
|
|
properties:
|
|
url:
|
|
type: string
|
|
type: object
|
|
domain.AtlasGetUserDataRequest:
|
|
properties:
|
|
casino_id:
|
|
type: string
|
|
game:
|
|
type: string
|
|
player_id:
|
|
type: string
|
|
session_id:
|
|
type: string
|
|
type: object
|
|
domain.AtlasGetUserDataResponse:
|
|
properties:
|
|
balance:
|
|
type: number
|
|
player_id:
|
|
type: string
|
|
type: object
|
|
domain.Bank:
|
|
properties:
|
|
acct_length:
|
|
type: integer
|
|
active:
|
|
type: integer
|
|
bank_logo:
|
|
description: URL or base64
|
|
type: string
|
|
country_id:
|
|
type: integer
|
|
created_at:
|
|
type: string
|
|
currency:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
is_24hrs:
|
|
description: nullable
|
|
type: integer
|
|
is_active:
|
|
type: integer
|
|
is_mobilemoney:
|
|
description: nullable
|
|
type: integer
|
|
is_rtgs:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
slug:
|
|
type: string
|
|
swift:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
domain.BaseEvent:
|
|
properties:
|
|
addedTime:
|
|
$ref: '#/definitions/domain.ValidInt'
|
|
avgBetAmount:
|
|
type: integer
|
|
awayTeam:
|
|
type: string
|
|
awayTeamID:
|
|
type: integer
|
|
awayTeamImage:
|
|
type: string
|
|
defaultIsActive:
|
|
type: boolean
|
|
defaultIsFeatured:
|
|
type: boolean
|
|
defaultWinningUpperLimit:
|
|
type: integer
|
|
fetchedAt:
|
|
type: string
|
|
homeTeam:
|
|
type: string
|
|
homeTeamID:
|
|
type: integer
|
|
homeTeamImage:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
isLive:
|
|
type: boolean
|
|
isMonitored:
|
|
type: boolean
|
|
leagueCC:
|
|
$ref: '#/definitions/domain.ValidString'
|
|
leagueID:
|
|
type: integer
|
|
leagueName:
|
|
type: string
|
|
matchMinute:
|
|
$ref: '#/definitions/domain.ValidInt'
|
|
matchName:
|
|
type: string
|
|
matchPeriod:
|
|
$ref: '#/definitions/domain.ValidInt'
|
|
numberOfBets:
|
|
type: integer
|
|
score:
|
|
$ref: '#/definitions/domain.ValidString'
|
|
source:
|
|
$ref: '#/definitions/domain.EventSource'
|
|
sourceEventID:
|
|
type: string
|
|
sportID:
|
|
type: integer
|
|
startTime:
|
|
type: string
|
|
status:
|
|
$ref: '#/definitions/domain.EventStatus'
|
|
timerStatus:
|
|
$ref: '#/definitions/domain.ValidString'
|
|
totalAmount:
|
|
type: integer
|
|
totalOddOutcomes:
|
|
type: integer
|
|
totalPotentialWinnings:
|
|
type: integer
|
|
type: object
|
|
domain.BaseLeague:
|
|
properties:
|
|
bet365ID:
|
|
$ref: '#/definitions/domain.ValidInt32'
|
|
countryCode:
|
|
$ref: '#/definitions/domain.ValidString'
|
|
defaultIsActive:
|
|
type: boolean
|
|
defaultIsFeatured:
|
|
type: boolean
|
|
id:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
sportID:
|
|
type: integer
|
|
type: object
|
|
domain.BetOutcome:
|
|
properties:
|
|
away_team_name:
|
|
example: Liverpool
|
|
type: string
|
|
bet_id:
|
|
example: 1
|
|
type: integer
|
|
event_id:
|
|
example: 1
|
|
type: integer
|
|
expires:
|
|
example: "2025-04-08T12:00:00Z"
|
|
type: string
|
|
home_team_name:
|
|
example: Manchester
|
|
type: string
|
|
id:
|
|
example: 1
|
|
type: integer
|
|
market_id:
|
|
example: 1
|
|
type: integer
|
|
market_name:
|
|
example: Fulltime Result
|
|
type: string
|
|
odd:
|
|
example: 1.5
|
|
type: number
|
|
odd_handicap:
|
|
example: "1"
|
|
type: string
|
|
odd_header:
|
|
example: "1"
|
|
type: string
|
|
odd_id:
|
|
example: 1
|
|
type: integer
|
|
odd_name:
|
|
example: "1"
|
|
type: string
|
|
sport_id:
|
|
example: 1
|
|
type: integer
|
|
status:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.OutcomeStatus'
|
|
example: 1
|
|
type: object
|
|
domain.BetRes:
|
|
properties:
|
|
amount:
|
|
example: 100
|
|
type: number
|
|
cashed_out:
|
|
example: false
|
|
type: boolean
|
|
company_id:
|
|
example: 1
|
|
type: integer
|
|
company_slug:
|
|
example: fortune
|
|
type: string
|
|
created_at:
|
|
example: "2025-04-08T12:00:00Z"
|
|
type: string
|
|
fast_code:
|
|
type: string
|
|
full_name:
|
|
example: John Smith
|
|
type: string
|
|
id:
|
|
example: 1
|
|
type: integer
|
|
is_shop_bet:
|
|
example: false
|
|
type: boolean
|
|
outcomes:
|
|
items:
|
|
$ref: '#/definitions/domain.BetOutcome'
|
|
type: array
|
|
status:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.OutcomeStatus'
|
|
example: 1
|
|
total_odds:
|
|
example: 4.22
|
|
type: number
|
|
user_id:
|
|
example: 2
|
|
type: integer
|
|
type: object
|
|
domain.BranchDetailRes:
|
|
properties:
|
|
balance:
|
|
example: 100.5
|
|
type: number
|
|
branch_manager_id:
|
|
example: 1
|
|
type: integer
|
|
company_id:
|
|
example: 1
|
|
type: integer
|
|
company_name:
|
|
example: fortune
|
|
type: string
|
|
deducted_stake:
|
|
type: number
|
|
id:
|
|
example: 1
|
|
type: integer
|
|
is_active:
|
|
example: false
|
|
type: boolean
|
|
is_self_owned:
|
|
example: false
|
|
type: boolean
|
|
is_wallet_active:
|
|
example: false
|
|
type: boolean
|
|
location:
|
|
example: Addis Ababa
|
|
type: string
|
|
manager_name:
|
|
example: John Smith
|
|
type: string
|
|
manager_phone_number:
|
|
example: "0911111111"
|
|
type: string
|
|
name:
|
|
example: 4-kilo Branch
|
|
type: string
|
|
number_of_unsettled:
|
|
type: integer
|
|
profit_percentage:
|
|
example: 0.1
|
|
type: number
|
|
stats_updated_at:
|
|
type: string
|
|
total_bets:
|
|
type: integer
|
|
total_cash_backs:
|
|
type: number
|
|
total_cash_out:
|
|
type: number
|
|
total_cashiers:
|
|
type: integer
|
|
total_stake:
|
|
type: number
|
|
total_unsettled_amount:
|
|
type: number
|
|
wallet_id:
|
|
example: 1
|
|
type: integer
|
|
type: object
|
|
domain.BranchLocation:
|
|
properties:
|
|
key:
|
|
example: addis_ababa
|
|
type: string
|
|
name:
|
|
example: Addis Ababa
|
|
type: string
|
|
type: object
|
|
domain.BranchOperationRes:
|
|
properties:
|
|
description:
|
|
example: Betting on sport events
|
|
type: string
|
|
name:
|
|
example: SportsBook
|
|
type: string
|
|
type: object
|
|
domain.BranchRes:
|
|
properties:
|
|
branch_manager_id:
|
|
example: 1
|
|
type: integer
|
|
company_id:
|
|
example: 1
|
|
type: integer
|
|
id:
|
|
example: 1
|
|
type: integer
|
|
is_active:
|
|
example: false
|
|
type: boolean
|
|
is_self_owned:
|
|
example: false
|
|
type: boolean
|
|
location:
|
|
example: Addis Ababa
|
|
type: string
|
|
name:
|
|
example: 4-kilo Branch
|
|
type: string
|
|
profit_percentage:
|
|
example: 0.1
|
|
type: number
|
|
wallet_id:
|
|
example: 1
|
|
type: integer
|
|
type: object
|
|
domain.CashoutReq:
|
|
properties:
|
|
account_name:
|
|
type: string
|
|
account_number:
|
|
type: string
|
|
bank_code:
|
|
type: string
|
|
beneficiary_name:
|
|
type: string
|
|
branch_id:
|
|
example: 1
|
|
type: integer
|
|
cashout_id:
|
|
example: "1234"
|
|
type: string
|
|
payment_option:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.PaymentOption'
|
|
example: 1
|
|
reference_number:
|
|
type: string
|
|
type: object
|
|
domain.ChapaCancelResponse:
|
|
properties:
|
|
amount:
|
|
type: number
|
|
created_at:
|
|
type: string
|
|
currency:
|
|
type: string
|
|
message:
|
|
type: string
|
|
status:
|
|
type: string
|
|
tx_ref:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
domain.ChapaCustomer:
|
|
properties:
|
|
email:
|
|
type: string
|
|
first_name:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
last_name:
|
|
type: string
|
|
mobile:
|
|
type: string
|
|
type: object
|
|
domain.ChapaDepositRequestPayload:
|
|
properties:
|
|
amount:
|
|
type: number
|
|
required:
|
|
- amount
|
|
type: object
|
|
domain.ChapaDepositResponse:
|
|
properties:
|
|
checkoutURL:
|
|
type: string
|
|
reference:
|
|
type: string
|
|
type: object
|
|
domain.ChapaTransaction:
|
|
properties:
|
|
amount:
|
|
type: string
|
|
charge:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
currency:
|
|
type: string
|
|
customer:
|
|
$ref: '#/definitions/domain.ChapaCustomer'
|
|
payment_method:
|
|
type: string
|
|
ref_id:
|
|
type: string
|
|
status:
|
|
type: string
|
|
trans_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
type: object
|
|
domain.ChapaTransactionEvent:
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
item:
|
|
type: integer
|
|
message:
|
|
type: string
|
|
type:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
domain.ChapaWebhookCustomization:
|
|
properties:
|
|
description:
|
|
type: string
|
|
logo:
|
|
type: string
|
|
title:
|
|
type: string
|
|
type: object
|
|
domain.ChapaWebhookPayment:
|
|
properties:
|
|
amount:
|
|
type: string
|
|
charge:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
currency:
|
|
type: string
|
|
customization:
|
|
$ref: '#/definitions/domain.ChapaWebhookCustomization'
|
|
email:
|
|
type: string
|
|
event:
|
|
type: string
|
|
first_name:
|
|
type: string
|
|
last_name:
|
|
type: string
|
|
meta:
|
|
description: may vary in structure, so kept flexible
|
|
mobile:
|
|
type: string
|
|
mode:
|
|
type: string
|
|
payment_method:
|
|
type: string
|
|
reference:
|
|
type: string
|
|
status:
|
|
type: string
|
|
tx_ref:
|
|
type: string
|
|
type:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
domain.ChapaWithdrawalRequest:
|
|
properties:
|
|
account_name:
|
|
type: string
|
|
account_number:
|
|
type: string
|
|
amount:
|
|
description: string because Chapa API uses string for monetary values
|
|
type: string
|
|
bank_code:
|
|
type: integer
|
|
currency:
|
|
type: string
|
|
reference:
|
|
type: string
|
|
type: object
|
|
domain.CheckoutSessionClientRequest:
|
|
properties:
|
|
amount:
|
|
type: number
|
|
customerEmail:
|
|
type: string
|
|
customerPhone:
|
|
type: string
|
|
required:
|
|
- amount
|
|
- customerEmail
|
|
- customerPhone
|
|
type: object
|
|
domain.CompanyMarketSettings:
|
|
properties:
|
|
companyID:
|
|
type: integer
|
|
isActive:
|
|
$ref: '#/definitions/domain.ValidBool'
|
|
marketID:
|
|
type: integer
|
|
marketName:
|
|
type: string
|
|
updatedAt:
|
|
type: string
|
|
type: object
|
|
domain.CompanyRes:
|
|
properties:
|
|
admin_id:
|
|
example: 1
|
|
type: integer
|
|
deducted_percentage:
|
|
example: 0.1
|
|
type: number
|
|
id:
|
|
example: 1
|
|
type: integer
|
|
is_active:
|
|
example: true
|
|
type: boolean
|
|
name:
|
|
example: CompanyName
|
|
type: string
|
|
slug:
|
|
example: slug
|
|
type: string
|
|
wallet_id:
|
|
example: 1
|
|
type: integer
|
|
type: object
|
|
domain.CreateBetOutcomeReq:
|
|
properties:
|
|
event_id:
|
|
example: 1
|
|
type: integer
|
|
market_id:
|
|
example: 1
|
|
type: integer
|
|
odd_id:
|
|
example: 1
|
|
type: integer
|
|
type: object
|
|
domain.CreateBetReq:
|
|
properties:
|
|
amount:
|
|
example: 100
|
|
type: number
|
|
branch_id:
|
|
example: 1
|
|
type: integer
|
|
outcomes:
|
|
items:
|
|
$ref: '#/definitions/domain.CreateBetOutcomeReq'
|
|
type: array
|
|
required:
|
|
- amount
|
|
- outcomes
|
|
type: object
|
|
domain.CreateBetWithFastCodeReq:
|
|
properties:
|
|
amount:
|
|
type: number
|
|
branch_id:
|
|
type: integer
|
|
fast_code:
|
|
type: string
|
|
type: object
|
|
domain.CreateBranchOperationReq:
|
|
properties:
|
|
branch_id:
|
|
example: 1
|
|
type: integer
|
|
operation_id:
|
|
example: 1
|
|
type: integer
|
|
type: object
|
|
domain.CreateBranchReq:
|
|
properties:
|
|
branch_manager_id:
|
|
example: 1
|
|
type: integer
|
|
company_id:
|
|
example: 1
|
|
type: integer
|
|
is_self_owned:
|
|
example: false
|
|
type: boolean
|
|
location:
|
|
example: Addis Ababa
|
|
maxLength: 100
|
|
minLength: 3
|
|
type: string
|
|
name:
|
|
example: 4-kilo Branch
|
|
maxLength: 100
|
|
minLength: 3
|
|
type: string
|
|
operations:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
profit_percentage:
|
|
example: 0.1
|
|
type: number
|
|
required:
|
|
- branch_manager_id
|
|
- location
|
|
- name
|
|
- operations
|
|
type: object
|
|
domain.CreateCompanyMarketSettings:
|
|
properties:
|
|
companyID:
|
|
type: integer
|
|
isActive:
|
|
$ref: '#/definitions/domain.ValidBool'
|
|
marketID:
|
|
type: integer
|
|
marketName:
|
|
type: string
|
|
type: object
|
|
domain.CreateCompanyReq:
|
|
properties:
|
|
admin_id:
|
|
example: 1
|
|
type: integer
|
|
deducted_percentage:
|
|
example: 0.1
|
|
type: number
|
|
is_active:
|
|
type: boolean
|
|
name:
|
|
example: CompanyName
|
|
type: string
|
|
slug:
|
|
type: string
|
|
type: object
|
|
domain.CreateDirectDeposit:
|
|
properties:
|
|
accountHolder:
|
|
type: string
|
|
accountNumber:
|
|
type: string
|
|
amount:
|
|
type: number
|
|
bankName:
|
|
type: string
|
|
customerID:
|
|
type: integer
|
|
referenceNumber:
|
|
type: string
|
|
transferScreenshot:
|
|
type: string
|
|
walletID:
|
|
type: integer
|
|
type: object
|
|
domain.CreateSupportedOperationReq:
|
|
properties:
|
|
description:
|
|
example: Betting on sport events
|
|
type: string
|
|
name:
|
|
example: SportsBook
|
|
type: string
|
|
type: object
|
|
domain.CreateTicketOutcomeReq:
|
|
properties:
|
|
event_id:
|
|
description: TicketID int64 `json:"ticket_id" example:"1"`
|
|
example: 1
|
|
type: integer
|
|
market_id:
|
|
example: 1
|
|
type: integer
|
|
odd_id:
|
|
example: 1
|
|
type: integer
|
|
type: object
|
|
domain.CreateTicketReq:
|
|
properties:
|
|
amount:
|
|
example: 100
|
|
type: number
|
|
outcomes:
|
|
items:
|
|
$ref: '#/definitions/domain.CreateTicketOutcomeReq'
|
|
type: array
|
|
type: object
|
|
domain.CreateTicketRes:
|
|
properties:
|
|
created_number:
|
|
example: 3
|
|
type: integer
|
|
fast_code:
|
|
example: 1234
|
|
type: integer
|
|
type: object
|
|
domain.CreditBalance:
|
|
properties:
|
|
balance:
|
|
type: number
|
|
currency:
|
|
type: string
|
|
threshold:
|
|
type: number
|
|
type: object
|
|
domain.DashboardSummary:
|
|
properties:
|
|
active_admins:
|
|
type: integer
|
|
active_bets:
|
|
type: integer
|
|
active_branches:
|
|
type: integer
|
|
active_cashiers:
|
|
type: integer
|
|
active_companies:
|
|
type: integer
|
|
active_customers:
|
|
type: integer
|
|
active_games:
|
|
type: integer
|
|
active_managers:
|
|
type: integer
|
|
average_stake:
|
|
type: integer
|
|
branches_count:
|
|
type: integer
|
|
customer_count:
|
|
type: integer
|
|
inactive_admins:
|
|
type: integer
|
|
inactive_branches:
|
|
type: integer
|
|
inactive_cashiers:
|
|
type: integer
|
|
inactive_companies:
|
|
type: integer
|
|
inactive_customers:
|
|
type: integer
|
|
inactive_games:
|
|
type: integer
|
|
inactive_managers:
|
|
type: integer
|
|
profit:
|
|
type: integer
|
|
read_notifications:
|
|
type: integer
|
|
total_admins:
|
|
type: integer
|
|
total_bets:
|
|
type: integer
|
|
total_cashiers:
|
|
type: integer
|
|
total_companies:
|
|
type: integer
|
|
total_deposits:
|
|
type: integer
|
|
total_games:
|
|
type: integer
|
|
total_losses:
|
|
type: integer
|
|
total_managers:
|
|
type: integer
|
|
total_notifications:
|
|
type: integer
|
|
total_stakes:
|
|
type: integer
|
|
total_wallets:
|
|
type: integer
|
|
total_wins:
|
|
type: integer
|
|
total_withdrawals:
|
|
type: integer
|
|
unread_notifications:
|
|
type: integer
|
|
win_balance:
|
|
type: integer
|
|
win_rate:
|
|
type: number
|
|
type: object
|
|
domain.DemoGameRequest:
|
|
properties:
|
|
brandId:
|
|
type: string
|
|
deviceType:
|
|
type: string
|
|
gameId:
|
|
type: string
|
|
ip:
|
|
type: string
|
|
language:
|
|
type: string
|
|
providerId:
|
|
type: string
|
|
type: object
|
|
domain.DirectDeposit:
|
|
properties:
|
|
accountHolder:
|
|
type: string
|
|
accountNumber:
|
|
type: string
|
|
amount:
|
|
type: number
|
|
approvedAt:
|
|
type: string
|
|
approvedBy:
|
|
type: integer
|
|
bankName:
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
customerID:
|
|
type: integer
|
|
id:
|
|
type: integer
|
|
referenceNumber:
|
|
type: string
|
|
rejectionReason:
|
|
type: string
|
|
status:
|
|
type: string
|
|
transferScreenshot:
|
|
type: string
|
|
walletID:
|
|
type: integer
|
|
type: object
|
|
domain.EnetpulseFixture:
|
|
properties:
|
|
gender:
|
|
type: string
|
|
id:
|
|
type: string
|
|
"n":
|
|
description: convert to int
|
|
type: string
|
|
name:
|
|
type: string
|
|
round_typeFK:
|
|
type: string
|
|
sport_name:
|
|
type: string
|
|
sportFK:
|
|
type: string
|
|
startdate:
|
|
description: ISO 8601
|
|
type: string
|
|
status_descFK:
|
|
type: string
|
|
status_type:
|
|
type: string
|
|
tournament_name:
|
|
type: string
|
|
tournament_stage_name:
|
|
description: TournamentStageFK string `json:"tournament_stageFK"`
|
|
type: string
|
|
tournament_template_name:
|
|
type: string
|
|
tournament_templateFK:
|
|
type: string
|
|
tournamentFK:
|
|
type: string
|
|
ut:
|
|
description: parse to time.Time
|
|
type: string
|
|
type: object
|
|
domain.EnetpulseFixtureWithPreodds:
|
|
properties:
|
|
createdAt:
|
|
type: string
|
|
fixtureApiID:
|
|
type: string
|
|
fixtureID:
|
|
type: string
|
|
fixtureName:
|
|
type: string
|
|
lastUpdatedAt:
|
|
type: string
|
|
preodds:
|
|
items:
|
|
$ref: '#/definitions/domain.EnetpulsePreodds'
|
|
type: array
|
|
roundTypeFk:
|
|
type: string
|
|
sportFk:
|
|
type: string
|
|
startDate:
|
|
type: string
|
|
statusDescFk:
|
|
type: string
|
|
statusType:
|
|
type: string
|
|
tournamentFk:
|
|
type: string
|
|
tournamentStageFk:
|
|
type: string
|
|
tournamentTemplateFk:
|
|
type: string
|
|
updatedAt:
|
|
type: string
|
|
updatesCount:
|
|
type: integer
|
|
type: object
|
|
domain.EnetpulsePreodds:
|
|
properties:
|
|
bettingOffers:
|
|
items:
|
|
$ref: '#/definitions/domain.EnetpulsePreoddsBettingOffer'
|
|
type: array
|
|
createdAt:
|
|
type: string
|
|
dparam:
|
|
type: string
|
|
dparam2:
|
|
type: string
|
|
eventFK:
|
|
type: integer
|
|
eventParticipantNumber:
|
|
type: integer
|
|
id:
|
|
type: integer
|
|
iparam:
|
|
type: string
|
|
iparam2:
|
|
type: string
|
|
lastUpdatedAt:
|
|
type: string
|
|
outcomeScopeFK:
|
|
type: integer
|
|
outcomeSubtypeFK:
|
|
type: integer
|
|
outcomeTypeFK:
|
|
type: integer
|
|
preoddsID:
|
|
type: string
|
|
sparam:
|
|
type: string
|
|
updatedAt:
|
|
type: string
|
|
updatesCount:
|
|
type: integer
|
|
type: object
|
|
domain.EnetpulsePreoddsBettingOffer:
|
|
properties:
|
|
active:
|
|
type: string
|
|
betting_offer_id:
|
|
type: string
|
|
betting_offer_status_fk:
|
|
type: integer
|
|
coupon_key:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
last_updated_at:
|
|
type: string
|
|
odds:
|
|
type: number
|
|
odds_old:
|
|
type: number
|
|
odds_provider_fk:
|
|
type: integer
|
|
preodds_fk:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
updates_count:
|
|
type: integer
|
|
type: object
|
|
domain.EnetpulseResult:
|
|
properties:
|
|
commentary:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
first_half_ended:
|
|
type: string
|
|
game_ended:
|
|
type: string
|
|
game_started:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
last_updated_at:
|
|
type: string
|
|
lineup_confirmed:
|
|
type: boolean
|
|
live:
|
|
type: string
|
|
livestats_plus:
|
|
type: string
|
|
livestats_type:
|
|
type: string
|
|
name:
|
|
type: string
|
|
result_id:
|
|
type: string
|
|
round:
|
|
type: string
|
|
round_type_fk:
|
|
type: string
|
|
second_half_ended:
|
|
type: string
|
|
second_half_started:
|
|
type: string
|
|
spectators:
|
|
type: integer
|
|
sport_fk:
|
|
type: string
|
|
sport_name:
|
|
type: string
|
|
start_date:
|
|
type: string
|
|
status_desc_fk:
|
|
type: string
|
|
status_type:
|
|
type: string
|
|
tournament_fk:
|
|
type: string
|
|
tournament_name:
|
|
type: string
|
|
tournament_stage_name:
|
|
description: TournamentStageFK string `json:"tournament_stage_fk"`
|
|
type: string
|
|
tournament_template_fk:
|
|
type: string
|
|
tournament_template_name:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
updates_count:
|
|
type: integer
|
|
venue_name:
|
|
type: string
|
|
verified:
|
|
type: boolean
|
|
type: object
|
|
domain.EnetpulseSport:
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
id:
|
|
description: DB primary key
|
|
type: integer
|
|
last_updated_at:
|
|
type: string
|
|
name:
|
|
description: from API "name"
|
|
type: string
|
|
sport_id:
|
|
description: from API "id"
|
|
type: string
|
|
status:
|
|
description: active/inactive
|
|
type: integer
|
|
updated_at:
|
|
type: string
|
|
updates_count:
|
|
description: from API "n"
|
|
type: integer
|
|
type: object
|
|
domain.EnetpulseTournament:
|
|
properties:
|
|
createdAt:
|
|
type: string
|
|
id:
|
|
description: internal DB PK
|
|
type: integer
|
|
lastUpdatedAt:
|
|
type: string
|
|
name:
|
|
type: string
|
|
status:
|
|
type: integer
|
|
tournamentID:
|
|
type: string
|
|
tournamentTemplateFK:
|
|
type: string
|
|
updatedAt:
|
|
type: string
|
|
updatesCount:
|
|
type: integer
|
|
type: object
|
|
domain.EnetpulseTournamentStage:
|
|
properties:
|
|
country_fk:
|
|
description: country FK from API
|
|
type: string
|
|
country_name:
|
|
description: country name from API
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
end_date:
|
|
description: end date/time
|
|
type: string
|
|
gender:
|
|
description: male/female/mixed/unknown
|
|
type: string
|
|
id:
|
|
type: integer
|
|
last_updated_at:
|
|
description: ut from API
|
|
type: string
|
|
name:
|
|
description: API name
|
|
type: string
|
|
stage_id:
|
|
description: API id
|
|
type: string
|
|
start_date:
|
|
description: start date/time
|
|
type: string
|
|
status:
|
|
description: active/inactive
|
|
type: integer
|
|
tournament_fk:
|
|
description: Foreign key to tournament
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
updates_count:
|
|
description: n from API
|
|
type: integer
|
|
type: object
|
|
domain.EnetpulseTournamentTemplate:
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
gender:
|
|
description: male, female, mixed, unknown
|
|
type: string
|
|
id:
|
|
type: integer
|
|
last_updated_at:
|
|
type: string
|
|
name:
|
|
description: from API "name"
|
|
type: string
|
|
sport_fk:
|
|
description: related sport id
|
|
type: string
|
|
status:
|
|
description: optional
|
|
type: integer
|
|
template_id:
|
|
description: from API "id"
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
updates_count:
|
|
description: from API "n"
|
|
type: integer
|
|
type: object
|
|
domain.ErrorResponse:
|
|
properties:
|
|
error:
|
|
type: string
|
|
message:
|
|
type: string
|
|
type: object
|
|
domain.EventSource:
|
|
enum:
|
|
- b365api
|
|
- bwin
|
|
- bfair
|
|
- 1xbet
|
|
- enetpulse
|
|
type: string
|
|
x-enum-varnames:
|
|
- EVENT_SOURCE_BET365
|
|
- EVENT_SOURCE_BWIN
|
|
- EVENT_SOURCE_BETFAIR
|
|
- EVENT_SOURCE_1XBET
|
|
- EVENT_SOURCE_ENET
|
|
domain.EventStatus:
|
|
enum:
|
|
- upcoming
|
|
- in_play
|
|
- to_be_fixed
|
|
- ended
|
|
- postponed
|
|
- cancelled
|
|
- walkover
|
|
- interrupted
|
|
- abandoned
|
|
- retired
|
|
- suspended
|
|
- decided_by_fa
|
|
- removed
|
|
type: string
|
|
x-enum-varnames:
|
|
- STATUS_PENDING
|
|
- STATUS_IN_PLAY
|
|
- STATUS_TO_BE_FIXED
|
|
- STATUS_ENDED
|
|
- STATUS_POSTPONED
|
|
- STATUS_CANCELLED
|
|
- STATUS_WALKOVER
|
|
- STATUS_INTERRUPTED
|
|
- STATUS_ABANDONED
|
|
- STATUS_RETIRED
|
|
- STATUS_SUSPENDED
|
|
- STATUS_DECIDED_BY_FA
|
|
- STATUS_REMOVED
|
|
domain.EventWithSettingsRes:
|
|
properties:
|
|
added_time:
|
|
type: integer
|
|
average_bet_amount:
|
|
type: number
|
|
away_team:
|
|
type: string
|
|
away_team_id:
|
|
type: integer
|
|
away_team_image:
|
|
type: string
|
|
default_is_active:
|
|
type: boolean
|
|
default_is_featured:
|
|
type: boolean
|
|
default_winning_upper_limit:
|
|
type: integer
|
|
fetched_at:
|
|
type: string
|
|
home_team:
|
|
type: string
|
|
home_team_id:
|
|
type: integer
|
|
home_team_image:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
is_active:
|
|
type: boolean
|
|
is_featured:
|
|
type: boolean
|
|
is_live:
|
|
type: boolean
|
|
is_monitored:
|
|
type: boolean
|
|
league_cc:
|
|
type: string
|
|
league_id:
|
|
type: integer
|
|
league_name:
|
|
type: string
|
|
match_minute:
|
|
type: integer
|
|
match_name:
|
|
type: string
|
|
match_period:
|
|
type: integer
|
|
number_of_bets:
|
|
type: integer
|
|
score:
|
|
type: string
|
|
source:
|
|
$ref: '#/definitions/domain.EventSource'
|
|
source_event_id:
|
|
type: string
|
|
sport_id:
|
|
type: integer
|
|
start_time:
|
|
type: string
|
|
status:
|
|
$ref: '#/definitions/domain.EventStatus'
|
|
timer_status:
|
|
type: string
|
|
total_amount:
|
|
type: number
|
|
total_odd_outcomes:
|
|
type: integer
|
|
total_potential_winnings:
|
|
type: number
|
|
updated_at:
|
|
type: string
|
|
winning_upper_limit:
|
|
type: integer
|
|
type: object
|
|
domain.FavoriteGameRequest:
|
|
properties:
|
|
game_id:
|
|
type: integer
|
|
provider_id:
|
|
type: string
|
|
type: object
|
|
domain.FreeSpinRequest:
|
|
properties:
|
|
casino_id:
|
|
type: string
|
|
end_date:
|
|
description: '"yyyy-mm-ddTHH:MM:SS+00:00"'
|
|
type: string
|
|
freespins_count:
|
|
description: count of free spins/bets
|
|
type: integer
|
|
hash:
|
|
type: string
|
|
player_id:
|
|
type: string
|
|
timestamp:
|
|
type: string
|
|
type: object
|
|
domain.FreeSpinResponse:
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
type: object
|
|
domain.FreeSpinResultRequest:
|
|
properties:
|
|
amount:
|
|
description: win amount
|
|
type: number
|
|
casino_id:
|
|
type: string
|
|
currency:
|
|
type: string
|
|
game:
|
|
type: string
|
|
hash:
|
|
type: string
|
|
player_id:
|
|
type: string
|
|
round_id:
|
|
type: integer
|
|
session_id:
|
|
type: string
|
|
timestamp:
|
|
type: string
|
|
transaction_id:
|
|
type: string
|
|
type: object
|
|
domain.FreeSpinResultResponse:
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
type: object
|
|
domain.GameListRequest:
|
|
properties:
|
|
brandId:
|
|
type: string
|
|
page:
|
|
type: integer
|
|
providerId:
|
|
type: string
|
|
size:
|
|
type: integer
|
|
type: object
|
|
domain.GameRecommendation:
|
|
properties:
|
|
bets:
|
|
items:
|
|
type: number
|
|
type: array
|
|
game_id:
|
|
type: integer
|
|
game_name:
|
|
type: string
|
|
reason:
|
|
description: e.g., "Based on your activity", "Popular", "Random pick"
|
|
type: string
|
|
thumbnail:
|
|
type: string
|
|
type: object
|
|
domain.GameStartRequest:
|
|
properties:
|
|
brandId:
|
|
type: string
|
|
country:
|
|
type: string
|
|
currency:
|
|
type: string
|
|
deviceType:
|
|
type: string
|
|
gameId:
|
|
type: string
|
|
ip:
|
|
type: string
|
|
language:
|
|
type: string
|
|
playerId:
|
|
type: string
|
|
providerId:
|
|
type: string
|
|
sessionId:
|
|
type: string
|
|
type: object
|
|
domain.GameStartResponse:
|
|
properties:
|
|
startGameUrl:
|
|
type: string
|
|
type: object
|
|
domain.GamingActivityItem:
|
|
properties:
|
|
actionType:
|
|
type: string
|
|
amount:
|
|
type: number
|
|
amountEur:
|
|
type: number
|
|
amountUsd:
|
|
type: number
|
|
brandId:
|
|
type: string
|
|
correlationId:
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
currency:
|
|
type: string
|
|
gameId:
|
|
type: string
|
|
playerId:
|
|
type: string
|
|
providerId:
|
|
type: string
|
|
refActionType:
|
|
type: string
|
|
refRoundType:
|
|
type: string
|
|
refTransactionId:
|
|
type: string
|
|
roundId:
|
|
type: string
|
|
roundType:
|
|
type: string
|
|
sessionId:
|
|
type: string
|
|
transactionId:
|
|
type: string
|
|
type: object
|
|
domain.GamingActivityRequest:
|
|
properties:
|
|
currencies:
|
|
description: Optional
|
|
items:
|
|
type: string
|
|
type: array
|
|
excludeFreeWin:
|
|
description: Optional
|
|
type: boolean
|
|
fromDate:
|
|
description: YYYY-MM-DD
|
|
type: string
|
|
gameIds:
|
|
description: Optional
|
|
items:
|
|
type: string
|
|
type: array
|
|
page:
|
|
description: Optional, default 1
|
|
type: integer
|
|
playerIds:
|
|
description: Optional
|
|
items:
|
|
type: string
|
|
type: array
|
|
providerId:
|
|
description: Optional
|
|
type: string
|
|
size:
|
|
description: Optional, default 100
|
|
type: integer
|
|
toDate:
|
|
description: YYYY-MM-DD
|
|
type: string
|
|
type: object
|
|
domain.GamingActivityResponse:
|
|
properties:
|
|
items:
|
|
items:
|
|
$ref: '#/definitions/domain.GamingActivityItem'
|
|
type: array
|
|
meta:
|
|
$ref: '#/definitions/domain.PaginationMeta'
|
|
type: object
|
|
domain.GeneratePaymentURLRequest:
|
|
properties:
|
|
amount:
|
|
type: integer
|
|
paymentMethod:
|
|
type: string
|
|
paymentReason:
|
|
type: string
|
|
phoneNumber:
|
|
type: string
|
|
type: object
|
|
domain.GetCompanyRes:
|
|
properties:
|
|
admin_first_name:
|
|
example: John
|
|
type: string
|
|
admin_id:
|
|
example: 1
|
|
type: integer
|
|
admin_last_name:
|
|
example: Doe
|
|
type: string
|
|
admin_phone_number:
|
|
example: "1234567890"
|
|
type: string
|
|
balance:
|
|
example: 1
|
|
type: number
|
|
deducted_percentage:
|
|
example: 0.1
|
|
type: number
|
|
deducted_stake:
|
|
type: number
|
|
id:
|
|
example: 1
|
|
type: integer
|
|
is_active:
|
|
example: false
|
|
type: boolean
|
|
is_wallet_active:
|
|
example: false
|
|
type: boolean
|
|
name:
|
|
example: CompanyName
|
|
type: string
|
|
number_of_unsettled:
|
|
type: integer
|
|
slug:
|
|
example: slug
|
|
type: string
|
|
stats_updated_at:
|
|
type: string
|
|
total_admins:
|
|
type: integer
|
|
total_approvers:
|
|
type: integer
|
|
total_bets:
|
|
type: integer
|
|
total_branches:
|
|
type: integer
|
|
total_cash_backs:
|
|
type: number
|
|
total_cash_out:
|
|
type: number
|
|
total_cashiers:
|
|
type: integer
|
|
total_customers:
|
|
type: integer
|
|
total_managers:
|
|
type: integer
|
|
total_stake:
|
|
type: number
|
|
total_unsettled_amount:
|
|
type: number
|
|
wallet_id:
|
|
example: 1
|
|
type: integer
|
|
type: object
|
|
domain.HugeWinItem:
|
|
properties:
|
|
betAmount:
|
|
type: number
|
|
betAmountUsd:
|
|
type: number
|
|
betTransactionId:
|
|
type: string
|
|
brandId:
|
|
type: string
|
|
correlationId:
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
currency:
|
|
type: string
|
|
gameId:
|
|
type: string
|
|
operatorId:
|
|
type: string
|
|
playerId:
|
|
type: string
|
|
providerId:
|
|
type: string
|
|
reason:
|
|
type: string
|
|
roundId:
|
|
type: string
|
|
winAmount:
|
|
type: number
|
|
winAmountUsd:
|
|
type: number
|
|
winTransactionId:
|
|
type: string
|
|
type: object
|
|
domain.HugeWinsRequest:
|
|
properties:
|
|
brandId:
|
|
type: string
|
|
currencies:
|
|
items:
|
|
type: string
|
|
type: array
|
|
fromDate:
|
|
type: string
|
|
gameIds:
|
|
items:
|
|
type: string
|
|
type: array
|
|
page:
|
|
type: integer
|
|
providerId:
|
|
type: string
|
|
size:
|
|
type: integer
|
|
toDate:
|
|
type: string
|
|
type: object
|
|
domain.HugeWinsResponse:
|
|
properties:
|
|
items:
|
|
items:
|
|
$ref: '#/definitions/domain.HugeWinItem'
|
|
type: array
|
|
meta:
|
|
$ref: '#/definitions/domain.PaginationMeta'
|
|
type: object
|
|
domain.InstResponse:
|
|
properties:
|
|
data:
|
|
description: Changed to interface{} for flexibility
|
|
message:
|
|
type: string
|
|
pagination:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Pagination'
|
|
description: Made pointer and optional
|
|
status:
|
|
type: string
|
|
type: object
|
|
domain.JackpotRequest:
|
|
properties:
|
|
amount:
|
|
description: jackpot win
|
|
type: number
|
|
casino_id:
|
|
type: string
|
|
currency:
|
|
type: string
|
|
details:
|
|
type: string
|
|
game:
|
|
type: string
|
|
hash:
|
|
type: string
|
|
player_id:
|
|
type: string
|
|
round_id:
|
|
type: integer
|
|
session_id:
|
|
type: string
|
|
timestamp:
|
|
type: string
|
|
transaction_id:
|
|
type: string
|
|
type: object
|
|
domain.JackpotResponse:
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
type: object
|
|
domain.LogEntry:
|
|
properties:
|
|
caller:
|
|
type: string
|
|
env:
|
|
type: string
|
|
fields:
|
|
additionalProperties: true
|
|
type: object
|
|
level:
|
|
type: string
|
|
message:
|
|
type: string
|
|
service:
|
|
type: string
|
|
stacktrace:
|
|
type: string
|
|
timestamp:
|
|
type: string
|
|
type: object
|
|
domain.LogResponse:
|
|
properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/domain.LogEntry'
|
|
type: array
|
|
message:
|
|
type: string
|
|
pagination:
|
|
$ref: '#/definitions/domain.Pagination'
|
|
type: object
|
|
domain.MarketSettings:
|
|
properties:
|
|
isActive:
|
|
type: boolean
|
|
marketID:
|
|
type: integer
|
|
marketName:
|
|
type: string
|
|
updatedAt:
|
|
type: string
|
|
type: object
|
|
domain.OddMarketFilter:
|
|
properties:
|
|
limit:
|
|
$ref: '#/definitions/domain.ValidInt32'
|
|
offset:
|
|
$ref: '#/definitions/domain.ValidInt32'
|
|
type: object
|
|
domain.OddMarketWithEventFilter:
|
|
properties:
|
|
isLive:
|
|
$ref: '#/definitions/domain.ValidBool'
|
|
limit:
|
|
$ref: '#/definitions/domain.ValidInt32'
|
|
offset:
|
|
$ref: '#/definitions/domain.ValidInt32'
|
|
status:
|
|
$ref: '#/definitions/domain.ValidString'
|
|
type: object
|
|
domain.OutcomeStatus:
|
|
enum:
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 3
|
|
- 4
|
|
- 5
|
|
type: integer
|
|
x-enum-comments:
|
|
OUTCOME_STATUS_ERROR: Error (Unsettled Bet)
|
|
OUTCOME_STATUS_HALF: Half Win and Half Given Back
|
|
OUTCOME_STATUS_VOID: Give Back
|
|
x-enum-varnames:
|
|
- OUTCOME_STATUS_PENDING
|
|
- OUTCOME_STATUS_WIN
|
|
- OUTCOME_STATUS_LOSS
|
|
- OUTCOME_STATUS_VOID
|
|
- OUTCOME_STATUS_HALF
|
|
- OUTCOME_STATUS_ERROR
|
|
domain.PaginatedFileResponse:
|
|
properties:
|
|
data:
|
|
items:
|
|
type: string
|
|
type: array
|
|
message:
|
|
type: string
|
|
metadata: {}
|
|
pagination:
|
|
$ref: '#/definitions/domain.Pagination'
|
|
status_code:
|
|
type: integer
|
|
success:
|
|
type: boolean
|
|
type: object
|
|
domain.Pagination:
|
|
properties:
|
|
current_page:
|
|
type: integer
|
|
limit:
|
|
type: integer
|
|
total:
|
|
type: integer
|
|
total_pages:
|
|
type: integer
|
|
type: object
|
|
domain.PaginationMeta:
|
|
properties:
|
|
currentPage:
|
|
type: integer
|
|
itemCount:
|
|
type: integer
|
|
itemsPerPage:
|
|
type: integer
|
|
totalItems:
|
|
type: integer
|
|
totalPages:
|
|
type: integer
|
|
type: object
|
|
domain.PaymentOption:
|
|
enum:
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 3
|
|
type: integer
|
|
x-enum-varnames:
|
|
- CASH_TRANSACTION
|
|
- TELEBIRR_TRANSACTION
|
|
- ARIFPAY_TRANSACTION
|
|
- BANK
|
|
domain.PopOKCallback:
|
|
properties:
|
|
amount:
|
|
type: number
|
|
currency:
|
|
type: string
|
|
session_id:
|
|
type: string
|
|
signature:
|
|
description: HMAC-SHA256 signature for verification
|
|
type: string
|
|
timestamp:
|
|
type: integer
|
|
transaction_id:
|
|
type: string
|
|
type:
|
|
description: BET, WIN, REFUND, JACKPOT_WIN
|
|
type: string
|
|
type: object
|
|
domain.PopOKGame:
|
|
properties:
|
|
bets:
|
|
items:
|
|
type: number
|
|
type: array
|
|
gameName:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
status:
|
|
type: integer
|
|
thumbnail:
|
|
type: string
|
|
type: object
|
|
domain.ProviderRequest:
|
|
properties:
|
|
brandId:
|
|
type: string
|
|
extraData:
|
|
type: boolean
|
|
page:
|
|
type: integer
|
|
size:
|
|
type: integer
|
|
type: object
|
|
domain.ProviderResponse:
|
|
properties:
|
|
items:
|
|
items:
|
|
properties:
|
|
logoForDark:
|
|
type: string
|
|
logoForLight:
|
|
type: string
|
|
providerId:
|
|
type: string
|
|
providerName:
|
|
type: string
|
|
type: object
|
|
type: array
|
|
type: object
|
|
domain.RandomBetReq:
|
|
properties:
|
|
branch_id:
|
|
example: 1
|
|
type: integer
|
|
number_of_bets:
|
|
example: 1
|
|
type: integer
|
|
required:
|
|
- branch_id
|
|
- number_of_bets
|
|
type: object
|
|
domain.RawOddsByMarketID:
|
|
properties:
|
|
expires_at:
|
|
type: string
|
|
fetched_at:
|
|
type: string
|
|
handicap:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
market_name:
|
|
type: string
|
|
raw_odds:
|
|
items:
|
|
additionalProperties: true
|
|
type: object
|
|
type: array
|
|
type: object
|
|
domain.ReferralStats:
|
|
properties:
|
|
totalReferrals:
|
|
type: integer
|
|
totalRewardEarned:
|
|
type: integer
|
|
type: object
|
|
domain.ReportedIssue:
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
description:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
issue_type:
|
|
type: string
|
|
metadata:
|
|
additionalProperties: true
|
|
type: object
|
|
status:
|
|
type: string
|
|
subject:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
user_id:
|
|
type: integer
|
|
user_role:
|
|
$ref: '#/definitions/domain.Role'
|
|
type: object
|
|
domain.Response:
|
|
properties:
|
|
data: {}
|
|
message:
|
|
type: string
|
|
metadata: {}
|
|
status_code:
|
|
type: integer
|
|
success:
|
|
type: boolean
|
|
type: object
|
|
domain.Role:
|
|
enum:
|
|
- super_admin
|
|
- admin
|
|
- branch_manager
|
|
- customer
|
|
- cashier
|
|
- transaction_approver
|
|
type: string
|
|
x-enum-varnames:
|
|
- RoleSuperAdmin
|
|
- RoleAdmin
|
|
- RoleBranchManager
|
|
- RoleCustomer
|
|
- RoleCashier
|
|
- RoleTransactionApprover
|
|
domain.RollbackRequest:
|
|
properties:
|
|
bet_transaction_id:
|
|
type: string
|
|
casino_id:
|
|
type: string
|
|
game:
|
|
type: string
|
|
hash:
|
|
type: string
|
|
player_id:
|
|
type: string
|
|
round_id:
|
|
type: integer
|
|
session_id:
|
|
type: string
|
|
timestamp:
|
|
type: string
|
|
type: object
|
|
domain.RollbackResponse:
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
type: object
|
|
domain.RoundResultRequest:
|
|
properties:
|
|
amount:
|
|
description: win amount
|
|
type: number
|
|
bet_transaction_id:
|
|
description: from BET request
|
|
type: string
|
|
casino_id:
|
|
type: string
|
|
currency:
|
|
type: string
|
|
game:
|
|
type: string
|
|
hash:
|
|
type: string
|
|
player_id:
|
|
type: string
|
|
round_id:
|
|
type: integer
|
|
session_id:
|
|
type: string
|
|
timestamp:
|
|
type: string
|
|
transaction_id:
|
|
description: new transaction id
|
|
type: string
|
|
type: object
|
|
domain.RoundResultResponse:
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
type: object
|
|
domain.SantimPayCallbackPayload:
|
|
properties:
|
|
accountNumber:
|
|
type: string
|
|
address:
|
|
type: string
|
|
amount:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
currency:
|
|
type: string
|
|
failureRedirectUrl:
|
|
type: string
|
|
merId:
|
|
type: string
|
|
merName:
|
|
type: string
|
|
message:
|
|
type: string
|
|
msisdn:
|
|
type: string
|
|
paymentVia:
|
|
type: string
|
|
reason:
|
|
type: string
|
|
receiverWalletID:
|
|
type: string
|
|
refId:
|
|
type: string
|
|
status:
|
|
type: string
|
|
successRedirectUrl:
|
|
type: string
|
|
thirdPartyId:
|
|
type: string
|
|
txnId:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
domain.ShopBetReq:
|
|
properties:
|
|
account_name:
|
|
type: string
|
|
account_number:
|
|
type: string
|
|
amount:
|
|
example: 100
|
|
type: number
|
|
bank_code:
|
|
type: string
|
|
beneficiary_name:
|
|
type: string
|
|
bet_id:
|
|
example: 1
|
|
type: integer
|
|
branch_id:
|
|
example: 1
|
|
type: integer
|
|
full_name:
|
|
example: John Smith
|
|
type: string
|
|
outcomes:
|
|
items:
|
|
$ref: '#/definitions/domain.CreateBetOutcomeReq'
|
|
type: array
|
|
payment_option:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.PaymentOption'
|
|
example: 1
|
|
phone_number:
|
|
example: "0911111111"
|
|
type: string
|
|
reference_number:
|
|
type: string
|
|
type: object
|
|
domain.ShopBetRes:
|
|
properties:
|
|
amount:
|
|
type: number
|
|
bet_id:
|
|
example: 1
|
|
type: integer
|
|
branch_id:
|
|
example: 2
|
|
type: integer
|
|
cashed_out:
|
|
example: false
|
|
type: boolean
|
|
cashout_id:
|
|
example: "21234"
|
|
type: string
|
|
company_id:
|
|
example: 2
|
|
type: integer
|
|
created_at:
|
|
example: "2025-04-08T12:00:00Z"
|
|
type: string
|
|
fast_code:
|
|
example: 12SD1
|
|
type: string
|
|
full_name:
|
|
example: John
|
|
type: string
|
|
id:
|
|
type: integer
|
|
number_of_outcomes:
|
|
example: 1
|
|
type: integer
|
|
outcomes:
|
|
items:
|
|
$ref: '#/definitions/domain.BetOutcome'
|
|
type: array
|
|
phone_number:
|
|
example: "1234567890"
|
|
type: string
|
|
shop_transaction_id:
|
|
type: integer
|
|
status:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.OutcomeStatus'
|
|
example: 1
|
|
total_odds:
|
|
example: 4.22
|
|
type: number
|
|
transaction_verified:
|
|
example: true
|
|
type: boolean
|
|
updated_at:
|
|
example: "2025-04-08T12:00:00Z"
|
|
type: string
|
|
type: object
|
|
domain.ShopDepositReq:
|
|
properties:
|
|
account_name:
|
|
type: string
|
|
account_number:
|
|
type: string
|
|
amount:
|
|
example: 100
|
|
type: number
|
|
bank_code:
|
|
description: |-
|
|
FullName string `json:"full_name" example:"John Smith"`
|
|
PhoneNumber string `json:"phone_number" example:"0911111111"`
|
|
type: string
|
|
beneficiary_name:
|
|
type: string
|
|
branch_id:
|
|
example: 1
|
|
type: integer
|
|
customer_id:
|
|
example: 1
|
|
type: integer
|
|
payment_option:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.PaymentOption'
|
|
example: 1
|
|
reference_number:
|
|
type: string
|
|
type: object
|
|
domain.ShopDepositRes:
|
|
properties:
|
|
customer_id:
|
|
type: integer
|
|
id:
|
|
type: integer
|
|
shop_transaction_id:
|
|
type: integer
|
|
wallet_transfer_id:
|
|
type: integer
|
|
type: object
|
|
domain.ShopTransactionRes:
|
|
properties:
|
|
account_name:
|
|
type: string
|
|
account_number:
|
|
type: string
|
|
amount:
|
|
example: 100
|
|
type: number
|
|
approved_by:
|
|
example: 1
|
|
type: integer
|
|
approver_first_name:
|
|
example: John
|
|
type: string
|
|
approver_last_name:
|
|
example: Smith
|
|
type: string
|
|
approver_phone_number:
|
|
example: "0911111111"
|
|
type: string
|
|
bank_code:
|
|
type: string
|
|
beneficiary_name:
|
|
type: string
|
|
branch_id:
|
|
example: 1
|
|
type: integer
|
|
branch_location:
|
|
example: Branch Location
|
|
type: string
|
|
branch_name:
|
|
example: Branch Name
|
|
type: string
|
|
cashier_name:
|
|
example: John Smith
|
|
type: string
|
|
company_id:
|
|
example: 1
|
|
type: integer
|
|
created_at:
|
|
type: string
|
|
creator_first_name:
|
|
example: John
|
|
type: string
|
|
creator_last_name:
|
|
example: Smith
|
|
type: string
|
|
creator_phone_number:
|
|
example: "0911111111"
|
|
type: string
|
|
full_name:
|
|
example: John Smith
|
|
type: string
|
|
id:
|
|
example: 1
|
|
type: integer
|
|
payment_option:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.PaymentOption'
|
|
example: 1
|
|
phone_number:
|
|
example: "0911111111"
|
|
type: string
|
|
reference_number:
|
|
type: string
|
|
type:
|
|
example: 1
|
|
type: integer
|
|
updated_at:
|
|
type: string
|
|
user_id:
|
|
example: 1
|
|
type: integer
|
|
verified:
|
|
example: true
|
|
type: boolean
|
|
type: object
|
|
domain.SupportedOperationRes:
|
|
properties:
|
|
description:
|
|
example: Betting on sport events
|
|
type: string
|
|
id:
|
|
example: 1
|
|
type: integer
|
|
name:
|
|
example: SportsBook
|
|
type: string
|
|
type: object
|
|
domain.SwapRequest:
|
|
properties:
|
|
amount:
|
|
type: number
|
|
from:
|
|
type: string
|
|
to:
|
|
type: string
|
|
type: object
|
|
domain.TelebirrPaymentCallbackPayload:
|
|
properties:
|
|
appid:
|
|
description: App ID provided by Telebirr
|
|
type: string
|
|
callback_info:
|
|
description: Optional merchant-defined callback data
|
|
type: string
|
|
merch_code:
|
|
description: Merchant short code
|
|
type: string
|
|
merch_order_id:
|
|
description: Order ID from merchant system
|
|
type: string
|
|
notify_time:
|
|
description: Notification timestamp (UTC, in seconds)
|
|
type: string
|
|
notify_url:
|
|
description: Optional callback URL
|
|
type: string
|
|
payment_order_id:
|
|
description: Order ID from Telebirr system
|
|
type: string
|
|
sign:
|
|
description: Signature of the payload
|
|
type: string
|
|
sign_type:
|
|
description: Signature type, e.g., SHA256WithRSA
|
|
type: string
|
|
total_amount:
|
|
description: Payment amount
|
|
type: string
|
|
trade_status:
|
|
description: Payment status (e.g., Completed, Failure)
|
|
type: string
|
|
trans_currency:
|
|
description: Currency type (e.g., ETB)
|
|
type: string
|
|
trans_end_time:
|
|
description: Transaction end time (UTC seconds)
|
|
type: string
|
|
trans_id:
|
|
description: Transaction ID
|
|
type: string
|
|
type: object
|
|
domain.TicketOutcome:
|
|
properties:
|
|
away_team_name:
|
|
example: Liverpool
|
|
type: string
|
|
event_id:
|
|
example: 1
|
|
type: integer
|
|
expires:
|
|
example: "2025-04-08T12:00:00Z"
|
|
type: string
|
|
home_team_name:
|
|
example: Manchester
|
|
type: string
|
|
id:
|
|
example: 1
|
|
type: integer
|
|
market_id:
|
|
example: 1
|
|
type: integer
|
|
market_name:
|
|
example: Fulltime Result
|
|
type: string
|
|
odd:
|
|
example: 1.5
|
|
type: number
|
|
odd_handicap:
|
|
example: "1"
|
|
type: string
|
|
odd_header:
|
|
example: "1"
|
|
type: string
|
|
odd_id:
|
|
example: 1
|
|
type: integer
|
|
odd_name:
|
|
example: "1"
|
|
type: string
|
|
status:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.OutcomeStatus'
|
|
example: 1
|
|
ticket_id:
|
|
example: 1
|
|
type: integer
|
|
type: object
|
|
domain.TicketRes:
|
|
properties:
|
|
amount:
|
|
example: 100
|
|
type: number
|
|
company_id:
|
|
example: 1
|
|
type: integer
|
|
id:
|
|
example: 1
|
|
type: integer
|
|
outcomes:
|
|
items:
|
|
$ref: '#/definitions/domain.TicketOutcome'
|
|
type: array
|
|
total_odds:
|
|
example: 4.22
|
|
type: number
|
|
type: object
|
|
domain.TransactionStatusRequest:
|
|
properties:
|
|
fullParams:
|
|
type: boolean
|
|
id:
|
|
type: string
|
|
type: object
|
|
domain.UnifiedGame:
|
|
properties:
|
|
bets:
|
|
items:
|
|
type: number
|
|
type: array
|
|
category:
|
|
type: string
|
|
demoUrl:
|
|
type: string
|
|
deviceType:
|
|
type: string
|
|
gameId:
|
|
type: string
|
|
hasDemo:
|
|
type: boolean
|
|
hasFreeBets:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
providerId:
|
|
type: string
|
|
rtp:
|
|
type: number
|
|
status:
|
|
type: integer
|
|
thumbnail:
|
|
type: string
|
|
volatility:
|
|
type: string
|
|
type: object
|
|
domain.UpdateCompanyReq:
|
|
properties:
|
|
admin_id:
|
|
example: 1
|
|
type: integer
|
|
deducted_percentage:
|
|
example: 0.1
|
|
type: number
|
|
is_active:
|
|
example: true
|
|
type: boolean
|
|
name:
|
|
example: CompanyName
|
|
type: string
|
|
slug:
|
|
type: string
|
|
type: object
|
|
domain.UpdateTransactionVerifiedReq:
|
|
properties:
|
|
verified:
|
|
example: true
|
|
type: boolean
|
|
type: object
|
|
domain.ValidBool:
|
|
properties:
|
|
valid:
|
|
type: boolean
|
|
value:
|
|
type: boolean
|
|
type: object
|
|
domain.ValidInt:
|
|
properties:
|
|
valid:
|
|
type: boolean
|
|
value:
|
|
type: integer
|
|
type: object
|
|
domain.ValidInt32:
|
|
properties:
|
|
valid:
|
|
type: boolean
|
|
value:
|
|
type: integer
|
|
type: object
|
|
domain.ValidString:
|
|
properties:
|
|
valid:
|
|
type: boolean
|
|
value:
|
|
type: string
|
|
type: object
|
|
domain.VirtualGameProvider:
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
enabled:
|
|
type: boolean
|
|
logo_dark:
|
|
type: string
|
|
logo_light:
|
|
type: string
|
|
provider_id:
|
|
description: ID int64 `json:"id" db:"id"`
|
|
type: string
|
|
provider_name:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
domain.VirtualGameProviderReport:
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
provider_id:
|
|
type: string
|
|
report_date:
|
|
type: string
|
|
report_type:
|
|
type: string
|
|
total_bets:
|
|
type: number
|
|
total_games_played:
|
|
type: integer
|
|
total_payouts:
|
|
type: number
|
|
total_players:
|
|
type: integer
|
|
total_profit:
|
|
type: number
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
domain.WebhookRequest:
|
|
properties:
|
|
nonce:
|
|
type: string
|
|
notificationUrl:
|
|
type: string
|
|
paymentMethod:
|
|
type: string
|
|
phone:
|
|
type: string
|
|
sessionId:
|
|
type: string
|
|
totalAmount:
|
|
type: integer
|
|
transaction:
|
|
properties:
|
|
transactionId:
|
|
type: string
|
|
transactionStatus:
|
|
type: string
|
|
type: object
|
|
transactionStatus:
|
|
type: string
|
|
uuid:
|
|
type: string
|
|
type: object
|
|
handlers.AdminProfileRes:
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
email:
|
|
type: string
|
|
email_verified:
|
|
type: boolean
|
|
first_name:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
last_login:
|
|
type: string
|
|
last_name:
|
|
type: string
|
|
phone_number:
|
|
type: string
|
|
phone_verified:
|
|
type: boolean
|
|
role:
|
|
$ref: '#/definitions/domain.Role'
|
|
suspended:
|
|
type: boolean
|
|
suspended_at:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
handlers.AdminRes:
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
email:
|
|
type: string
|
|
email_verified:
|
|
type: boolean
|
|
first_name:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
last_login:
|
|
type: string
|
|
last_name:
|
|
type: string
|
|
phone_number:
|
|
type: string
|
|
phone_verified:
|
|
type: boolean
|
|
role:
|
|
$ref: '#/definitions/domain.Role'
|
|
suspended:
|
|
type: boolean
|
|
suspended_at:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
handlers.CheckPhoneEmailExistReq:
|
|
properties:
|
|
email:
|
|
example: john.doe@example.com
|
|
type: string
|
|
phone_number:
|
|
example: "1234567890"
|
|
type: string
|
|
type: object
|
|
handlers.CheckPhoneEmailExistRes:
|
|
properties:
|
|
email_exist:
|
|
type: boolean
|
|
phone_number_exist:
|
|
type: boolean
|
|
type: object
|
|
handlers.CreateAdminReq:
|
|
properties:
|
|
company_id:
|
|
example: 1
|
|
type: integer
|
|
email:
|
|
example: john.doe@example.com
|
|
type: string
|
|
first_name:
|
|
example: John
|
|
type: string
|
|
last_name:
|
|
example: Doe
|
|
type: string
|
|
password:
|
|
example: password123
|
|
type: string
|
|
phone_number:
|
|
example: "1234567890"
|
|
type: string
|
|
type: object
|
|
handlers.CreateCashierReq:
|
|
properties:
|
|
branch_id:
|
|
example: 1
|
|
type: integer
|
|
email:
|
|
example: john.doe@example.com
|
|
type: string
|
|
first_name:
|
|
example: John
|
|
type: string
|
|
last_name:
|
|
example: Doe
|
|
type: string
|
|
password:
|
|
example: password123
|
|
type: string
|
|
phone_number:
|
|
example: "1234567890"
|
|
type: string
|
|
suspended:
|
|
example: false
|
|
type: boolean
|
|
type: object
|
|
handlers.CreateManagerReq:
|
|
properties:
|
|
company_id:
|
|
example: 1
|
|
type: integer
|
|
email:
|
|
example: john.doe@example.com
|
|
type: string
|
|
first_name:
|
|
example: John
|
|
type: string
|
|
last_name:
|
|
example: Doe
|
|
type: string
|
|
password:
|
|
example: password123
|
|
type: string
|
|
phone_number:
|
|
example: "1234567890"
|
|
type: string
|
|
type: object
|
|
handlers.CreateTransactionApproverReq:
|
|
properties:
|
|
company_id:
|
|
example: 1
|
|
type: integer
|
|
email:
|
|
example: john.doe@example.com
|
|
type: string
|
|
first_name:
|
|
example: John
|
|
type: string
|
|
last_name:
|
|
example: Doe
|
|
type: string
|
|
password:
|
|
example: password123
|
|
type: string
|
|
phone_number:
|
|
example: "1234567890"
|
|
type: string
|
|
type: object
|
|
handlers.CreateTransferReq:
|
|
properties:
|
|
amount:
|
|
example: 100
|
|
type: number
|
|
payment_method:
|
|
example: cash
|
|
type: string
|
|
type: object
|
|
handlers.CustomerProfileRes:
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
email:
|
|
type: string
|
|
email_verified:
|
|
type: boolean
|
|
first_name:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
last_login:
|
|
type: string
|
|
last_name:
|
|
type: string
|
|
phone_number:
|
|
type: string
|
|
phone_verified:
|
|
type: boolean
|
|
referral_code:
|
|
type: string
|
|
role:
|
|
$ref: '#/definitions/domain.Role'
|
|
suspended:
|
|
type: boolean
|
|
suspended_at:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
handlers.CustomerWalletRes:
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
customer_id:
|
|
example: 1
|
|
type: integer
|
|
first_name:
|
|
example: John
|
|
type: string
|
|
id:
|
|
example: 1
|
|
type: integer
|
|
last_name:
|
|
example: Smith
|
|
type: string
|
|
number_of_deposits:
|
|
type: integer
|
|
number_of_transactions:
|
|
type: integer
|
|
number_of_transfers:
|
|
type: integer
|
|
number_of_withdraws:
|
|
type: integer
|
|
phone_number:
|
|
example: "0911111111"
|
|
type: string
|
|
regular_balance:
|
|
example: 100
|
|
type: number
|
|
regular_id:
|
|
example: 1
|
|
type: integer
|
|
regular_is_active:
|
|
example: true
|
|
type: boolean
|
|
regular_updated_at:
|
|
type: string
|
|
static_balance:
|
|
example: 100
|
|
type: number
|
|
static_id:
|
|
example: 1
|
|
type: integer
|
|
static_is_active:
|
|
example: true
|
|
type: boolean
|
|
static_updated_at:
|
|
type: string
|
|
total_deposits_amount:
|
|
type: number
|
|
total_transactions:
|
|
type: number
|
|
total_transfers_amount:
|
|
type: number
|
|
total_withdraws_amount:
|
|
type: number
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
handlers.CustomersRes:
|
|
properties:
|
|
company_id:
|
|
type: integer
|
|
company_name:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
email:
|
|
type: string
|
|
email_verified:
|
|
type: boolean
|
|
first_name:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
last_login:
|
|
type: string
|
|
last_name:
|
|
type: string
|
|
phone_number:
|
|
type: string
|
|
phone_verified:
|
|
type: boolean
|
|
role:
|
|
$ref: '#/definitions/domain.Role'
|
|
suspended:
|
|
type: boolean
|
|
suspended_at:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
handlers.GetCashierRes:
|
|
properties:
|
|
branch_id:
|
|
type: integer
|
|
branch_location:
|
|
type: string
|
|
branch_name:
|
|
type: string
|
|
branch_wallet:
|
|
type: integer
|
|
created_at:
|
|
type: string
|
|
email:
|
|
type: string
|
|
email_verified:
|
|
type: boolean
|
|
first_name:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
last_login:
|
|
type: string
|
|
last_name:
|
|
type: string
|
|
phone_number:
|
|
type: string
|
|
phone_verified:
|
|
type: boolean
|
|
role:
|
|
$ref: '#/definitions/domain.Role'
|
|
suspended:
|
|
type: boolean
|
|
suspended_at:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
handlers.ManagersRes:
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
email:
|
|
type: string
|
|
email_verified:
|
|
type: boolean
|
|
first_name:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
last_login:
|
|
type: string
|
|
last_name:
|
|
type: string
|
|
phone_number:
|
|
type: string
|
|
phone_verified:
|
|
type: boolean
|
|
role:
|
|
$ref: '#/definitions/domain.Role'
|
|
suspended:
|
|
type: boolean
|
|
suspended_at:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
handlers.RegisterCodeReq:
|
|
properties:
|
|
email:
|
|
example: john.doe@example.com
|
|
type: string
|
|
phone_number:
|
|
example: "1234567890"
|
|
type: string
|
|
type: object
|
|
handlers.RegisterUserReq:
|
|
properties:
|
|
email:
|
|
example: john.doe@example.com
|
|
type: string
|
|
first_name:
|
|
example: John
|
|
type: string
|
|
last_name:
|
|
example: Doe
|
|
type: string
|
|
otp:
|
|
example: "123456"
|
|
type: string
|
|
password:
|
|
example: password123
|
|
type: string
|
|
phone_number:
|
|
example: "1234567890"
|
|
type: string
|
|
referral_code:
|
|
example: ABC123
|
|
type: string
|
|
type: object
|
|
handlers.ResetCodeReq:
|
|
properties:
|
|
email:
|
|
example: john.doe@example.com
|
|
type: string
|
|
phone_number:
|
|
example: "1234567890"
|
|
type: string
|
|
type: object
|
|
handlers.ResetPasswordReq:
|
|
properties:
|
|
email:
|
|
example: john.doe@example.com
|
|
type: string
|
|
otp:
|
|
example: "123456"
|
|
type: string
|
|
password:
|
|
example: newpassword123
|
|
minLength: 8
|
|
type: string
|
|
phone_number:
|
|
example: "1234567890"
|
|
type: string
|
|
required:
|
|
- otp
|
|
- password
|
|
type: object
|
|
handlers.ResultRes:
|
|
properties:
|
|
outcomes:
|
|
items:
|
|
$ref: '#/definitions/domain.BetOutcome'
|
|
type: array
|
|
type: object
|
|
handlers.SearchUserByNameOrPhoneReq:
|
|
properties:
|
|
query:
|
|
type: string
|
|
role:
|
|
$ref: '#/definitions/domain.Role'
|
|
type: object
|
|
handlers.SetLeagueActiveReq:
|
|
properties:
|
|
is_active:
|
|
type: boolean
|
|
type: object
|
|
handlers.SetLeagueAsFeatured:
|
|
properties:
|
|
is_featured:
|
|
example: true
|
|
type: boolean
|
|
type: object
|
|
handlers.TopLeague:
|
|
properties:
|
|
events:
|
|
items:
|
|
$ref: '#/definitions/domain.EventWithSettingsRes'
|
|
type: array
|
|
league_cc:
|
|
type: string
|
|
league_id:
|
|
type: integer
|
|
league_name:
|
|
type: string
|
|
league_sport_id:
|
|
type: integer
|
|
type: object
|
|
handlers.TransferWalletRes:
|
|
properties:
|
|
amount:
|
|
type: number
|
|
created_at:
|
|
type: string
|
|
depositor_first_name:
|
|
type: string
|
|
depositor_id:
|
|
type: integer
|
|
depositor_last_name:
|
|
type: string
|
|
depositor_phone_number:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
message:
|
|
type: string
|
|
payment_method:
|
|
type: string
|
|
receiver_wallet_id:
|
|
type: integer
|
|
reference_number:
|
|
description: ← Add this
|
|
type: string
|
|
sender_wallet_id:
|
|
type: integer
|
|
type:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
verified:
|
|
type: boolean
|
|
type: object
|
|
handlers.UpdateCashOutReq:
|
|
properties:
|
|
cashedOut:
|
|
type: boolean
|
|
type: object
|
|
handlers.UpdateUserSuspendReq:
|
|
properties:
|
|
suspended:
|
|
example: true
|
|
type: boolean
|
|
user_id:
|
|
example: 123
|
|
type: integer
|
|
required:
|
|
- user_id
|
|
type: object
|
|
handlers.UpdateUserSuspendRes:
|
|
properties:
|
|
suspended:
|
|
type: boolean
|
|
user_id:
|
|
type: integer
|
|
type: object
|
|
handlers.UpdateWalletActiveReq:
|
|
properties:
|
|
is_active:
|
|
example: true
|
|
type: boolean
|
|
required:
|
|
- is_active
|
|
type: object
|
|
handlers.UserProfileRes:
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
email:
|
|
type: string
|
|
email_verified:
|
|
type: boolean
|
|
first_name:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
last_login:
|
|
type: string
|
|
last_name:
|
|
type: string
|
|
phone_number:
|
|
type: string
|
|
phone_verified:
|
|
type: boolean
|
|
referral_code:
|
|
type: string
|
|
role:
|
|
$ref: '#/definitions/domain.Role'
|
|
suspended:
|
|
type: boolean
|
|
suspended_at:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
handlers.WalletRes:
|
|
properties:
|
|
amount:
|
|
example: 100
|
|
type: number
|
|
created_at:
|
|
type: string
|
|
id:
|
|
example: 1
|
|
type: integer
|
|
is_active:
|
|
example: true
|
|
type: boolean
|
|
is_bettable:
|
|
example: true
|
|
type: boolean
|
|
is_transferable:
|
|
example: true
|
|
type: boolean
|
|
is_withdraw:
|
|
example: true
|
|
type: boolean
|
|
updated_at:
|
|
type: string
|
|
user_id:
|
|
example: 1
|
|
type: integer
|
|
type: object
|
|
handlers.launchVirtualGameReq:
|
|
properties:
|
|
currency:
|
|
example: USD
|
|
type: string
|
|
game_id:
|
|
example: "1"
|
|
type: string
|
|
mode:
|
|
enum:
|
|
- fun
|
|
- real
|
|
example: real
|
|
type: string
|
|
required:
|
|
- currency
|
|
- game_id
|
|
- mode
|
|
type: object
|
|
handlers.launchVirtualGameRes:
|
|
properties:
|
|
launch_url:
|
|
type: string
|
|
type: object
|
|
handlers.loginAdminReq:
|
|
properties:
|
|
email:
|
|
example: john.doe@example.com
|
|
type: string
|
|
password:
|
|
example: password123
|
|
type: string
|
|
phone_number:
|
|
example: "1234567890"
|
|
type: string
|
|
required:
|
|
- password
|
|
type: object
|
|
handlers.loginAdminRes:
|
|
properties:
|
|
access_token:
|
|
type: string
|
|
refresh_token:
|
|
type: string
|
|
role:
|
|
type: string
|
|
type: object
|
|
handlers.loginCustomerReq:
|
|
properties:
|
|
email:
|
|
example: john.doe@example.com
|
|
type: string
|
|
password:
|
|
example: password123
|
|
type: string
|
|
phone_number:
|
|
example: "1234567890"
|
|
type: string
|
|
required:
|
|
- password
|
|
type: object
|
|
handlers.loginCustomerRes:
|
|
properties:
|
|
access_token:
|
|
type: string
|
|
refresh_token:
|
|
type: string
|
|
role:
|
|
type: string
|
|
type: object
|
|
handlers.logoutReq:
|
|
properties:
|
|
refresh_token:
|
|
example: <refresh-token>
|
|
type: string
|
|
required:
|
|
- refresh_token
|
|
type: object
|
|
handlers.refreshToken:
|
|
properties:
|
|
access_token:
|
|
example: <jwt-token>
|
|
type: string
|
|
refresh_token:
|
|
example: <refresh-token>
|
|
type: string
|
|
required:
|
|
- access_token
|
|
- refresh_token
|
|
type: object
|
|
handlers.updateAdminReq:
|
|
properties:
|
|
company_id:
|
|
example: 1
|
|
type: integer
|
|
first_name:
|
|
example: John
|
|
type: string
|
|
last_name:
|
|
example: Doe
|
|
type: string
|
|
suspended:
|
|
example: false
|
|
type: boolean
|
|
type: object
|
|
handlers.updateCashierReq:
|
|
properties:
|
|
first_name:
|
|
example: John
|
|
type: string
|
|
last_name:
|
|
example: Doe
|
|
type: string
|
|
suspended:
|
|
example: false
|
|
type: boolean
|
|
type: object
|
|
handlers.updateCustomerReq:
|
|
properties:
|
|
first_name:
|
|
example: John
|
|
type: string
|
|
last_name:
|
|
example: Doe
|
|
type: string
|
|
suspended:
|
|
example: false
|
|
type: boolean
|
|
type: object
|
|
handlers.updateManagerReq:
|
|
properties:
|
|
company_id:
|
|
example: 1
|
|
type: integer
|
|
first_name:
|
|
example: John
|
|
type: string
|
|
last_name:
|
|
example: Doe
|
|
type: string
|
|
suspended:
|
|
example: false
|
|
type: boolean
|
|
type: object
|
|
response.APIResponse:
|
|
properties:
|
|
data: {}
|
|
message:
|
|
type: string
|
|
metadata: {}
|
|
page:
|
|
type: integer
|
|
status:
|
|
$ref: '#/definitions/response.Status'
|
|
timestamp:
|
|
type: string
|
|
total:
|
|
type: integer
|
|
type: object
|
|
response.Status:
|
|
enum:
|
|
- error
|
|
- success
|
|
type: string
|
|
x-enum-varnames:
|
|
- Error
|
|
- Success
|
|
info:
|
|
contact:
|
|
email: support@swagger.io
|
|
name: API Support
|
|
url: http://www.swagger.io/support
|
|
description: This is server for FortuneBet.
|
|
license:
|
|
name: Apache 2.0
|
|
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
|
termsOfService: http://swagger.io/terms/
|
|
title: FortuneBet API
|
|
version: 1.0.1
|
|
paths:
|
|
/account:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Callback endpoint for Atlas game server to fetch player balance
|
|
parameters:
|
|
- description: Get user data input
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.AtlasGetUserDataRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.AtlasGetUserDataResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Atlas Get User Data callback
|
|
tags:
|
|
- Virtual Games - Atlas
|
|
/api/v1/{tenant_slug}/admin-login:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Login customer
|
|
parameters:
|
|
- description: Login admin
|
|
in: body
|
|
name: login
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.loginAdminReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.loginAdminRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Login customer
|
|
tags:
|
|
- auth
|
|
/api/v1/{tenant_slug}/customer-login:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Login customer
|
|
parameters:
|
|
- description: Login customer
|
|
in: body
|
|
name: login
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.loginCustomerReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.loginCustomerRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Login customer
|
|
tags:
|
|
- auth
|
|
/api/v1/{tenant_slug}/events:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve all upcoming events settings from the database
|
|
parameters:
|
|
- description: Page number
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: Page size
|
|
in: query
|
|
name: page_size
|
|
type: integer
|
|
- description: League ID Filter
|
|
in: query
|
|
name: league_id
|
|
type: string
|
|
- description: Sport ID Filter
|
|
in: query
|
|
name: sport_id
|
|
type: string
|
|
- description: Country Code Filter
|
|
in: query
|
|
name: cc
|
|
type: string
|
|
- description: Start Time
|
|
in: query
|
|
name: first_start_time
|
|
type: string
|
|
- description: End Time
|
|
in: query
|
|
name: last_start_time
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.BaseEvent'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Retrieve all upcoming events with settings
|
|
tags:
|
|
- prematch
|
|
/api/v1/{tenant_slug}/leagues:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets all leagues
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.BaseLeague'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets all leagues
|
|
tags:
|
|
- leagues
|
|
/api/v1/{tenant_slug}/leagues/{id}/featured:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Set the league to featured/un-featured
|
|
parameters:
|
|
- description: League ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: League Featured Request
|
|
in: body
|
|
name: active
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.SetLeagueAsFeatured'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Set the league to featured/un-featured
|
|
tags:
|
|
- leagues
|
|
/api/v1/{tenant_slug}/leagues/{id}/set-active:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Set the league to active
|
|
parameters:
|
|
- description: League ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: League Active Request
|
|
in: body
|
|
name: active
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.SetLeagueActiveReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Set the league to active
|
|
tags:
|
|
- leagues
|
|
/api/v1/{tenant_slug}/market-settings:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Remove all overridden market settings for a specific tenant
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Delete all market settings for a tenant
|
|
tags:
|
|
- market_settings
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get all market settings overridden for a specific tenant
|
|
parameters:
|
|
- description: Number of results to return (default 10)
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: Number of results to skip (default 0)
|
|
in: query
|
|
name: offset
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.CompanyMarketSettings'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Retrieve all market settings for a tenant
|
|
tags:
|
|
- market_settings
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Insert new market settings for a specific tenant/company
|
|
parameters:
|
|
- description: Market Settings
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.CreateCompanyMarketSettings'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Insert company-specific market settings
|
|
tags:
|
|
- market_settings
|
|
/api/v1/{tenant_slug}/market-settings/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Remove a specific overridden market setting for a tenant
|
|
parameters:
|
|
- description: Market ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Delete a specific market setting for a tenant
|
|
tags:
|
|
- market_settings
|
|
/api/v1/{tenant_slug}/odds:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve all odds from the database
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.OddMarketFilter'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Retrieve all odds
|
|
tags:
|
|
- prematch
|
|
/api/v1/{tenant_slug}/odds/upcoming/{upcoming_id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve prematch odds by upcoming event ID (FI from Bet365) with
|
|
optional pagination
|
|
parameters:
|
|
- description: Upcoming Event ID (FI)
|
|
in: path
|
|
name: upcoming_id
|
|
required: true
|
|
type: string
|
|
- description: 'Number of results to return (default: 10)'
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: 'Number of results to skip (default: 0)'
|
|
in: query
|
|
name: offset
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.OddMarketFilter'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Retrieve prematch odds by upcoming ID (FI)
|
|
tags:
|
|
- prematch
|
|
/api/v1/{tenant_slug}/odds/upcoming/{upcoming_id}/market/{market_id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve raw odds records using a Market ID
|
|
parameters:
|
|
- description: Upcoming ID
|
|
in: path
|
|
name: upcoming_id
|
|
required: true
|
|
type: string
|
|
- description: Market ID
|
|
in: path
|
|
name: market_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.RawOddsByMarketID'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Retrieve raw odds by Market ID
|
|
tags:
|
|
- prematch
|
|
/api/v1/{tenant_slug}/sport/bet:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets all the bets
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.BetRes'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets all bets
|
|
tags:
|
|
- bet
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a bet
|
|
parameters:
|
|
- description: Creates bet
|
|
in: body
|
|
name: createBet
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.CreateBetReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.BetRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Create a bet
|
|
tags:
|
|
- bet
|
|
/api/v1/{tenant_slug}/sport/bet/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Deletes bet by id
|
|
parameters:
|
|
- description: Bet ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Deletes bet by id
|
|
tags:
|
|
- bet
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets a single bet by id
|
|
parameters:
|
|
- description: Bet ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.BetRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets bet by id
|
|
tags:
|
|
- bet
|
|
patch:
|
|
consumes:
|
|
- application/json
|
|
description: Updates the cashed out field
|
|
parameters:
|
|
- description: Bet ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Updates Cashed Out
|
|
in: body
|
|
name: updateCashOut
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.UpdateCashOutReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Updates the cashed out field
|
|
tags:
|
|
- bet
|
|
/api/v1/{tenant_slug}/sport/bet/fastcode:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a bet with fast code
|
|
parameters:
|
|
- description: Creates bet
|
|
in: body
|
|
name: createBetWithFastCode
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.CreateBetWithFastCodeReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.BetRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Create a bet with fast code
|
|
tags:
|
|
- bet
|
|
/api/v1/{tenant_slug}/sport/bet/fastcode/{fast_code}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets a single bet by fast_code
|
|
parameters:
|
|
- description: Bet ID
|
|
in: path
|
|
name: fast_code
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.BetRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets bet by fast_code
|
|
tags:
|
|
- bet
|
|
/api/v1/{tenant_slug}/sport/random/bet:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Generate a random bet
|
|
parameters:
|
|
- description: Create Random bet
|
|
in: body
|
|
name: createBet
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.RandomBetReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.BetRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Generate a random bet
|
|
tags:
|
|
- bet
|
|
/api/v1/{tenant_slug}/ticket:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve all tickets
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.TicketRes'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get all tickets
|
|
tags:
|
|
- ticket
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a temporary ticket
|
|
parameters:
|
|
- description: Creates ticket
|
|
in: body
|
|
name: createTicket
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.CreateTicketReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.CreateTicketRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Create a temporary ticket
|
|
tags:
|
|
- ticket
|
|
/api/v1/{tenant_slug}/ticket/{id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve ticket details by ticket ID
|
|
parameters:
|
|
- description: Ticket ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.TicketRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get ticket by ID
|
|
tags:
|
|
- ticket
|
|
/api/v1/{tenant_slug}/top-leagues:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve all top leagues
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/handlers.TopLeague'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Retrieve all top leagues
|
|
tags:
|
|
- prematch
|
|
/api/v1/{tenant_slug}/user/admin-profile:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get user profile
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.AdminProfileRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
security:
|
|
- Bearer: []
|
|
summary: Get user profile
|
|
tags:
|
|
- user
|
|
/api/v1/{tenant_slug}/user/bets:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets user bets
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.BetRes'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets user bets
|
|
tags:
|
|
- user
|
|
/api/v1/{tenant_slug}/user/checkPhoneEmailExist:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Check if phone number or email exist
|
|
parameters:
|
|
- description: Check phone number or email exist
|
|
in: body
|
|
name: checkPhoneEmailExist
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.CheckPhoneEmailExistReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.CheckPhoneEmailExistRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Check if phone number or email exist
|
|
tags:
|
|
- user
|
|
/api/v1/{tenant_slug}/user/customer-profile:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get user profile
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.CustomerProfileRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
security:
|
|
- Bearer: []
|
|
summary: Get user profile
|
|
tags:
|
|
- user
|
|
/api/v1/{tenant_slug}/user/register:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Register user
|
|
parameters:
|
|
- description: Register user
|
|
in: body
|
|
name: registerUser
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.RegisterUserReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Register user
|
|
tags:
|
|
- user
|
|
/api/v1/{tenant_slug}/user/resetPassword:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Reset tenant password
|
|
parameters:
|
|
- description: Reset password
|
|
in: body
|
|
name: resetPassword
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.ResetPasswordReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Reset tenant password
|
|
tags:
|
|
- user
|
|
/api/v1/{tenant_slug}/user/search:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Search for user using name or phone
|
|
parameters:
|
|
- description: Search for using his name or phone
|
|
in: body
|
|
name: searchUserByNameOrPhone
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.SearchUserByNameOrPhoneReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.UserProfileRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Search for user using name or phone
|
|
tags:
|
|
- user
|
|
/api/v1/{tenant_slug}/user/sendRegisterCode:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Send register code
|
|
parameters:
|
|
- description: Send register code
|
|
in: body
|
|
name: registerCode
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.RegisterCodeReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Send register code
|
|
tags:
|
|
- user
|
|
/api/v1/{tenant_slug}/user/sendResetCode:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Send reset code
|
|
parameters:
|
|
- description: Send reset code
|
|
in: body
|
|
name: resetCode
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.ResetCodeReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Send reset code
|
|
tags:
|
|
- user
|
|
/api/v1/{tenant_slug}/user/wallet:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve customer wallet details
|
|
parameters:
|
|
- description: Company ID
|
|
in: header
|
|
name: company_id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.CustomerWalletRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
security:
|
|
- Bearer: []
|
|
summary: Get customer wallet
|
|
tags:
|
|
- wallet
|
|
/api/v1/{tenant_slug}events/{id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve an upcoming event by ID
|
|
parameters:
|
|
- description: ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.BaseEvent'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Retrieve an upcoming by ID
|
|
tags:
|
|
- prematch
|
|
/api/v1/admin:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get all Admins
|
|
parameters:
|
|
- description: Page number
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: Page size
|
|
in: query
|
|
name: page_size
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.AdminRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get all Admins
|
|
tags:
|
|
- admin
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Create transaction approver
|
|
parameters:
|
|
- description: Create transaction approver
|
|
in: body
|
|
name: manger
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.CreateTransactionApproverReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Create transaction approver
|
|
tags:
|
|
- admin
|
|
/api/v1/admin-company:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets a single company by id
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.GetCompanyRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets company by id
|
|
tags:
|
|
- company
|
|
/api/v1/admin/{id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get a single admin by id
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.AdminRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get admin by id
|
|
tags:
|
|
- admin
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update Admin
|
|
parameters:
|
|
- description: Update Admin
|
|
in: body
|
|
name: admin
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.updateAdminReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Update Admin
|
|
tags:
|
|
- admin
|
|
/api/v1/alea-games/launch:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Generates an authenticated launch URL for Alea Play virtual games
|
|
parameters:
|
|
- description: Game identifier (e.g., 'aviator', 'plinko')
|
|
in: query
|
|
name: game_id
|
|
required: true
|
|
type: string
|
|
- default: USD
|
|
description: Currency code (ISO 4217)
|
|
enum:
|
|
- USD
|
|
- EUR
|
|
- GBP
|
|
in: query
|
|
name: currency
|
|
type: string
|
|
- default: real
|
|
description: Game mode
|
|
enum:
|
|
- real
|
|
- demo
|
|
in: query
|
|
name: mode
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Returns authenticated game launch URL
|
|
schema:
|
|
additionalProperties:
|
|
allOf:
|
|
- type: string
|
|
- properties:
|
|
launch_url:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
security:
|
|
- BearerAuth: []
|
|
summary: Launch an Alea Play virtual game
|
|
tags:
|
|
- Alea Virtual Games
|
|
/api/v1/arifpay/b2c-webhook:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Handles webhook notifications from Arifpay for B2C transfers and
|
|
updates transfer + wallet status.
|
|
parameters:
|
|
- description: Arifpay webhook payload
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.WebhookRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Handle Arifpay B2C Webhook
|
|
tags:
|
|
- Arifpay
|
|
/api/v1/arifpay/b2c/transfer:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Initiates a B2C transfer using Telebirr, CBE, or MPESA depending
|
|
on the "type" query parameter
|
|
parameters:
|
|
- description: Transfer type (telebirr, cbe, mpesa)
|
|
in: query
|
|
name: type
|
|
required: true
|
|
type: string
|
|
- description: Transfer request payload
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.CheckoutSessionClientRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: 'message: transfer executed successfully'
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"400":
|
|
description: 'error: invalid request or unsupported transfer type'
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"500":
|
|
description: 'error: internal server error'
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Execute B2C Transfer
|
|
tags:
|
|
- Arifpay
|
|
/api/v1/arifpay/c2b-webhook:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Handles webhook notifications from Arifpay for C2B transfers and
|
|
updates transfer + wallet status.
|
|
parameters:
|
|
- description: Arifpay webhook payload
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.WebhookRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Handle Arifpay C2B Webhook
|
|
tags:
|
|
- Arifpay
|
|
/api/v1/arifpay/checkout:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a payment session using Arifpay and returns a redirect
|
|
URL.
|
|
parameters:
|
|
- description: Checkout session request payload
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.CheckoutSessionClientRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Create Arifpay Checkout Session
|
|
tags:
|
|
- Arifpay
|
|
/api/v1/arifpay/checkout/cancel/{sessionId}:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Cancels a payment session using Arifpay before completion.
|
|
parameters:
|
|
- description: Checkout session ID
|
|
in: path
|
|
name: sessionId
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Cancel Arifpay Checkout Session
|
|
tags:
|
|
- Arifpay
|
|
/api/v1/arifpay/payment-methods:
|
|
get:
|
|
description: Returns all payment method IDs and names for Arifpay
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.ARIFPAYPaymentMethod'
|
|
type: array
|
|
summary: List Arifpay Payment Methods
|
|
tags:
|
|
- Arifpay
|
|
/api/v1/arifpay/session-id/verify-transaction/{session_id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Verifies an Arifpay transaction using a session ID
|
|
parameters:
|
|
- description: Arifpay Session ID
|
|
in: query
|
|
name: session_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Verify Arifpay Transaction by Session ID
|
|
tags:
|
|
- Arifpay
|
|
/api/v1/arifpay/transaction-id/verify-transaction:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Verifies a transaction using transaction ID and payment type
|
|
parameters:
|
|
- description: Transaction verification payload
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.ArifpayVerifyByTransactionIDRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Verify Arifpay Transaction
|
|
tags:
|
|
- Arifpay
|
|
/api/v1/atlas/freespin:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Sends a request to Atlas to create free spins/bets for a given
|
|
player
|
|
parameters:
|
|
- description: Free spin input
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.FreeSpinRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/domain.FreeSpinResponse'
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Create free spins for a player
|
|
tags:
|
|
- Virtual Games - Atlas
|
|
/api/v1/atlas/games:
|
|
get:
|
|
description: Retrieves available Atlas virtual games from the provider
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/domain.AtlasGameEntity'
|
|
type: array
|
|
type: object
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: List Atlas virtual games
|
|
tags:
|
|
- Virtual Games - Atlas
|
|
/api/v1/atlas/init-game:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Initializes a game session for the given player using Atlas virtual
|
|
game provider
|
|
parameters:
|
|
- description: Start game input
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.AtlasGameInitRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/domain.AtlasGameInitResponse'
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Start an Atlas virtual game session
|
|
tags:
|
|
- Virtual Games - Atlas
|
|
/api/v1/auth/logout:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Logout customer
|
|
parameters:
|
|
- description: Logout customer
|
|
in: body
|
|
name: logout
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.logoutReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Logout customer
|
|
tags:
|
|
- auth
|
|
/api/v1/auth/refresh:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Refresh token
|
|
parameters:
|
|
- description: tokens
|
|
in: body
|
|
name: refresh
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.refreshToken'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.loginCustomerRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Refresh token
|
|
tags:
|
|
- auth
|
|
/api/v1/banks:
|
|
get:
|
|
parameters:
|
|
- description: Filter by country ID
|
|
in: query
|
|
name: country_id
|
|
type: integer
|
|
- description: Filter by active status
|
|
in: query
|
|
name: is_active
|
|
type: boolean
|
|
- description: Search term for bank name or code
|
|
in: query
|
|
name: search
|
|
type: string
|
|
- default: 1
|
|
description: Page number
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- default: 50
|
|
description: Items per page
|
|
in: query
|
|
maximum: 100
|
|
name: page_size
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.InstResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: List all banks with pagination and filtering
|
|
tags:
|
|
- Institutions - Banks
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Bank Info
|
|
in: body
|
|
name: bank
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.Bank'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/domain.Bank'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Create a new bank
|
|
tags:
|
|
- Institutions - Banks
|
|
/api/v1/banks/{id}:
|
|
delete:
|
|
parameters:
|
|
- description: Bank ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"204":
|
|
description: Deleted successfully
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Delete a bank
|
|
tags:
|
|
- Institutions - Banks
|
|
get:
|
|
parameters:
|
|
- description: Bank ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Bank'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get a bank by ID
|
|
tags:
|
|
- Institutions - Banks
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Bank ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Bank Info
|
|
in: body
|
|
name: bank
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.Bank'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Bank'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Update a bank
|
|
tags:
|
|
- Institutions - Banks
|
|
/api/v1/branch:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets all branches
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.BranchDetailRes'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets all branches
|
|
tags:
|
|
- branch
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a branch
|
|
parameters:
|
|
- description: Creates branch
|
|
in: body
|
|
name: createBranch
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.CreateBranchReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.BranchRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Create a branch
|
|
tags:
|
|
- branch
|
|
/api/v1/branch/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Delete the branch
|
|
parameters:
|
|
- description: Branch ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Delete the branch
|
|
tags:
|
|
- branch
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets a single branch by id
|
|
parameters:
|
|
- description: Branch ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.BranchDetailRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets branch by id
|
|
tags:
|
|
- branch
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Updates a branch
|
|
parameters:
|
|
- description: Branch ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Update Branch
|
|
in: body
|
|
name: updateBranch
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.CreateBranchReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.BranchRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Updates a branch
|
|
tags:
|
|
- branch
|
|
/api/v1/branch/{id}/bets:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets bets by its branch id
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.BetRes'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets bets by its branch id
|
|
tags:
|
|
- branch
|
|
/api/v1/branch/{id}/cashier:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets branch cashiers
|
|
parameters:
|
|
- description: Branch ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/handlers.GetCashierRes'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets branch cashiers
|
|
tags:
|
|
- branch
|
|
/api/v1/branch/{id}/operation:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets branch operations
|
|
parameters:
|
|
- description: Branch ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.BranchOperationRes'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets branch operations
|
|
tags:
|
|
- branch
|
|
/api/v1/branch/{id}/operation/{opID}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Delete the branch operation
|
|
parameters:
|
|
- description: Branch ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Branch Operation ID
|
|
in: path
|
|
name: opID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Delete the branch operation
|
|
tags:
|
|
- branch
|
|
/api/v1/branch/{id}/return:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Unassign the branch wallet to company
|
|
parameters:
|
|
- description: Branch ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.BranchDetailRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Unassign the branch wallet to company
|
|
tags:
|
|
- branch
|
|
/api/v1/branchCashier:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets branch for cahier
|
|
parameters:
|
|
- description: Branch ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.BranchDetailRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets branch for cahier
|
|
tags:
|
|
- branch
|
|
/api/v1/branchLocation:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets all branch locations
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.BranchLocation'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets all branch locations
|
|
tags:
|
|
- branch
|
|
/api/v1/branchWallet:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve all branch wallets
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/handlers.WalletRes'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get all branch wallets
|
|
tags:
|
|
- wallet
|
|
/api/v1/cashier/{id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get a single cashier by id
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.UserProfileRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get cashier by id
|
|
tags:
|
|
- cashier
|
|
/api/v1/cashierWallet:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get wallet for cashier
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.UserProfileRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get wallet for cashier
|
|
tags:
|
|
- cashier
|
|
/api/v1/cashiers:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get all cashiers
|
|
parameters:
|
|
- description: Page number
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: Page size
|
|
in: query
|
|
name: page_size
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/handlers.GetCashierRes'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get all cashiers
|
|
tags:
|
|
- cashier
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Create cashier
|
|
parameters:
|
|
- description: Create cashier
|
|
in: body
|
|
name: cashier
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.CreateCashierReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Create cashier
|
|
tags:
|
|
- cashier
|
|
/api/v1/cashiers/{id}:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update cashier
|
|
parameters:
|
|
- description: Cashier ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Update cashier
|
|
in: body
|
|
name: cashier
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.updateCashierReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Update cashier
|
|
tags:
|
|
- cashier
|
|
/api/v1/chapa/balances:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve Chapa account balance, optionally filtered by currency
|
|
code (e.g., ETB, USD)
|
|
parameters:
|
|
- description: Currency code (optional)
|
|
in: query
|
|
name: currency_code
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get Chapa account balance
|
|
tags:
|
|
- Chapa
|
|
/api/v1/chapa/banks:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get list of banks supported by Chapa
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get supported banks
|
|
tags:
|
|
- Chapa
|
|
/api/v1/chapa/payments/deposit:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Starts a new deposit process using Chapa payment gateway
|
|
parameters:
|
|
- description: Deposit request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.ChapaDepositRequestPayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.ChapaDepositResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Initiate a deposit
|
|
tags:
|
|
- Chapa
|
|
/api/v1/chapa/payments/receipt/{chapa_ref}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve the Chapa payment receipt URL using the reference ID
|
|
parameters:
|
|
- description: Chapa Reference ID
|
|
in: path
|
|
name: chapa_ref
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get Chapa Payment Receipt URL
|
|
tags:
|
|
- Chapa
|
|
/api/v1/chapa/payments/webhook/verify:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Handles payment and transfer notifications from Chapa
|
|
parameters:
|
|
- description: Webhook payload
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.ChapaWebhookPayment'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Chapa payment webhook callback (used by Chapa)
|
|
tags:
|
|
- Chapa
|
|
/api/v1/chapa/payments/withdraw:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Initiates a withdrawal request to transfer funds to a bank account
|
|
via Chapa
|
|
parameters:
|
|
- description: Withdrawal request details
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.ChapaWithdrawalRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Chapa withdrawal process initiated successfully
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"400":
|
|
description: Invalid request body
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"422":
|
|
description: Unprocessable entity
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Initiate a withdrawal
|
|
tags:
|
|
- Chapa
|
|
/api/v1/chapa/swap:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Convert an amount from one currency to another using Chapa's currency
|
|
swap API
|
|
parameters:
|
|
- description: Swap request payload
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.SwapRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Swap currency using Chapa API
|
|
tags:
|
|
- Chapa
|
|
/api/v1/chapa/transaction/cancel/{tx_ref}:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Cancels an active Chapa transaction using its transaction reference
|
|
parameters:
|
|
- description: Transaction Reference
|
|
in: path
|
|
name: tx_ref
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.ChapaCancelResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Cancel a Chapa deposit transaction
|
|
tags:
|
|
- Chapa
|
|
/api/v1/chapa/transaction/events/{ref_id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve the timeline of events for a specific Chapa transaction
|
|
parameters:
|
|
- description: Transaction Reference
|
|
in: path
|
|
name: ref_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.ChapaTransactionEvent'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Fetch transaction events
|
|
tags:
|
|
- Chapa
|
|
/api/v1/chapa/transaction/manual/verify/{tx_ref}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Manually verify a payment using Chapa's API
|
|
parameters:
|
|
- description: Transaction Reference
|
|
in: path
|
|
name: tx_ref
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Verify a payment manually
|
|
tags:
|
|
- Chapa
|
|
/api/v1/chapa/transactions:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieves all transactions from Chapa payment gateway
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.ChapaTransaction'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get all Chapa transactions
|
|
tags:
|
|
- Chapa
|
|
/api/v1/chapa/transfers:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve all transfer records from Chapa
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get all Chapa transfers
|
|
tags:
|
|
- Chapa
|
|
/api/v1/company:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets all companies
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.GetCompanyRes'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets all companies
|
|
tags:
|
|
- company
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a company
|
|
parameters:
|
|
- description: Creates company
|
|
in: body
|
|
name: createCompany
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.CreateCompanyReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.CompanyRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Create a company
|
|
tags:
|
|
- company
|
|
/api/v1/company/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Delete the company
|
|
parameters:
|
|
- description: Company ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Delete the company
|
|
tags:
|
|
- company
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets a single company by id
|
|
parameters:
|
|
- description: Company ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.GetCompanyRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets company by id
|
|
tags:
|
|
- company
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Updates a company
|
|
parameters:
|
|
- description: Company ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Update Company
|
|
in: body
|
|
name: updateCompany
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.UpdateCompanyReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.CompanyRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Updates a company
|
|
tags:
|
|
- company
|
|
/api/v1/company/{id}/branch:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets branches by company id
|
|
parameters:
|
|
- description: Company ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.BranchDetailRes'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets branches by company id
|
|
tags:
|
|
- branch
|
|
/api/v1/currencies:
|
|
get:
|
|
description: Returns list of supported currencies
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
type: object
|
|
summary: Get supported currencies
|
|
tags:
|
|
- Multi-Currency
|
|
/api/v1/currencies/convert:
|
|
get:
|
|
description: Converts amount from one currency to another
|
|
parameters:
|
|
- description: Source currency code (e.g., USD)
|
|
in: query
|
|
name: from
|
|
required: true
|
|
type: string
|
|
- description: Target currency code (e.g., ETB)
|
|
in: query
|
|
name: to
|
|
required: true
|
|
type: string
|
|
- description: Amount to convert
|
|
in: query
|
|
name: amount
|
|
required: true
|
|
type: number
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
type: number
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Convert currency
|
|
tags:
|
|
- Multi-Currency
|
|
/api/v1/customer:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get all Customers
|
|
parameters:
|
|
- description: Page number
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: Page size
|
|
in: query
|
|
name: page_size
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.CustomersRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get all Customers
|
|
tags:
|
|
- customer
|
|
/api/v1/customer/{id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get a single customer by id
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.CustomersRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get customer by id
|
|
tags:
|
|
- customer
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update Customers
|
|
parameters:
|
|
- description: Update Customers
|
|
in: body
|
|
name: Customers
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.updateCustomerReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Update Customers
|
|
tags:
|
|
- customer
|
|
/api/v1/customer/{id}/bets:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get customer bets
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.CustomersRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get customer bets
|
|
tags:
|
|
- customer
|
|
/api/v1/customerWallet:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve all customer wallets
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/handlers.CustomerWalletRes'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get all customer wallets
|
|
tags:
|
|
- wallet
|
|
/api/v1/direct-deposits:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Fetches direct deposits filtered by status with pagination
|
|
parameters:
|
|
- description: Deposit status (e.g., PENDING, APPROVED, REJECTED)
|
|
in: query
|
|
name: status
|
|
required: true
|
|
type: string
|
|
- description: Page number
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: Page size
|
|
in: query
|
|
name: pageSize
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/domain.DirectDeposit'
|
|
type: array
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get direct deposits by status
|
|
tags:
|
|
- DirectDeposit
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a direct deposit for a customer and notifies both the customer
|
|
and admins
|
|
parameters:
|
|
- description: Direct deposit details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.CreateDirectDeposit'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/domain.DirectDeposit'
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Create a new direct deposit
|
|
tags:
|
|
- DirectDeposit
|
|
/api/v1/direct-deposits/{depositID}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Deletes a direct deposit by its ID
|
|
parameters:
|
|
- description: Deposit ID
|
|
in: path
|
|
name: depositID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
type: string
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Delete a direct deposit
|
|
tags:
|
|
- DirectDeposit
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Fetches a single direct deposit by its ID
|
|
parameters:
|
|
- description: Deposit ID
|
|
in: path
|
|
name: depositID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/domain.DirectDeposit'
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get a direct deposit by ID
|
|
tags:
|
|
- DirectDeposit
|
|
/api/v1/direct-deposits/{depositID}/approve:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Approves a direct deposit by admin and credits customer wallet
|
|
parameters:
|
|
- description: Deposit ID
|
|
in: path
|
|
name: depositID
|
|
required: true
|
|
type: integer
|
|
- description: Admin ID performing the approval
|
|
in: query
|
|
name: adminID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
type: string
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Approve a direct deposit
|
|
tags:
|
|
- DirectDeposit
|
|
/api/v1/direct-deposits/{depositID}/reject:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Rejects a direct deposit by admin and notifies the customer
|
|
parameters:
|
|
- description: Deposit ID
|
|
in: path
|
|
name: depositID
|
|
required: true
|
|
type: integer
|
|
- description: Admin ID performing the rejection
|
|
in: query
|
|
name: adminID
|
|
required: true
|
|
type: integer
|
|
- description: Reason for rejection
|
|
in: query
|
|
name: reason
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
type: string
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Reject a direct deposit
|
|
tags:
|
|
- DirectDeposit
|
|
/api/v1/enetpulse/betting-offers:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Fetches all EnetPulse preodds betting offers stored in the database
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/domain.EnetpulsePreoddsBettingOffer'
|
|
type: array
|
|
type: object
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get all betting offers
|
|
tags:
|
|
- EnetPulse
|
|
/api/v1/enetpulse/fixtures:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Fetches all fixtures stored in the database
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/domain.EnetpulseFixture'
|
|
type: array
|
|
type: object
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get all stored fixtures
|
|
tags:
|
|
- EnetPulse
|
|
/api/v1/enetpulse/fixtures/preodds:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Fetches all EnetPulse fixtures along with their associated pre-match
|
|
odds
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/domain.EnetpulseFixtureWithPreodds'
|
|
type: array
|
|
type: object
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get fixtures with preodds
|
|
tags:
|
|
- EnetPulse
|
|
/api/v1/enetpulse/preodds:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Fetches all EnetPulse pre-match odds stored in the database
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/domain.EnetpulsePreodds'
|
|
type: array
|
|
type: object
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get all preodds
|
|
tags:
|
|
- EnetPulse
|
|
/api/v1/enetpulse/preodds-with-offers:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Fetches all EnetPulse pre-match odds along with their associated
|
|
betting offers stored in the database
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/domain.EnetpulsePreodds'
|
|
type: array
|
|
type: object
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get all preodds with betting offers
|
|
tags:
|
|
- EnetPulse
|
|
/api/v1/enetpulse/results:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Fetches all EnetPulse match results stored in the database
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/domain.EnetpulseResult'
|
|
type: array
|
|
type: object
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get all results
|
|
tags:
|
|
- EnetPulse
|
|
/api/v1/enetpulse/sports:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Fetches all sports stored in the database
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/domain.EnetpulseSport'
|
|
type: array
|
|
type: object
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get all sports
|
|
tags:
|
|
- EnetPulse
|
|
/api/v1/enetpulse/tournament-stages:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Fetches all tournament stages stored in the database
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/domain.EnetpulseTournamentStage'
|
|
type: array
|
|
type: object
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get all tournament stages
|
|
tags:
|
|
- EnetPulse
|
|
/api/v1/enetpulse/tournament-templates:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Fetches all tournament templates stored in the database
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/domain.EnetpulseTournamentTemplate'
|
|
type: array
|
|
type: object
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get all tournament templates
|
|
tags:
|
|
- EnetPulse
|
|
/api/v1/enetpulse/tournaments:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Fetches all tournaments stored in the database
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/domain.EnetpulseTournament'
|
|
type: array
|
|
type: object
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get all tournaments
|
|
tags:
|
|
- EnetPulse
|
|
/api/v1/events:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve all upcoming events from the database
|
|
parameters:
|
|
- description: Page number
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: Page size
|
|
in: query
|
|
name: page_size
|
|
type: integer
|
|
- description: League ID Filter
|
|
in: query
|
|
name: league_id
|
|
type: string
|
|
- description: Sport ID Filter
|
|
in: query
|
|
name: sport_id
|
|
type: string
|
|
- description: Country Code Filter
|
|
in: query
|
|
name: cc
|
|
type: string
|
|
- description: Start Time
|
|
in: query
|
|
name: first_start_time
|
|
type: string
|
|
- description: End Time
|
|
in: query
|
|
name: last_start_time
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.BaseEvent'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Retrieve all upcoming events
|
|
tags:
|
|
- prematch
|
|
/api/v1/events/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Set the event status to removed
|
|
parameters:
|
|
- description: Event ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Set the event status to removed
|
|
tags:
|
|
- event
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve an upcoming event by ID
|
|
parameters:
|
|
- description: ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.BaseEvent'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Retrieve an upcoming by ID
|
|
tags:
|
|
- prematch
|
|
/api/v1/events/{id}/bets:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve bet outcomes by event id
|
|
parameters:
|
|
- description: ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.BaseEvent'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Retrieve bet outcomes by event id
|
|
tags:
|
|
- prematch
|
|
/api/v1/events/{id}/is_monitored:
|
|
patch:
|
|
consumes:
|
|
- application/json
|
|
description: Update the event is_monitored
|
|
parameters:
|
|
- description: Event ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: update the event is_monitored
|
|
tags:
|
|
- event
|
|
/api/v1/events/{id}/settings:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update the event settings
|
|
parameters:
|
|
- description: Event ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: update the event settings
|
|
tags:
|
|
- event
|
|
/api/v1/issues:
|
|
get:
|
|
description: Admin endpoint to list all reported issues with pagination
|
|
parameters:
|
|
- description: Limit
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: Offset
|
|
in: query
|
|
name: offset
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.ReportedIssue'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get all reported issues
|
|
tags:
|
|
- Issues
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Allows a customer to report a new issue related to the betting
|
|
platform
|
|
parameters:
|
|
- description: Issue to report
|
|
in: body
|
|
name: issue
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.ReportedIssue'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/domain.ReportedIssue'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Report an issue
|
|
tags:
|
|
- Issues
|
|
/api/v1/issues/{issue_id}:
|
|
delete:
|
|
description: Admin endpoint to delete a reported issue
|
|
parameters:
|
|
- description: Issue ID
|
|
in: path
|
|
name: issue_id
|
|
required: true
|
|
type: integer
|
|
responses:
|
|
"204":
|
|
description: No Content
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Delete a reported issue
|
|
tags:
|
|
- Issues
|
|
/api/v1/issues/{issue_id}/status:
|
|
patch:
|
|
consumes:
|
|
- application/json
|
|
description: Admin endpoint to update the status of a reported issue
|
|
parameters:
|
|
- description: Issue ID
|
|
in: path
|
|
name: issue_id
|
|
required: true
|
|
type: integer
|
|
- description: New issue status (pending, in_progress, resolved, rejected)
|
|
in: body
|
|
name: status
|
|
required: true
|
|
schema:
|
|
properties:
|
|
status:
|
|
type: string
|
|
type: object
|
|
responses:
|
|
"204":
|
|
description: No Content
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Update issue status
|
|
tags:
|
|
- Issues
|
|
/api/v1/issues/user/{user_id}:
|
|
get:
|
|
description: Returns all issues reported by a specific user
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: user_id
|
|
required: true
|
|
type: integer
|
|
- description: Limit
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: Offset
|
|
in: query
|
|
name: offset
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.ReportedIssue'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get reported issues by a user
|
|
tags:
|
|
- Issues
|
|
/api/v1/leagues:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets all leagues
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.BaseLeague'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets all leagues
|
|
tags:
|
|
- leagues
|
|
/api/v1/logs:
|
|
get:
|
|
description: Fetches application logs from MongoDB with pagination, level filtering,
|
|
and search
|
|
parameters:
|
|
- description: Filter logs by level (debug, info, warn, error, dpanic, panic,
|
|
fatal)
|
|
in: query
|
|
name: level
|
|
type: string
|
|
- description: Search term to match against message or fields
|
|
in: query
|
|
name: search
|
|
type: string
|
|
- default: 1
|
|
description: 'Page number for pagination (default: 1)'
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- default: 50
|
|
description: 'Number of items per page (default: 50, max: 100)'
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Paginated list of application logs
|
|
schema:
|
|
$ref: '#/definitions/domain.LogResponse'
|
|
"400":
|
|
description: Invalid request parameters
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Retrieve application logs with filtering and pagination
|
|
tags:
|
|
- Logs
|
|
/api/v1/manager/{id}/branch:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets a branches by manager id
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.BranchDetailRes'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets branches by manager id
|
|
tags:
|
|
- branch
|
|
/api/v1/managers:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get all Managers
|
|
parameters:
|
|
- description: Page number
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: Page size
|
|
in: query
|
|
name: page_size
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.ManagersRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get all Managers
|
|
tags:
|
|
- manager
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Create Manager
|
|
parameters:
|
|
- description: Create manager
|
|
in: body
|
|
name: manger
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.CreateManagerReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Create Manager
|
|
tags:
|
|
- manager
|
|
/api/v1/managers/{id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get a single manager by id
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.ManagersRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get manager by id
|
|
tags:
|
|
- manager
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update Managers
|
|
parameters:
|
|
- description: Update Managers
|
|
in: body
|
|
name: Managers
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.updateManagerReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Update Managers
|
|
tags:
|
|
- manager
|
|
/api/v1/market-settings:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get all market settings that apply globally
|
|
parameters:
|
|
- description: Number of results to return (default 10)
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: Number of results to skip (default 0)
|
|
in: query
|
|
name: offset
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.MarketSettings'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Retrieve all global market settings
|
|
tags:
|
|
- market_settings
|
|
/api/v1/odds:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve all odds from the database
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.OddMarketFilter'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Retrieve all odds
|
|
tags:
|
|
- prematch
|
|
/api/v1/odds/upcoming/{upcoming_id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve prematch odds by upcoming event ID (FI from Bet365) with
|
|
optional pagination
|
|
parameters:
|
|
- description: Upcoming Event ID (FI)
|
|
in: path
|
|
name: upcoming_id
|
|
required: true
|
|
type: string
|
|
- description: 'Number of results to return (default: 10)'
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: 'Number of results to skip (default: 0)'
|
|
in: query
|
|
name: offset
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.OddMarketWithEventFilter'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Retrieve prematch odds by upcoming ID (FI)
|
|
tags:
|
|
- prematch
|
|
/api/v1/odds/upcoming/{upcoming_id}/market/{market_id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve raw odds records using a Market ID
|
|
parameters:
|
|
- description: Upcoming ID
|
|
in: path
|
|
name: upcoming_id
|
|
required: true
|
|
type: string
|
|
- description: Market ID
|
|
in: path
|
|
name: market_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.RawOddsByMarketID'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Retrieve raw odds by Market ID
|
|
tags:
|
|
- prematch
|
|
/api/v1/operation:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a operation
|
|
parameters:
|
|
- description: Creates operation
|
|
in: body
|
|
name: createBranchOperation
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.CreateBranchOperationReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.BranchOperationRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Create a operation
|
|
tags:
|
|
- branch
|
|
/api/v1/orchestrator/virtual-game/provider-reports/asc:
|
|
get:
|
|
description: Retrieves all virtual game provider reports sorted by total_games_played
|
|
in ascending order
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.VirtualGameProviderReport'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: List virtual game provider reports (ascending)
|
|
tags:
|
|
- VirtualGames - Orchestration
|
|
/api/v1/orchestrator/virtual-game/provider-reports/desc:
|
|
get:
|
|
description: Retrieves all virtual game provider reports sorted by total_games_played
|
|
in descending order
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.VirtualGameProviderReport'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: List virtual game provider reports (descending)
|
|
tags:
|
|
- VirtualGames - Orchestration
|
|
/api/v1/orchestrator/virtual-games:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns all virtual games with optional filters (category, search,
|
|
pagination)
|
|
parameters:
|
|
- description: Filter by category
|
|
in: query
|
|
name: category
|
|
type: string
|
|
- description: Search by game name
|
|
in: query
|
|
name: search
|
|
type: string
|
|
- description: Pagination limit
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: Pagination offset
|
|
in: query
|
|
name: offset
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/domain.UnifiedGame'
|
|
type: array
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: List all virtual games
|
|
tags:
|
|
- VirtualGames - Orchestration
|
|
/api/v1/report-files/download/{filename}:
|
|
get:
|
|
description: Downloads a generated report CSV file from the server
|
|
parameters:
|
|
- description: Name of the report file to download (e.g., report_daily_2025-06-21.csv)
|
|
in: path
|
|
name: filename
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- text/csv
|
|
responses:
|
|
"200":
|
|
description: CSV file will be downloaded
|
|
schema:
|
|
type: file
|
|
"400":
|
|
description: Missing or invalid filename
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"404":
|
|
description: Report file not found
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal server error while serving the file
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Download a CSV report file
|
|
tags:
|
|
- Reports
|
|
/api/v1/report-files/list:
|
|
get:
|
|
description: Returns a paginated list of generated report CSV files with search
|
|
capability
|
|
parameters:
|
|
- description: Search term to filter filenames
|
|
in: query
|
|
name: search
|
|
type: string
|
|
- default: 1
|
|
description: 'Page number (default: 1)'
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- default: 20
|
|
description: 'Items per page (default: 20, max: 100)'
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Paginated list of CSV report filenames
|
|
schema:
|
|
$ref: '#/definitions/domain.PaginatedFileResponse'
|
|
"400":
|
|
description: Invalid pagination parameters
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Failed to read report directory
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: List available report CSV files
|
|
tags:
|
|
- Reports
|
|
/api/v1/reports/dashboard:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns a comprehensive dashboard report with key metrics
|
|
parameters:
|
|
- description: Company ID filter
|
|
in: query
|
|
name: company_id
|
|
type: integer
|
|
- description: Branch ID filter
|
|
in: query
|
|
name: branch_id
|
|
type: integer
|
|
- description: User ID filter
|
|
in: query
|
|
name: user_id
|
|
type: integer
|
|
- description: Start time filter (RFC3339 format)
|
|
in: query
|
|
name: start_time
|
|
type: string
|
|
- description: End time filter (RFC3339 format)
|
|
in: query
|
|
name: end_time
|
|
type: string
|
|
- description: Sport ID filter
|
|
in: query
|
|
name: sport_id
|
|
type: string
|
|
- description: Status filter (0=Pending, 1=Win, 2=Loss, 3=Half, 4=Void, 5=Error)
|
|
in: query
|
|
name: status
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.DashboardSummary'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get dashboard report
|
|
tags:
|
|
- Reports
|
|
/api/v1/result/b365/{id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get results for an event
|
|
parameters:
|
|
- description: Event ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/handlers.ResultRes'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get results for an event
|
|
tags:
|
|
- result
|
|
/api/v1/santimpay/b2c-withdrawal:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Initiates a B2C withdrawal request with SantimPay and returns the
|
|
response.
|
|
parameters:
|
|
- description: SantimPay B2C withdrawal request payload
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.GeneratePaymentURLRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Process SantimPay B2C Withdrawal
|
|
tags:
|
|
- SantimPay
|
|
/api/v1/santimpay/b2c/partners:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Fetches a list of available B2C payout partners (e.g., Telebirr,
|
|
Mpesa, Banks) from SantimPay.
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get SantimPay B2C Partners
|
|
tags:
|
|
- SantimPay
|
|
/api/v1/santimpay/callback:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Processes a callback from SantimPay, updates transfer status, and
|
|
credits user wallet if payment was successful.
|
|
parameters:
|
|
- description: SantimPay callback payload
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.SantimPayCallbackPayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Process SantimPay Payment Callback
|
|
tags:
|
|
- SantimPay
|
|
/api/v1/santimpay/direct-payment:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Initiates a direct payment request with SantimPay and returns the
|
|
response.
|
|
parameters:
|
|
- description: SantimPay direct payment request payload
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.GeneratePaymentURLRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Process SantimPay Direct Payment
|
|
tags:
|
|
- SantimPay
|
|
/api/v1/santimpay/payment:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Generates a payment URL using SantimPay and returns it to the client.
|
|
parameters:
|
|
- description: SantimPay payment request payload
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.GeneratePaymentURLRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Create SantimPay Payment Session
|
|
tags:
|
|
- SantimPay
|
|
/api/v1/santimpay/transaction-status:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieves the real-time status of a transaction from SantimPay.
|
|
parameters:
|
|
- description: Transaction status request payload
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.TransactionStatusRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Check SantimPay Transaction Status
|
|
tags:
|
|
- SantimPay
|
|
/api/v1/search/branch:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Search branches by name or location
|
|
parameters:
|
|
- description: Search query
|
|
in: query
|
|
name: q
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.BranchDetailRes'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Search branches
|
|
tags:
|
|
- branch
|
|
/api/v1/search/company:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets all companies
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.CompanyRes'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets all companies
|
|
tags:
|
|
- company
|
|
/api/v1/shop/bet:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets all the shop bets
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.ShopBetRes'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets all shop bets
|
|
tags:
|
|
- bet
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Create bet at branch
|
|
parameters:
|
|
- description: create bet
|
|
in: body
|
|
name: createBet
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.ShopBetReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.ShopTransactionRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Create bet at branch
|
|
tags:
|
|
- transaction
|
|
/api/v1/shop/bet/{id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Cashout bet at branch
|
|
parameters:
|
|
- description: cashout bet
|
|
in: body
|
|
name: createBet
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.CashoutReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.ShopTransactionRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Cashout bet at branch
|
|
tags:
|
|
- transaction
|
|
/api/v1/shop/bet/{id}/cashout:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Cashout bet at branch
|
|
parameters:
|
|
- description: cashout bet
|
|
in: body
|
|
name: cashoutBet
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.CashoutReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.ShopTransactionRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Cashout bet at branch
|
|
tags:
|
|
- transaction
|
|
/api/v1/shop/cashout:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Cashout bet by cashoutID
|
|
parameters:
|
|
- description: cashout bet
|
|
in: body
|
|
name: cashoutBet
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.CashoutReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.ShopTransactionRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Cashout bet by cashoutID
|
|
tags:
|
|
- transaction
|
|
/api/v1/shop/cashout/{id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Cashout bet at branch
|
|
parameters:
|
|
- description: cashout bet
|
|
in: body
|
|
name: createBet
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.CashoutReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.ShopTransactionRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Cashout bet at branch
|
|
tags:
|
|
- transaction
|
|
/api/v1/shop/deposit:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Transfers money from branch wallet to customer wallet
|
|
parameters:
|
|
- description: ShopDepositReq
|
|
in: body
|
|
name: transferToWallet
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.ShopDepositReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.ShopDepositRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Shop deposit into customer wallet
|
|
tags:
|
|
- transaction
|
|
/api/v1/shop/transaction:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets all the transactions
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.ShopTransactionRes'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets all transactions
|
|
tags:
|
|
- transaction
|
|
/api/v1/shop/transaction/{id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets a single transaction by id
|
|
parameters:
|
|
- description: Transaction ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.ShopTransactionRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets transaction by id
|
|
tags:
|
|
- transaction
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Updates the verified status of a transaction
|
|
parameters:
|
|
- description: Transaction ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Updates Transaction Verification
|
|
in: body
|
|
name: updateVerified
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.UpdateTransactionVerifiedReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Updates the verified field of a transaction
|
|
tags:
|
|
- transaction
|
|
/api/v1/shop/transaction/{id}/bet:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets a single shop bet by transaction id
|
|
parameters:
|
|
- description: Transaction ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.ShopTransactionRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets shop bet by transaction id
|
|
tags:
|
|
- transaction
|
|
/api/v1/sport/bet/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Deletes bet by id
|
|
parameters:
|
|
- description: Bet ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Deletes bet by id
|
|
tags:
|
|
- bet
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets a single bet by id
|
|
parameters:
|
|
- description: Bet ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.BetRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets bet by id
|
|
tags:
|
|
- bet
|
|
/api/v1/super-login:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Login super-admin
|
|
parameters:
|
|
- description: Login super-admin
|
|
in: body
|
|
name: login
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.loginAdminReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.loginAdminRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Login super-admin
|
|
tags:
|
|
- auth
|
|
/api/v1/supportedOperation:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets all supported operations
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.BranchDetailRes'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Gets all supported operations
|
|
tags:
|
|
- branch
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a supported operation
|
|
parameters:
|
|
- description: Creates supported operation
|
|
in: body
|
|
name: createSupportedOperation
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.CreateSupportedOperationReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.SupportedOperationRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Create a supported operation
|
|
tags:
|
|
- branch
|
|
/api/v1/t-approver:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get all Admins
|
|
parameters:
|
|
- description: Page number
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: Page size
|
|
in: query
|
|
name: page_size
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.AdminRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get all Admins
|
|
tags:
|
|
- admin
|
|
/api/v1/t-approver/{id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get a single admin by id
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.AdminRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get admin by id
|
|
tags:
|
|
- admin
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update Admin
|
|
parameters:
|
|
- description: Update Admin
|
|
in: body
|
|
name: admin
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.updateAdminReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Update Admin
|
|
tags:
|
|
- admin
|
|
/api/v1/telebirr/callback:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Processes the Telebirr payment result and updates wallet balance.
|
|
parameters:
|
|
- description: Callback payload from Telebirr
|
|
in: body
|
|
name: payload
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.TelebirrPaymentCallbackPayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Handle Telebirr Payment Callback
|
|
tags:
|
|
- Telebirr
|
|
/api/v1/telebirr/payment:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Generates a payment URL using Telebirr and returns it to the client.
|
|
parameters:
|
|
- description: Telebirr payment request payload
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.GeneratePaymentURLRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Create Telebirr Payment Session
|
|
tags:
|
|
- Telebirr
|
|
/api/v1/tenant:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Check if phone number or email exist
|
|
parameters:
|
|
- description: Check phone number or email exist
|
|
in: body
|
|
name: checkPhoneEmailExist
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.CheckPhoneEmailExistReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.CheckPhoneEmailExistRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Check if phone number or email exist
|
|
tags:
|
|
- user
|
|
/api/v1/tenant/{tenant_slug}/customer:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get all Customers
|
|
parameters:
|
|
- description: Page number
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: Page size
|
|
in: query
|
|
name: page_size
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.CustomersRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get all Customers
|
|
tags:
|
|
- customer
|
|
/api/v1/tenant/{tenant_slug}/customer/{id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get a single customer by id
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.CustomersRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get customer by id
|
|
tags:
|
|
- customer
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update Customers
|
|
parameters:
|
|
- description: Update Customers
|
|
in: body
|
|
name: Customers
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.updateCustomerReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Update Customers
|
|
tags:
|
|
- customer
|
|
/api/v1/tenant/{tenant_slug}/customer/{id}/bets:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get tenant customer bets
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.CustomersRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get tenant customer bets
|
|
tags:
|
|
- customer
|
|
/api/v1/tenant/{tenant_slug}/events/{id}/bets:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve bet outcomes by event id
|
|
parameters:
|
|
- description: ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.BaseEvent'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Retrieve bet outcomes by event id
|
|
tags:
|
|
- prematch
|
|
/api/v1/tenant/{tenant_slug}/events/{id}/settings:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update the event settings
|
|
parameters:
|
|
- description: Event ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: update the event settings
|
|
tags:
|
|
- event
|
|
/api/v1/tenant/{tenant_slug}/referral/stats:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieves referral statistics for the authenticated user
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.ReferralStats'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
security:
|
|
- Bearer: []
|
|
summary: Get referral statistics
|
|
tags:
|
|
- referral
|
|
/api/v1/ticket:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve all tickets
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.TicketRes'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get all tickets
|
|
tags:
|
|
- ticket
|
|
/api/v1/ticket/{id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve ticket details by ticket ID
|
|
parameters:
|
|
- description: Ticket ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.TicketRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get ticket by ID
|
|
tags:
|
|
- ticket
|
|
/api/v1/transfer/refill/:id:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Super Admin route to refill a wallet
|
|
parameters:
|
|
- description: Create Transfer
|
|
in: body
|
|
name: refillWallet
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.CreateTransferReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.TransferWalletRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Refill wallet
|
|
tags:
|
|
- transfer
|
|
/api/v1/transfer/wallet/:id:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Create a transfer to wallet
|
|
parameters:
|
|
- description: Create Transfer
|
|
in: body
|
|
name: transferToWallet
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.CreateTransferReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.TransferWalletRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Create a transfer to wallet
|
|
tags:
|
|
- transfer
|
|
/api/v1/transfer/wallet/{id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get transfer by wallet
|
|
parameters:
|
|
- description: Create Transfer
|
|
in: body
|
|
name: transferToWallet
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.CreateTransferReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.TransferWalletRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get transfer by wallet
|
|
tags:
|
|
- transfer
|
|
/api/v1/user/delete/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Delete a user by their ID
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Delete user by ID
|
|
tags:
|
|
- user
|
|
/api/v1/user/resetPassword:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Reset password
|
|
parameters:
|
|
- description: Reset password
|
|
in: body
|
|
name: resetPassword
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.ResetPasswordReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Reset password
|
|
tags:
|
|
- user
|
|
/api/v1/user/search:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Search for user using name or phone
|
|
parameters:
|
|
- description: Search for using his name or phone
|
|
in: body
|
|
name: searchUserByNameOrPhone
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.SearchUserByNameOrPhoneReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.UserProfileRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Search for user using name or phone
|
|
tags:
|
|
- user
|
|
/api/v1/user/sendResetCode:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Send reset code
|
|
parameters:
|
|
- description: Send reset code
|
|
in: body
|
|
name: resetCode
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.ResetCodeReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Send reset code
|
|
tags:
|
|
- user
|
|
/api/v1/user/single/{id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get a single user by id
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.UserProfileRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get user by id
|
|
tags:
|
|
- user
|
|
/api/v1/user/suspend:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Suspend or unsuspend a user
|
|
parameters:
|
|
- description: Suspend or unsuspend a user
|
|
in: body
|
|
name: updateUserSuspend
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.UpdateUserSuspendReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.UpdateUserSuspendRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Suspend or unsuspend a user
|
|
tags:
|
|
- user
|
|
/api/v1/veli/credit-balances:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Fetches current credit balances per currency for the specified
|
|
brand
|
|
parameters:
|
|
- description: Brand ID
|
|
in: query
|
|
name: brandId
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/domain.CreditBalance'
|
|
type: array
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get VeliGames credit balances for a brand
|
|
tags:
|
|
- Virtual Games - VeliGames
|
|
/api/v1/veli/games-list:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieves games for the specified provider
|
|
parameters:
|
|
- description: Brand and Provider ID
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.GameListRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get games by provider
|
|
tags:
|
|
- Virtual Games - VeliGames
|
|
/api/v1/veli/gaming-activity:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieves successfully processed gaming activity transactions (BET,
|
|
WIN, CANCEL) from Veli Games
|
|
parameters:
|
|
- description: Gaming Activity Request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.GamingActivityRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/domain.GamingActivityResponse'
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get Veli Gaming Activity
|
|
tags:
|
|
- Virtual Games - VeliGames
|
|
/api/v1/veli/huge-wins:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieves huge win transactions based on brand configuration (e.g.
|
|
win > 10000 USD or 100x bet)
|
|
parameters:
|
|
- description: Huge Wins Request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.HugeWinsRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/domain.HugeWinsResponse'
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get Veli Huge Wins
|
|
tags:
|
|
- Virtual Games - VeliGames
|
|
/api/v1/veli/providers:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieves the list of VeliGames providers
|
|
parameters:
|
|
- description: Brand ID and paging options
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.ProviderRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/domain.ProviderResponse'
|
|
type: array
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get game providers
|
|
tags:
|
|
- Virtual Games - VeliGames
|
|
/api/v1/veli/start-demo-game:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Starts a demo session of the specified game (must support demo
|
|
mode)
|
|
parameters:
|
|
- description: Start demo game input
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.DemoGameRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/domain.GameStartResponse'
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Start a demo game session
|
|
tags:
|
|
- Virtual Games - VeliGames
|
|
/api/v1/veli/start-game:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Starts a real VeliGames session with the given player and game
|
|
info
|
|
parameters:
|
|
- description: Start game input
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.GameStartRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
$ref: '#/definitions/domain.GameStartResponse'
|
|
type: object
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Start a real game session
|
|
tags:
|
|
- Virtual Games - VeliGames
|
|
/api/v1/virtual-game/favorites:
|
|
get:
|
|
description: Lists the games that the user marked as favorite
|
|
parameters:
|
|
- description: Filter by provider ID
|
|
in: query
|
|
name: providerID
|
|
type: string
|
|
- description: Number of results to return
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: Results offset
|
|
in: query
|
|
name: offset
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.UnifiedGame'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get user's favorite games
|
|
tags:
|
|
- VirtualGames - Favourites
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Adds a game to the user's favorite games list
|
|
parameters:
|
|
- description: Game ID and Provider ID to add
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.FavoriteGameRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: created
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Add game to favorites
|
|
tags:
|
|
- VirtualGames - Favourites
|
|
/api/v1/virtual-game/favorites/{gameID}:
|
|
delete:
|
|
description: Removes a game from the user's favorites
|
|
parameters:
|
|
- description: Game ID to remove
|
|
in: path
|
|
name: gameID
|
|
required: true
|
|
type: integer
|
|
- description: Provider ID of the game
|
|
in: query
|
|
name: providerID
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: removed
|
|
schema:
|
|
$ref: '#/definitions/domain.Response'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Remove game from favorites
|
|
tags:
|
|
- VirtualGames - Favourites
|
|
/api/v1/virtual-game/orchestrator/providers/status:
|
|
patch:
|
|
description: Sets the enabled status of a provider
|
|
parameters:
|
|
- description: Provider ID
|
|
in: path
|
|
name: provider_id
|
|
required: true
|
|
type: string
|
|
- description: Enable or Disable
|
|
in: query
|
|
name: enabled
|
|
required: true
|
|
type: boolean
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.VirtualGameProvider'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Enable/Disable a provider
|
|
tags:
|
|
- VirtualGames - Orchestration
|
|
/api/v1/virtual-game/providers:
|
|
get:
|
|
description: Lists all providers with pagination
|
|
parameters:
|
|
- description: Limit
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: Offset
|
|
in: query
|
|
name: offset
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties: true
|
|
type: object
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: List virtual game providers
|
|
tags:
|
|
- VirtualGames - Orchestration
|
|
/api/v1/virtual-game/providers/{provider_id}:
|
|
delete:
|
|
description: Deletes a provider by provider_id
|
|
parameters:
|
|
- description: Provider ID
|
|
in: path
|
|
name: provider_id
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Remove a virtual game provider
|
|
tags:
|
|
- VirtualGames - Orchestration
|
|
get:
|
|
description: Fetches a provider by provider_id
|
|
parameters:
|
|
- description: Provider ID
|
|
in: path
|
|
name: provider_id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.VirtualGameProvider'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get a virtual game provider
|
|
tags:
|
|
- VirtualGames - Orchestration
|
|
/api/v1/wallet:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve all wallets
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/handlers.WalletRes'
|
|
type: array
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get all wallets
|
|
tags:
|
|
- wallet
|
|
/api/v1/wallet/{id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve wallet details by wallet ID
|
|
parameters:
|
|
- description: Wallet ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.WalletRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Get wallet by ID
|
|
tags:
|
|
- wallet
|
|
patch:
|
|
consumes:
|
|
- application/json
|
|
description: Can activate and deactivate wallet
|
|
parameters:
|
|
- description: Wallet ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Update Wallet Active
|
|
in: body
|
|
name: updateCashOut
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.UpdateWalletActiveReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Activate and Deactivate Wallet
|
|
tags:
|
|
- wallet
|
|
/api/v1/webhooks/alea:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Handles webhook callbacks from Alea Play virtual games for bet
|
|
settlement
|
|
parameters:
|
|
- description: Callback payload
|
|
in: body
|
|
name: callback
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.AleaPlayCallback'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Callback processed successfully
|
|
schema:
|
|
additionalProperties:
|
|
allOf:
|
|
- type: string
|
|
- properties:
|
|
status:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
summary: Process Alea Play game callback
|
|
tags:
|
|
- Alea Virtual Games
|
|
/betwin:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Processes a Bet and Win request from Atlas provider
|
|
parameters:
|
|
- description: Atlas BetWin input
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.AtlasBetWinRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.AtlasBetWinResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Atlas BetWin callback
|
|
tags:
|
|
- Virtual Games - Atlas
|
|
/freespin:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Handles the result of a free spin/bet from the game server
|
|
parameters:
|
|
- description: Free spin result input
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.FreeSpinResultRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.FreeSpinResultResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Free Spin/Bet result callback
|
|
tags:
|
|
- Virtual Games - Atlas
|
|
/jackpot:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Handles the jackpot result from the game server
|
|
parameters:
|
|
- description: Jackpot result input
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.JackpotRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.JackpotResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Jackpot result callback
|
|
tags:
|
|
- Virtual Games - Atlas
|
|
/popok/games:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieves the list of available PopOK slot games
|
|
parameters:
|
|
- default: USD
|
|
description: Currency (e.g. USD, ETB)
|
|
in: query
|
|
name: currency
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.PopOKGame'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Get PopOK Games List
|
|
tags:
|
|
- Virtual Games - PopOK
|
|
/popok/games/recommend:
|
|
get:
|
|
description: Recommends games based on user history or randomly
|
|
parameters:
|
|
- description: User ID
|
|
in: query
|
|
name: user_id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.GameRecommendation'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Recommend virtual games
|
|
tags:
|
|
- Virtual Games - PopOK
|
|
/result:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Processes a round result from Atlas or other providers
|
|
parameters:
|
|
- description: Round result input
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.RoundResultRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.RoundResultResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Atlas Round Result callback
|
|
tags:
|
|
- Virtual Games - Atlas
|
|
/rollback:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Processes a rollback request from Atlas or other providers
|
|
parameters:
|
|
- description: Rollback request input
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.RollbackRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.RollbackResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"502":
|
|
description: Bad Gateway
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Atlas Rollback callback
|
|
tags:
|
|
- Virtual Games - Atlas
|
|
/virtual-game/callback:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Processes callbacks from PopOK for game events
|
|
parameters:
|
|
- description: Callback data
|
|
in: body
|
|
name: callback
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.PopOKCallback'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Handle PopOK game callback
|
|
tags:
|
|
- Virtual Games - PopOK
|
|
/virtual-game/launch:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Generates a URL to launch a PopOK game
|
|
parameters:
|
|
- description: Game launch details
|
|
in: body
|
|
name: launch
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.launchVirtualGameReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.launchVirtualGameRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
security:
|
|
- Bearer: []
|
|
summary: Launch a PopOK virtual game
|
|
tags:
|
|
- Virtual Games - PopOK
|
|
/win:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Processes win callbacks from either Veli or PopOK providers by
|
|
auto-detecting the format
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Win processing result
|
|
schema: {}
|
|
"400":
|
|
description: Invalid request format
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"401":
|
|
description: Authentication failed
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"409":
|
|
description: Duplicate transaction
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Handle win callback (Veli or PopOK)
|
|
tags:
|
|
- Wins
|
|
securityDefinitions:
|
|
Bearer:
|
|
in: header
|
|
name: Authorization
|
|
type: apiKey
|
|
swagger: "2.0"
|