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