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.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.ChapaSupportedBank: properties: acct_length: type: integer acct_number_regex: type: string active: type: integer country_id: type: integer created_at: type: string currency: type: string example_value: type: string id: type: integer is_24hrs: type: integer is_active: type: integer is_mobilemoney: type: integer is_rtgs: type: integer name: type: string slug: type: string swift: type: string updated_at: type: string type: object domain.ChapaSupportedBanksResponse: properties: data: items: $ref: '#/definitions/domain.ChapaSupportedBank' type: array message: type: string type: object domain.CreateTransferResponse: properties: data: $ref: '#/definitions/domain.TransferData' message: type: string status: type: string type: object domain.InitPaymentData: properties: checkout_url: type: string tx_ref: type: string type: object domain.InitPaymentRequest: properties: amount: type: string callback_url: type: string currency: type: string email: type: string first_name: type: string last_name: type: string return_url: type: string tx_ref: type: string type: object domain.InitPaymentResponse: properties: data: $ref: '#/definitions/domain.InitPaymentData' message: description: e.g., "Payment initialized" type: string status: description: '"success"' 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.OutcomeStatus: enum: - 0 - 1 - 2 - 3 - 4 type: integer x-enum-comments: 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 domain.PaymentOption: enum: - 0 - 1 - 2 - 3 type: integer x-enum-varnames: - CASH_TRANSACTION - TELEBIRR_TRANSACTION - ARIFPAY_TRANSACTION - BANK domain.PopOKCallback: properties: amount: type: number currency: type: string session_id: type: string signature: description: HMAC-SHA256 signature for verification type: string timestamp: type: integer transaction_id: type: string type: description: BET, WIN, REFUND, JACKPOT_WIN type: string type: object domain.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.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.TransactionData: properties: amount: type: string currency: type: string email: type: string status: type: string tx_ref: type: string type: object domain.TransferData: properties: amount: type: string currency: type: string reference: type: string status: type: string type: object domain.TransferRequest: properties: account_number: type: string amount: type: string bank_code: type: string currency: type: string reason: type: string recipient_name: type: string reference: type: string type: object domain.TransferVerificationData: properties: account_name: type: string bank_code: type: string reference: type: string status: type: string type: object domain.UpcomingEvent: properties: awayKitImage: description: Kit or image for away team (optional) type: string awayTeam: description: Away team name (can be empty/null) type: string awayTeamID: description: Away team ID (can be empty/null) type: string homeKitImage: description: Kit or image for home team (optional) type: string homeTeam: description: Home team name (if available) type: string homeTeamID: description: Home team ID type: string id: description: Event ID type: string leagueCC: description: League country code type: string leagueID: description: League ID type: string leagueName: description: League name type: string matchName: description: Match or event name type: string sportID: description: Sport ID type: string startTime: description: Converted from "time" field in UNIX format type: string type: object domain.VerifyTransactionResponse: properties: data: $ref: '#/definitions/domain.TransactionData' message: type: string status: type: string type: object domain.VerifyTransferResponse: properties: data: $ref: '#/definitions/domain.TransferVerificationData' message: type: string status: type: string type: object handlers.AdminRes: properties: created_at: type: string email: type: string email_verified: type: boolean first_name: type: string id: type: integer last_login: type: string last_name: type: string phone_number: type: string phone_verified: type: boolean role: $ref: '#/definitions/domain.Role' suspended: type: boolean suspended_at: type: string updated_at: type: string type: object handlers.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 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 handlers.BranchDetailRes: 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 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.CreateBetOutcomeReq: properties: event_id: example: 1 type: integer market_id: example: 1 type: integer odd_id: example: 1 type: integer type: object handlers.CreateBetReq: properties: amount: example: 100 type: number branch_id: example: 1 type: integer full_name: example: John type: string outcomes: items: $ref: '#/definitions/handlers.CreateBetOutcomeReq' type: array phone_number: example: "1234567890" type: string status: allOf: - $ref: '#/definitions/domain.OutcomeStatus' example: 1 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.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 handlers.CreateTicketReq: properties: amount: example: 100 type: number outcomes: items: $ref: '#/definitions/handlers.CreateTicketOutcomeReq' type: array type: object handlers.CreateTicketRes: properties: created_number: example: 3 type: integer fast_code: example: 1234 type: integer 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: company_id: example: 1 type: integer 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.ManagersRes: properties: created_at: type: string email: type: string email_verified: type: boolean first_name: type: string id: type: integer last_login: type: string last_name: type: string phone_number: type: string phone_verified: type: boolean role: $ref: '#/definitions/domain.Role' suspended: type: boolean suspended_at: type: string updated_at: type: string type: object handlers.RegisterCodeReq: properties: email: example: john.doe@example.com type: string phone_number: example: "1234567890" type: string type: object handlers.RegisterUserReq: properties: email: example: john.doe@example.com type: string first_name: example: John type: string last_name: example: Doe type: string otp: example: "123456" type: string password: example: password123 type: string phone_number: example: "1234567890" type: string referal_code: example: ABC123 type: string type: object handlers.ResetCodeReq: properties: email: example: john.doe@example.com type: string phone_number: example: "1234567890" type: string type: object handlers.ResetPasswordReq: properties: email: example: john.doe@example.com type: string otp: example: "123456" type: string password: example: newpassword123 minLength: 8 type: string phone_number: example: "1234567890" type: string required: - otp - password type: object handlers.SearchUserByNameOrPhoneReq: properties: searchString: type: string 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.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 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: example: 100 type: number cashier_id: example: 789 type: integer created_at: example: "2025-04-08T12:00:00Z" type: string id: example: 1 type: integer payment_method: example: bank type: string receiver_wallet_id: example: 1 type: integer sender_wallet_id: example: 1 type: integer type: example: transfer type: string updated_at: example: "2025-04-08T12:30:00Z" type: string verified: example: true 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.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: - REAL - DEMO 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: type: string required: - refresh_token type: object handlers.refreshToken: properties: access_token: example: type: string refresh_token: example: type: string required: - access_token - refresh_token type: object handlers.updateUserReq: properties: 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 /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/chapa/banks: get: consumes: - application/json description: Fetch all supported banks from Chapa produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/domain.ChapaSupportedBanksResponse' summary: Get list of banks tags: - Chapa /api/v1/chapa/payments/callback: post: consumes: - application/json description: Endpoint to receive webhook payloads from Chapa parameters: - description: Webhook Payload (dynamic) in: body name: payload required: true schema: type: object produces: - application/json responses: "200": description: ok schema: type: string summary: Receive Chapa webhook tags: - Chapa /api/v1/chapa/payments/initialize: post: consumes: - application/json description: Initiate a payment through Chapa parameters: - description: Payment initialization request in: body name: payload required: true schema: $ref: '#/definitions/domain.InitPaymentRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/domain.InitPaymentResponse' summary: Initialize a payment transaction tags: - Chapa /api/v1/chapa/payments/verify/{tx_ref}: get: consumes: - application/json description: Verify the transaction status from Chapa using tx_ref parameters: - description: Transaction Reference in: path name: tx_ref required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/domain.VerifyTransactionResponse' summary: Verify a payment transaction tags: - Chapa /api/v1/chapa/transfers: post: consumes: - application/json description: Initiate a transfer request via Chapa parameters: - description: Transfer request body in: body name: payload required: true schema: $ref: '#/definitions/domain.TransferRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/domain.CreateTransferResponse' summary: Create a money transfer tags: - Chapa /api/v1/chapa/transfers/verify/{transfer_ref}: get: consumes: - application/json description: Check the status of a money transfer via reference parameters: - description: Transfer Reference in: path name: transfer_ref required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/domain.VerifyTransferResponse' summary: Verify a transfer tags: - Chapa /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 /bet: get: consumes: - application/json description: Gets all the bets produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/handlers.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/handlers.CreateBetReq' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/handlers.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 /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/handlers.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 /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/handlers.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 /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/handlers.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}/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 /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 /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.updateUserReq' 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 /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}: put: consumes: - application/json description: Update Managers parameters: - description: Update Managers in: body name: Managers required: true schema: $ref: '#/definitions/handlers.updateUserReq' 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: - Managers /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 /prematch/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 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 /prematch/events/{id}: get: consumes: - application/json description: Retrieve an upcoming event by ID parameters: - description: ID in: path name: id required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/domain.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 /prematch/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 /prematch/odds/{event_id}: get: consumes: - application/json description: Retrieve prematch odds for a specific event by event ID parameters: - description: Event ID in: path name: event_id required: true type: string 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 for an event tags: - prematch /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 /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 /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 /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 /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/handlers.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/handlers.CreateTicketReq' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/handlers.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/handlers.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 /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/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/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/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 user by id 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-game /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-game /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"