4808 lines
115 KiB
YAML
4808 lines
115 KiB
YAML
definitions:
|
|
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.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.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
|
|
branch_id:
|
|
example: 2
|
|
type: integer
|
|
cashed_id:
|
|
example: "21234"
|
|
type: string
|
|
cashed_out:
|
|
example: false
|
|
type: boolean
|
|
created_at:
|
|
example: "2025-04-08T12:00:00Z"
|
|
type: string
|
|
full_name:
|
|
example: John
|
|
type: string
|
|
id:
|
|
example: 1
|
|
type: integer
|
|
is_shop_bet:
|
|
example: false
|
|
type: boolean
|
|
outcomes:
|
|
items:
|
|
$ref: '#/definitions/domain.BetOutcome'
|
|
type: array
|
|
phone_number:
|
|
example: "1234567890"
|
|
type: string
|
|
status:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.OutcomeStatus'
|
|
example: 1
|
|
total_odds:
|
|
example: 4.22
|
|
type: number
|
|
user_id:
|
|
example: 2
|
|
type: integer
|
|
type: object
|
|
domain.ChapaDepositRequestPayload:
|
|
properties:
|
|
amount:
|
|
type: number
|
|
required:
|
|
- amount
|
|
type: object
|
|
domain.ChapaDepositResponse:
|
|
properties:
|
|
checkoutURL:
|
|
type: string
|
|
reference:
|
|
type: string
|
|
type: object
|
|
domain.ChapaVerificationResponse:
|
|
properties:
|
|
amount:
|
|
type: number
|
|
currency:
|
|
type: string
|
|
status:
|
|
type: string
|
|
tx_ref:
|
|
type: string
|
|
type: object
|
|
domain.ChapaWebhookPayload:
|
|
properties:
|
|
amount:
|
|
type: integer
|
|
currency:
|
|
type: string
|
|
status:
|
|
$ref: '#/definitions/domain.PaymentStatus'
|
|
tx_ref:
|
|
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.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
|
|
full_name:
|
|
example: John
|
|
type: string
|
|
outcomes:
|
|
items:
|
|
$ref: '#/definitions/domain.CreateBetOutcomeReq'
|
|
type: array
|
|
phone_number:
|
|
example: "1234567890"
|
|
type: string
|
|
status:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.OutcomeStatus'
|
|
example: 1
|
|
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.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.ErrorResponse:
|
|
properties:
|
|
error:
|
|
type: string
|
|
message:
|
|
type: string
|
|
type: object
|
|
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.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.League:
|
|
properties:
|
|
bet365_id:
|
|
example: 1121
|
|
type: integer
|
|
cc:
|
|
example: uk
|
|
type: string
|
|
id:
|
|
example: 1
|
|
type: integer
|
|
is_active:
|
|
example: false
|
|
type: boolean
|
|
is_featured:
|
|
example: false
|
|
type: boolean
|
|
name:
|
|
example: BPL
|
|
type: string
|
|
sport_id:
|
|
example: 1
|
|
type: integer
|
|
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.Odd:
|
|
properties:
|
|
category:
|
|
type: string
|
|
event_id:
|
|
type: string
|
|
fetched_at:
|
|
type: string
|
|
fi:
|
|
type: string
|
|
handicap:
|
|
type: string
|
|
is_active:
|
|
type: boolean
|
|
market_category:
|
|
type: string
|
|
market_id:
|
|
type: string
|
|
market_name:
|
|
type: string
|
|
market_type:
|
|
type: string
|
|
name:
|
|
type: string
|
|
odds_value:
|
|
type: number
|
|
raw_odds:
|
|
items: {}
|
|
type: array
|
|
section:
|
|
type: string
|
|
source:
|
|
type: string
|
|
type: object
|
|
domain.OtpProvider:
|
|
enum:
|
|
- twilio
|
|
- aformessage
|
|
type: string
|
|
x-enum-varnames:
|
|
- TwilioSms
|
|
- AfroMessage
|
|
domain.OutcomeStatus:
|
|
enum:
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 3
|
|
- 4
|
|
- 5
|
|
type: integer
|
|
x-enum-comments:
|
|
OUTCOME_STATUS_ERROR: Half Win and Half Given Back
|
|
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.PaymentOption:
|
|
enum:
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 3
|
|
type: integer
|
|
x-enum-varnames:
|
|
- CASH_TRANSACTION
|
|
- TELEBIRR_TRANSACTION
|
|
- ARIFPAY_TRANSACTION
|
|
- BANK
|
|
domain.PaymentStatus:
|
|
enum:
|
|
- success
|
|
- pending
|
|
- completed
|
|
- failed
|
|
type: string
|
|
x-enum-varnames:
|
|
- PaymentStatusSuccessful
|
|
- PaymentStatusPending
|
|
- PaymentStatusCompleted
|
|
- PaymentStatusFailed
|
|
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.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:
|
|
fetched_at:
|
|
type: string
|
|
handicap:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
market_name:
|
|
type: string
|
|
raw_odds:
|
|
items: {}
|
|
type: array
|
|
type: object
|
|
domain.ReferralSettings:
|
|
properties:
|
|
betReferralBonusPercentage:
|
|
type: number
|
|
cashbackPercentage:
|
|
type: number
|
|
createdAt:
|
|
type: string
|
|
expiresAfterDays:
|
|
type: integer
|
|
id:
|
|
type: integer
|
|
maxReferrals:
|
|
type: integer
|
|
referralRewardAmount:
|
|
type: number
|
|
updatedAt:
|
|
type: string
|
|
updatedBy:
|
|
type: string
|
|
version:
|
|
type: integer
|
|
type: object
|
|
domain.ReferralStats:
|
|
properties:
|
|
completedReferrals:
|
|
type: integer
|
|
pendingRewards:
|
|
type: number
|
|
totalReferrals:
|
|
type: integer
|
|
totalRewardEarned:
|
|
type: number
|
|
type: object
|
|
domain.Response:
|
|
properties:
|
|
data: {}
|
|
message:
|
|
type: string
|
|
status_code:
|
|
type: integer
|
|
success:
|
|
type: boolean
|
|
type: object
|
|
domain.Role:
|
|
enum:
|
|
- super_admin
|
|
- admin
|
|
- branch_manager
|
|
- customer
|
|
- cashier
|
|
type: string
|
|
x-enum-varnames:
|
|
- RoleSuperAdmin
|
|
- RoleAdmin
|
|
- RoleBranchManager
|
|
- RoleCustomer
|
|
- RoleCashier
|
|
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
|
|
id:
|
|
example: 1
|
|
type: integer
|
|
outcomes:
|
|
items:
|
|
$ref: '#/definitions/domain.TicketOutcome'
|
|
type: array
|
|
total_odds:
|
|
example: 4.22
|
|
type: number
|
|
type: object
|
|
domain.UpcomingEvent:
|
|
properties:
|
|
away_kit_image:
|
|
description: Kit or image for away team (optional)
|
|
type: string
|
|
away_team:
|
|
description: Away team name (can be empty/null)
|
|
type: string
|
|
away_team_id:
|
|
description: Away team ID (can be empty/null)
|
|
type: integer
|
|
home_kit_image:
|
|
description: Kit or image for home team (optional)
|
|
type: string
|
|
home_team:
|
|
description: Home team name (if available)
|
|
type: string
|
|
home_team_id:
|
|
description: Home team ID
|
|
type: integer
|
|
id:
|
|
description: Event ID
|
|
type: string
|
|
league_cc:
|
|
description: League country code
|
|
type: string
|
|
league_id:
|
|
description: League ID
|
|
type: integer
|
|
league_name:
|
|
description: League name
|
|
type: string
|
|
match_name:
|
|
description: Match or event name
|
|
type: string
|
|
source:
|
|
description: bet api provider (bet365, betfair)
|
|
type: string
|
|
sport_id:
|
|
description: Sport ID
|
|
type: integer
|
|
start_time:
|
|
description: Converted from "time" field in UNIX format
|
|
type: string
|
|
status:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.EventStatus'
|
|
description: Match Status for event
|
|
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.BranchDetailRes:
|
|
properties:
|
|
balance:
|
|
example: 100.5
|
|
type: number
|
|
branch_manager_id:
|
|
example: 1
|
|
type: integer
|
|
company_id:
|
|
example: 1
|
|
type: integer
|
|
id:
|
|
example: 1
|
|
type: integer
|
|
is_self_owned:
|
|
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
|
|
wallet_id:
|
|
example: 1
|
|
type: integer
|
|
type: object
|
|
handlers.BranchOperationRes:
|
|
properties:
|
|
description:
|
|
example: Betting on sport events
|
|
type: string
|
|
name:
|
|
example: SportsBook
|
|
type: string
|
|
type: object
|
|
handlers.BranchRes:
|
|
properties:
|
|
branch_manager_id:
|
|
example: 1
|
|
type: integer
|
|
company_id:
|
|
example: 1
|
|
type: integer
|
|
id:
|
|
example: 1
|
|
type: integer
|
|
is_self_owned:
|
|
example: false
|
|
type: boolean
|
|
location:
|
|
example: Addis Ababa
|
|
type: string
|
|
name:
|
|
example: 4-kilo Branch
|
|
type: string
|
|
wallet_id:
|
|
example: 1
|
|
type: integer
|
|
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.CompanyRes:
|
|
properties:
|
|
admin_id:
|
|
example: 1
|
|
type: integer
|
|
id:
|
|
example: 1
|
|
type: integer
|
|
name:
|
|
example: CompanyName
|
|
type: string
|
|
wallet_id:
|
|
example: 1
|
|
type: integer
|
|
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.CreateBranchOperationReq:
|
|
properties:
|
|
branch_id:
|
|
example: 1
|
|
type: integer
|
|
operation_id:
|
|
example: 1
|
|
type: integer
|
|
type: object
|
|
handlers.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
|
|
required:
|
|
- branch_manager_id
|
|
- location
|
|
- name
|
|
- operations
|
|
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.CreateCompanyReq:
|
|
properties:
|
|
admin_id:
|
|
example: 1
|
|
type: integer
|
|
name:
|
|
example: CompanyName
|
|
type: string
|
|
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.CreateSupportedOperationReq:
|
|
properties:
|
|
description:
|
|
example: Betting on sport events
|
|
type: string
|
|
name:
|
|
example: SportsBook
|
|
type: string
|
|
type: object
|
|
handlers.CreateTransactionReq:
|
|
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
|
|
cashout_id:
|
|
example: "191212"
|
|
type: string
|
|
full_name:
|
|
example: John Smith
|
|
type: string
|
|
payment_option:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.PaymentOption'
|
|
example: 1
|
|
phone_number:
|
|
example: "0911111111"
|
|
type: string
|
|
reference_number:
|
|
type: string
|
|
type:
|
|
example: 1
|
|
type: integer
|
|
type: object
|
|
handlers.CreateTransferReq:
|
|
properties:
|
|
amount:
|
|
example: 100
|
|
type: number
|
|
payment_method:
|
|
example: cash
|
|
type: string
|
|
type: object
|
|
handlers.CustomerWalletRes:
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
customer_id:
|
|
example: 1
|
|
type: integer
|
|
id:
|
|
example: 1
|
|
type: integer
|
|
regular_balance:
|
|
example: 100
|
|
type: number
|
|
regular_id:
|
|
example: 1
|
|
type: integer
|
|
regular_updated_at:
|
|
type: string
|
|
static_balance:
|
|
example: 100
|
|
type: number
|
|
static_id:
|
|
example: 1
|
|
type: integer
|
|
static_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
|
|
provider:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.OtpProvider'
|
|
example: twilio
|
|
required:
|
|
- provider
|
|
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
|
|
provider:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.OtpProvider'
|
|
example: twilio
|
|
referal_code:
|
|
example: ABC123
|
|
type: string
|
|
required:
|
|
- provider
|
|
type: object
|
|
handlers.ResetCodeReq:
|
|
properties:
|
|
email:
|
|
example: john.doe@example.com
|
|
type: string
|
|
phone_number:
|
|
example: "1234567890"
|
|
type: string
|
|
provider:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.OtpProvider'
|
|
example: twilio
|
|
required:
|
|
- provider
|
|
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.SupportedOperationRes:
|
|
properties:
|
|
description:
|
|
example: Betting on sport events
|
|
type: string
|
|
id:
|
|
example: 1
|
|
type: integer
|
|
name:
|
|
example: SportsBook
|
|
type: string
|
|
type: object
|
|
handlers.TransactionRes:
|
|
properties:
|
|
account_name:
|
|
type: string
|
|
account_number:
|
|
type: string
|
|
amount:
|
|
example: 100
|
|
type: number
|
|
approved_by:
|
|
example: 1
|
|
type: integer
|
|
approver_name:
|
|
example: John Smith
|
|
type: string
|
|
bank_code:
|
|
type: string
|
|
beneficiary_name:
|
|
type: string
|
|
bet_id:
|
|
example: 1
|
|
type: integer
|
|
branch_id:
|
|
example: 1
|
|
type: integer
|
|
branch_location:
|
|
example: Branch Location
|
|
type: string
|
|
branch_name:
|
|
example: Branch Name
|
|
type: string
|
|
cashier_id:
|
|
example: 1
|
|
type: integer
|
|
cashier_name:
|
|
example: John Smith
|
|
type: string
|
|
company_id:
|
|
example: 1
|
|
type: integer
|
|
created_at:
|
|
type: string
|
|
full_name:
|
|
example: John Smith
|
|
type: string
|
|
id:
|
|
example: 1
|
|
type: integer
|
|
number_of_outcomes:
|
|
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
|
|
verified:
|
|
example: true
|
|
type: boolean
|
|
type: object
|
|
handlers.TransferWalletRes:
|
|
properties:
|
|
amount:
|
|
type: number
|
|
cashier_id:
|
|
type: integer
|
|
created_at:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
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.UpdateCompanyReq:
|
|
properties:
|
|
admin_id:
|
|
example: 1
|
|
type: integer
|
|
name:
|
|
example: CompanyName
|
|
type: string
|
|
type: object
|
|
handlers.UpdateTransactionVerifiedReq:
|
|
properties:
|
|
verified:
|
|
example: true
|
|
type: boolean
|
|
type: object
|
|
handlers.UpdateUserSuspendReq:
|
|
properties:
|
|
suspended:
|
|
example: true
|
|
type: boolean
|
|
user_id:
|
|
example: 123
|
|
type: integer
|
|
required:
|
|
- suspended
|
|
- 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
|
|
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: crash_001
|
|
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.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.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:
|
|
/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 Admin
|
|
parameters:
|
|
- description: Create admin
|
|
in: body
|
|
name: manger
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.CreateAdminReq'
|
|
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 Admin
|
|
tags:
|
|
- admin
|
|
/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/banks:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.Bank'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: List all banks
|
|
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/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/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.ChapaVerificationResponse'
|
|
"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/payments/webhook/verify:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Handles payment notifications from Chapa
|
|
parameters:
|
|
- description: Webhook payload
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.ChapaWebhookPayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
additionalProperties: true
|
|
type: object
|
|
"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:
|
|
"201":
|
|
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/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/logs:
|
|
get:
|
|
description: Fetches the 100 most recent application logs from MongoDB
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: List of application logs
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.LogEntry'
|
|
type: array
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/domain.ErrorResponse'
|
|
summary: Retrieve latest application logs
|
|
tags:
|
|
- Logs
|
|
/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 list of all generated report CSV files available for
|
|
download
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: List of CSV report filenames
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/definitions/domain.Response'
|
|
- properties:
|
|
data:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
"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/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
|
|
/auth/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
|
|
/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
|
|
/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
|
|
/branch:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets all branches
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/handlers.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/handlers.CreateBranchReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.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
|
|
/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/handlers.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/handlers.CreateBranchReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.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
|
|
/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
|
|
/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
|
|
/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/handlers.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
|
|
/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
|
|
/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/handlers.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
|
|
/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
|
|
/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
|
|
/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
|
|
/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:
|
|
$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: 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
|
|
/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
|
|
/company:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets all companies
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/handlers.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
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a company
|
|
parameters:
|
|
- description: Creates company
|
|
in: body
|
|
name: createCompany
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.CreateCompanyReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.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
|
|
/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/handlers.CompanyRes'
|
|
"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/handlers.UpdateCompanyReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.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
|
|
/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/handlers.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
|
|
/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.UpcomingEvent'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Retrieve all upcoming events
|
|
tags:
|
|
- prematch
|
|
/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.UpcomingEvent'
|
|
"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
|
|
/leagues:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets all leagues
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.League'
|
|
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
|
|
/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/handlers.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
|
|
/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
|
|
/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
|
|
/odds:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve all prematch odds from the database
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.Odd'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Retrieve all prematch odds
|
|
tags:
|
|
- prematch
|
|
/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.Odd'
|
|
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
|
|
/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
|
|
/operation:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a operation
|
|
parameters:
|
|
- description: Creates operation
|
|
in: body
|
|
name: createBranchOperation
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.CreateBranchOperationReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.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
|
|
/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
|
|
"502":
|
|
description: Bad Gateway
|
|
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
|
|
/referral/settings:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieves current referral settings (admin only)
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/domain.ReferralSettings'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"403":
|
|
description: Forbidden
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
security:
|
|
- Bearer: []
|
|
summary: Get referral settings
|
|
tags:
|
|
- referral
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Updates referral settings (admin only)
|
|
parameters:
|
|
- description: Referral settings
|
|
in: body
|
|
name: settings
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/domain.ReferralSettings'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"403":
|
|
description: Forbidden
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
security:
|
|
- Bearer: []
|
|
summary: Update referral settings
|
|
tags:
|
|
- referral
|
|
/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
|
|
/result/{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
|
|
/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/handlers.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
|
|
/search/company:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets all companies
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/handlers.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
|
|
/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
|
|
/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
|
|
/sport/bet/cashout/{id}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets a single bet by cashout id
|
|
parameters:
|
|
- description: cashout ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
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 cashout id
|
|
tags:
|
|
- bet
|
|
/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
|
|
/supportedOperation:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets all supported operations
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/handlers.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/handlers.CreateSupportedOperationReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.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
|
|
/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
|
|
/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
|
|
/top-leagues:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Retrieve all top leagues
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/domain.UpcomingEvent'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Retrieve all top leagues
|
|
tags:
|
|
- prematch
|
|
/transaction:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Gets all the transactions
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/handlers.TransactionRes'
|
|
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
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a transaction
|
|
parameters:
|
|
- description: Creates transaction
|
|
in: body
|
|
name: createBet
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/handlers.CreateTransactionReq'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/handlers.TransactionRes'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
summary: Create a transaction
|
|
tags:
|
|
- transaction
|
|
/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/handlers.TransactionRes'
|
|
"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/handlers.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
|
|
/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
|
|
/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
|
|
/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
|
|
/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
|
|
/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
|
|
/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
|
|
/user/profile:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get user profile
|
|
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'
|
|
security:
|
|
- Bearer: []
|
|
summary: Get user profile
|
|
tags:
|
|
- user
|
|
/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
|
|
/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
|
|
/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
|
|
/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
|
|
/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
|
|
/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
|
|
/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
|
|
/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
|
|
/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/response.APIResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
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/response.APIResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/response.APIResponse'
|
|
security:
|
|
- Bearer: []
|
|
summary: Launch a PopOK virtual game
|
|
tags:
|
|
- Virtual Games - PopOK
|
|
/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
|
|
/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
|
|
securityDefinitions:
|
|
Bearer:
|
|
in: header
|
|
name: Authorization
|
|
type: apiKey
|
|
swagger: "2.0"
|