3102 lines
110 KiB
Go
Raw Normal View History

2023-10-08 15:59:42 +07:00
// 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}}",
"contact": {},
"version": "{{.Version}}"
},
"host": "{{.Host}}",
"basePath": "{{.BasePath}}",
"paths": {
"/api/v1/auth/login": {
"post": {
"description": "Authenticates a user based on the provided credentials and returns a JWT token.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Auth Login API's"
],
"summary": "User login",
"parameters": [
{
"description": "User login credentials",
"name": "bodyParam",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/request.LoginRequest"
}
}
],
"responses": {
"200": {
"description": "Login successful",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/response.LoginResponse"
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
}
}
}
},
"/api/v1/branch": {
"post": {
"description": "Create a new branch based on the provided data.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Branch APIs"
],
"summary": "Create a new branch",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"description": "New branch details",
"name": "req",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/request.Branch"
}
}
],
"responses": {
"200": {
"description": "Branch created successfully",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/response.Branch"
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
}
}
}
},
"/api/v1/branch/list": {
"get": {
"description": "Get a paginated list of branches based on query parameters.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Branch APIs"
],
"summary": "Get a list of branches",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "integer",
"description": "Number of items to retrieve (default 10)",
"name": "Limit",
"in": "query"
},
{
"type": "integer",
"description": "Offset for pagination (default 0)",
"name": "Offset",
"in": "query"
}
],
"responses": {
"200": {
"description": "List of branches",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/response.BranchList"
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
}
}
}
},
"/api/v1/branch/{id}": {
"get": {
"description": "Get details of a branch based on the provided ID.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Branch APIs"
],
"summary": "Get details of a branch by ID",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "integer",
"description": "Branch ID to retrieve",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Branch details",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/response.Branch"
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
}
}
},
"put": {
"description": "Update the details of an existing branch based on the provided ID.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Branch APIs"
],
"summary": "Update an existing branch",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "integer",
"description": "Branch ID to update",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Updated branch details",
"name": "req",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/request.Branch"
}
}
],
"responses": {
"200": {
"description": "Branch updated successfully",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/response.Branch"
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
}
}
},
"delete": {
"description": "Delete a branch based on the provided ID.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Branch APIs"
],
"summary": "Delete a branch by ID",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "integer",
"description": "Branch ID to delete",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Branch deleted successfully",
"schema": {
"$ref": "#/definitions/response.BaseResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
}
}
}
},
"/api/v1/file/upload": {
"post": {
"description": "Upload a file to Alibaba Cloud OSS with the provided details.",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"File Upload API"
],
"summary": "Upload a file to OSS",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "file",
"description": "File to upload (max size: 2MB)",
"name": "file",
"in": "formData",
"required": true
}
],
"responses": {
"200": {
"description": "File uploaded successfully",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/entity.UploadFileResponse"
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
}
}
}
},
"/api/v1/order": {
"post": {
"description": "Create a new order with the provided details.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Create a new order",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"description": "Order details",
"name": "order",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/request.Order"
}
}
],
"responses": {
"200": {
"description": "Order created successfully",
"schema": {
"$ref": "#/definitions/response.BaseResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
}
}
}
},
"/api/v1/order/branch-revenue": {
"get": {
"description": "Retrieve the branch-wise revenue for orders based on the specified parameters.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Get branch-wise revenue for orders",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "integer",
"description": "Branch ID for filtering",
"name": "branch_id",
"in": "query"
},
{
"type": "string",
"description": "Start date for filtering (format: 'YYYY-MM-DD')",
"name": "start_date",
"in": "query"
},
{
"type": "string",
"description": "End date for filtering (format: 'YYYY-MM-DD')",
"name": "end_date",
"in": "query"
}
],
"responses": {
"200": {
"description": "Branch-wise revenue retrieved successfully",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/definitions/response.OrderBranchRevenue"
}
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"500": {
"description": "Internal server error",
"schema": {
"$ref": "#/definitions/response.BaseResponse"
}
}
}
}
},
"/api/v1/order/list": {
"get": {
"description": "Retrieve a list of orders based on the specified parameters.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Get a list of orders",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "integer",
"description": "Number of items to retrieve (default: 10)",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"description": "Number of items to skip (default: 0)",
"name": "offset",
"in": "query"
}
],
"responses": {
"200": {
"description": "List of orders retrieved successfully",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/response.OrderList"
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"500": {
"description": "Internal server error",
"schema": {
"$ref": "#/definitions/response.BaseResponse"
}
}
}
}
},
"/api/v1/order/total-revenue": {
"get": {
"description": "Retrieve the total revenue and number of transactions for orders based on the specified parameters.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Get total revenue and number of transactions for orders",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "string",
"description": "Start date for filtering (format: 'YYYY-MM-DD')",
"name": "start_date",
"in": "query"
},
{
"type": "string",
"description": "End date for filtering (format: 'YYYY-MM-DD')",
"name": "end_date",
"in": "query"
}
],
"responses": {
"200": {
"description": "Total revenue and transactions retrieved successfully",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/response.OrderMonthlyRevenue"
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"500": {
"description": "Internal server error",
"schema": {
"$ref": "#/definitions/response.BaseResponse"
}
}
}
}
},
"/api/v1/order/update-status/{id}": {
"put": {
"description": "Update the status of the specified order with the provided details.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Update the status of an order",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "string",
"description": "Order ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Status details",
"name": "status",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/request.UpdateStatus"
}
}
],
"responses": {
"200": {
"description": "Order status updated successfully",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/response.Order"
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"500": {
"description": "Internal server error",
"schema": {
"$ref": "#/definitions/response.BaseResponse"
}
}
}
}
},
"/api/v1/order/yearly-revenue/{year}": {
"get": {
"description": "Retrieve the yearly revenue for orders based on the specified year.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Get yearly revenue for orders",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "integer",
"description": "Year for filtering",
"name": "year",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Yearly revenue retrieved successfully",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": {
"type": "object",
"additionalProperties": {
"type": "number"
}
}
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"500": {
"description": "Internal server error",
"schema": {
"$ref": "#/definitions/response.BaseResponse"
}
}
}
}
},
"/api/v1/order/{id}": {
"get": {
"description": "Retrieve the details of the specified order by ID.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Get details of an order by ID",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "string",
"description": "Order ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Order details retrieved successfully",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/response.Order"
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"500": {
"description": "Internal server error",
"schema": {
"$ref": "#/definitions/response.BaseResponse"
}
}
}
}
},
"/api/v1/product/": {
"post": {
"description": "Create a new product with the provided details.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Product APIs"
],
"summary": "Create a new product",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"description": "Product details to create",
"name": "req",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/request.Product"
}
}
],
"responses": {
"200": {
"description": "Product created successfully",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/response.Product"
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
}
}
}
},
"/api/v1/product/list": {
"get": {
"description": "Get a paginated list of products based on query parameters.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Product APIs"
],
"summary": "Get a list of products",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "integer",
"description": "Number of items to retrieve (default 10)",
"name": "Limit",
"in": "query"
},
{
"type": "integer",
"description": "Offset for pagination (default 0)",
"name": "Offset",
"in": "query"
}
],
"responses": {
"200": {
"description": "List of products",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/response.ProductList"
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
}
}
}
},
"/api/v1/product/{id}": {
"get": {
"description": "Get details of a product based on the provided ID.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Product APIs"
],
"summary": "Get details of a product by ID",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "integer",
"description": "Product ID to retrieve",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Product details",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/response.Product"
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
}
}
},
"put": {
"description": "Update the details of an existing product based on the provided ID.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Product APIs"
],
"summary": "Update an existing product",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "integer",
"description": "Product ID to update",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Updated product details",
"name": "req",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/request.Product"
}
}
],
"responses": {
"200": {
"description": "Product updated successfully",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/response.Product"
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
}
}
},
"delete": {
"description": "Delete a product based on the provided ID.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Product APIs"
],
"summary": "Delete a product by ID",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "integer",
"description": "Product ID to delete",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Product deleted successfully",
"schema": {
"$ref": "#/definitions/response.BaseResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
}
}
}
},
"/api/v1/studio": {
"post": {
"description": "Create a new studio based on the provided details.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Studio APIs"
],
"summary": "Create a new studio",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"description": "New studio details",
"name": "req",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/request.Studio"
}
}
],
"responses": {
"200": {
"description": "Studio created successfully",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/response.Studio"
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
}
}
}
},
"/api/v1/studio/search": {
"get": {
"description": "Search for studios based on query parameters.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Studio APIs"
],
"summary": "Search for studios",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "string",
"description": "Studio name for search",
"name": "Name",
"in": "query"
},
{
"type": "string",
"description": "Studio status for search",
"name": "Status",
"in": "query"
},
{
"type": "integer",
"description": "Number of items to retrieve (default 10)",
"name": "Limit",
"in": "query"
},
{
"type": "integer",
"description": "Offset for pagination (default 0)",
"name": "Offset",
"in": "query"
}
],
"responses": {
"200": {
"description": "List of studios",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/response.StudioList"
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
}
}
}
},
"/api/v1/studio/{id}": {
"get": {
"description": "Get details of a studio based on the provided ID.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Studio APIs"
],
"summary": "Get details of a studio by ID",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "integer",
"description": "Studio ID to retrieve",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Studio details",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/response.Studio"
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
}
}
},
"put": {
"description": "Update the details of an existing studio based on the provided ID.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Studio APIs"
],
"summary": "Update an existing studio",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "integer",
"description": "Studio ID to update",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Updated studio details",
"name": "req",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/request.Studio"
}
}
],
"responses": {
"200": {
"description": "Studio updated successfully",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/response.Studio"
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
}
}
}
},
"/api/v1/user": {
"post": {
"description": "Create a new user based on the provided data.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"User APIs"
],
"summary": "Create a new user",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"description": "New user details",
"name": "req",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/request.User"
}
}
],
"responses": {
"200": {
"description": "User created successfully",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/response.User"
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
}
}
}
},
"/api/v1/user/list": {
"get": {
"description": "Get a paginated list of users based on query parameters.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"User APIs"
],
"summary": "Get a list of users",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "integer",
"description": "Number of items to retrieve (default 10)",
"name": "Limit",
"in": "query"
},
{
"type": "integer",
"description": "Offset for pagination (default 0)",
"name": "Offset",
"in": "query"
}
],
"responses": {
"200": {
"description": "List of users",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/response.UserList"
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
}
}
}
},
"/api/v1/user/{id}": {
"get": {
"description": "Get details of a user based on the provided ID.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"User APIs"
],
"summary": "Get details of a user by ID",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "integer",
"description": "User ID to retrieve",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "User details",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/response.User"
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
}
}
},
"put": {
"description": "Update the details of an existing user based on the provided ID.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"User APIs"
],
"summary": "Update an existing user",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "integer",
"description": "User ID to update",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Updated user details",
"name": "req",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/request.User"
}
}
],
"responses": {
"200": {
"description": "User updated successfully",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/response.User"
}
}
}
]
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
}
}
},
"delete": {
"description": "Delete a user based on the provided ID.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"User APIs"
],
"summary": "Delete a user by ID",
"parameters": [
{
"type": "string",
"description": "JWT token",
"name": "Authorization",
"in": "header",
"required": true
},
{
"type": "integer",
"description": "User ID to delete",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "User deleted successfully",
"schema": {
"$ref": "#/definitions/response.BaseResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
},
"401": {
"description": "Unauthorized",
"schema": {
"allOf": [
{
"$ref": "#/definitions/response.BaseResponse"
},
{
"type": "object",
"properties": {
"data": {}
}
}
]
}
}
}
}
}
},
"definitions": {
"branch.BranchStatus": {
"type": "string",
"enum": [
"Active",
"Inactive"
],
"x-enum-varnames": [
"Active",
"Inactive"
]
},
"entity.UploadFileResponse": {
"type": "object",
"properties": {
"file_path": {
"type": "string"
},
"file_url": {
"type": "string"
}
}
},
"order.ItemType": {
"type": "string",
"enum": [
"PRODUCT",
"STUDIO"
],
"x-enum-varnames": [
"Product",
"Studio"
]
},
"order.OrderStatus": {
"type": "string",
"enum": [
"NEW",
"PAID",
"CANCEL"
],
"x-enum-varnames": [
"New",
"Paid",
"Cancel"
]
},
"product.ProductStatus": {
"type": "string",
"enum": [
"Active",
"Inactive"
],
"x-enum-varnames": [
"Active",
"Inactive"
]
},
"product.ProductType": {
"type": "string",
"enum": [
"FOOD",
"BEVERAGE"
],
"x-enum-varnames": [
"Food",
"Beverage"
]
},
"request.Branch": {
"type": "object",
"required": [
"location",
"name"
],
"properties": {
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"status": {
"$ref": "#/definitions/branch.BranchStatus"
}
}
},
"request.LoginRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"password": {
"type": "string"
}
}
},
"request.Order": {
"type": "object",
"required": [
"amount",
"branch_id",
"customer_name",
"customer_phone",
"order_items",
"pax",
"payment_method"
],
"properties": {
"amount": {
"type": "number"
},
"branch_id": {
"type": "integer"
},
"customer_name": {
"type": "string"
},
"customer_phone": {
"type": "string"
},
"order_items": {
"type": "array",
"items": {
"$ref": "#/definitions/request.OrderItem"
}
},
"pax": {
"type": "integer"
},
"payment_method": {
"$ref": "#/definitions/transaction.PaymentMethod"
}
}
},
"request.OrderItem": {
"type": "object",
"required": [
"item_id",
"item_type",
"price",
"qty"
],
"properties": {
"item_id": {
"type": "integer"
},
"item_type": {
"$ref": "#/definitions/order.ItemType"
},
"price": {
"type": "number"
},
"qty": {
"type": "integer"
}
}
},
"request.Product": {
"type": "object",
"required": [
"branch_id",
"name",
"price",
"status",
"type"
],
"properties": {
"branch_id": {
"type": "integer"
},
"description": {
"type": "string"
},
"name": {
"type": "string"
},
"price": {
"type": "number"
},
"status": {
"$ref": "#/definitions/product.ProductStatus"
},
"stock_qty": {
"type": "integer"
},
"type": {
"$ref": "#/definitions/product.ProductType"
}
}
},
"request.Studio": {
"type": "object",
"required": [
"branch_id",
"name",
"price"
],
"properties": {
"branch_id": {
"type": "integer"
},
"metadata": {
"type": "object",
"additionalProperties": true
},
"name": {
"type": "string"
},
"price": {
"type": "number"
},
"status": {
"$ref": "#/definitions/studio.StudioStatus"
}
}
},
"request.UpdateStatus": {
"type": "object",
"properties": {
"status": {
"allOf": [
{
"$ref": "#/definitions/order.OrderStatus"
}
],
"example": "NEW,PAID,CANCEL"
}
}
},
"request.User": {
"type": "object",
"required": [
"email",
"name",
"password",
"role_id"
],
"properties": {
"branch_id": {
"type": "integer"
},
"email": {
"type": "string"
},
"name": {
"type": "string"
},
"password": {
"type": "string"
},
"role_id": {
"type": "integer"
}
}
},
"response.BaseResponse": {
"type": "object",
"properties": {
"data": {},
"error_detail": {},
"error_message": {
"type": "string"
},
"message": {
"type": "string"
},
"meta": {
"$ref": "#/definitions/response.PagingMeta"
},
"response_code": {
"type": "string"
},
"success": {
"type": "boolean"
}
}
},
"response.Branch": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"id": {
"type": "integer"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"status": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"response.BranchList": {
"type": "object",
"properties": {
"branches": {
"type": "array",
"items": {
"$ref": "#/definitions/response.Branch"
}
},
"limit": {
"type": "integer"
},
"offset": {
"type": "integer"
},
"total": {
"type": "integer"
}
}
},
"response.LoginResponse": {
"type": "object",
"properties": {
"branch": {
"$ref": "#/definitions/response.Branch"
},
"name": {
"type": "string"
},
"role": {
"$ref": "#/definitions/response.Role"
},
"token": {
"type": "string"
}
}
},
"response.Order": {
"type": "object",
"properties": {
"amount": {
"type": "number"
},
"branch_id": {
"type": "integer"
},
"branch_name": {
"type": "string"
},
"created_at": {
"type": "string"
},
"customer_name": {
"type": "string"
},
"customer_phone": {
"type": "string"
},
"id": {
"type": "integer"
},
"order_items": {
"type": "array",
"items": {
"$ref": "#/definitions/response.OrderItem"
}
},
"pax": {
"type": "integer"
},
"payment_method": {
"$ref": "#/definitions/transaction.PaymentMethod"
},
"status": {
"$ref": "#/definitions/order.OrderStatus"
},
"updated_at": {
"type": "string"
}
}
},
"response.OrderBranchRevenue": {
"type": "object",
"properties": {
"branch_id": {
"type": "string"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"total_amount": {
"type": "number"
},
"total_trans": {
"type": "integer"
}
}
},
"response.OrderItem": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"item_id": {
"type": "integer"
},
"item_name": {
"type": "string"
},
"item_type": {
"$ref": "#/definitions/order.ItemType"
},
"order_item_id": {
"type": "integer"
},
"price": {
"type": "number"
},
"qty": {
"type": "integer"
},
"updated_at": {
"type": "string"
}
}
},
"response.OrderList": {
"type": "object",
"properties": {
"limit": {
"type": "integer"
},
"offset": {
"type": "integer"
},
"orders": {
"type": "array",
"items": {
"$ref": "#/definitions/response.Order"
}
},
"total": {
"type": "integer"
}
}
},
"response.OrderMonthlyRevenue": {
"type": "object",
"properties": {
"total_revenue": {
"type": "number"
},
"total_transaction": {
"type": "integer"
}
}
},
"response.PagingMeta": {
"type": "object",
"properties": {
"limit": {
"type": "integer"
},
"page": {
"type": "integer"
},
"total_data": {
"type": "integer"
}
}
},
"response.Product": {
"type": "object",
"properties": {
"branch_id": {
"type": "integer"
},
"created_at": {
"type": "string"
},
"description": {
"type": "string"
},
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"price": {
"type": "number"
},
"status": {
"$ref": "#/definitions/product.ProductStatus"
},
"stock_qty": {
"type": "integer"
},
"type": {
"$ref": "#/definitions/product.ProductType"
},
"updated_at": {
"type": "string"
}
}
},
"response.ProductList": {
"type": "object",
"properties": {
"limit": {
"type": "integer"
},
"offset": {
"type": "integer"
},
"products": {
"type": "array",
"items": {
"$ref": "#/definitions/response.Product"
}
},
"total": {
"type": "integer"
}
}
},
"response.Role": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"role_name": {
"type": "string"
}
}
},
"response.Studio": {
"type": "object",
"properties": {
"branch_id": {
"type": "integer"
},
"created_at": {
"type": "string"
},
"id": {
"type": "integer"
},
"metadata": {
"type": "object",
"additionalProperties": true
},
"name": {
"type": "string"
},
"price": {
"type": "number"
},
"status": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"response.StudioList": {
"type": "object",
"properties": {
"limit": {
"type": "integer"
},
"offset": {
"type": "integer"
},
"studios": {
"type": "array",
"items": {
"$ref": "#/definitions/response.Studio"
}
},
"total": {
"type": "integer"
}
}
},
"response.User": {
"type": "object",
"properties": {
"branch_id": {
"type": "integer"
},
"branch_name": {
"type": "string"
},
"created_at": {
"type": "string"
},
"email": {
"type": "string"
},
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"role_id": {
"type": "integer"
},
"role_name": {
"type": "string"
},
"status": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"response.UserList": {
"type": "object",
"properties": {
"limit": {
"type": "integer"
},
"offset": {
"type": "integer"
},
"total": {
"type": "integer"
},
"users": {
"type": "array",
"items": {
"$ref": "#/definitions/response.User"
}
}
}
},
"studio.StudioStatus": {
"type": "string",
"enum": [
"Active",
"Inactive"
],
"x-enum-varnames": [
"Active",
"Inactive"
]
},
"transaction.PaymentMethod": {
"type": "string",
"enum": [
"CASH",
"DEBIT",
"TRANSFER",
"QRIS"
],
"x-enum-varnames": [
"Cash",
"Debit",
"Transfer",
"QRIS"
]
}
}
}`
// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
Version: "",
Host: "",
BasePath: "",
Schemes: []string{},
Title: "",
Description: "",
InfoInstanceName: "swagger",
SwaggerTemplate: docTemplate,
LeftDelim: "{{",
RightDelim: "}}",
}
func init() {
swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}