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