apskel-pos-backend/docs/swagger.yaml
aditya.siregar 67f1dbc850 init project
2024-05-28 14:14:55 +07:00

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"