forked from ebhomengo/niki
1
0
Fork 0
niki/docs/swagger.yaml

2232 lines
54 KiB
YAML

definitions:
addressparam.BenefactorAddAddressRequest:
properties:
address:
example: tehran
type: string
city_id:
example: 1
type: integer
lat:
example: 22.23
type: number
lon:
example: 22.22
type: number
name:
example: home
type: string
postal_code:
example: "1234567890"
type: string
type: object
addressparam.BenefactorAddAddressResponse:
properties:
address:
$ref: '#/definitions/entity.Address'
type: object
addressparam.GetAddressResponse:
properties:
address:
$ref: '#/definitions/entity.Address'
type: object
addressparam.GetAllAddressesResponse:
properties:
all_addresses:
items:
$ref: '#/definitions/entity.Address'
type: array
type: object
addressparam.GetAllCitiesResponse:
properties:
cities:
items:
$ref: '#/definitions/entity.City'
type: array
type: object
addressparam.GetAllProvincesResponse:
properties:
provinces:
items:
$ref: '#/definitions/entity.Province'
type: array
type: object
addressparam.UpdateAddressRequest:
properties:
address:
example: Zanjan Province, Zanjan, Etemadieh, 6th St, Iran
type: string
city_id:
example: 163
type: integer
lat:
example: 123.456
type: number
lon:
example: 123.456
type: number
name:
example: Home
type: string
postal_code:
example: "1234567890"
type: string
type: object
adminkindboxparam.AssignReceiverRequest:
properties:
receiver_agent_id:
type: integer
type: object
adminkindboxparam.KindBoxGetAllResponse:
properties:
all_kind_box:
items:
$ref: '#/definitions/entity.KindBox'
type: array
pagination:
$ref: '#/definitions/param.PaginationResponse'
type: object
adminkindboxparam.KindBoxGetResponse:
properties:
amount:
type: integer
benefactorID:
type: integer
deliverAddressID:
type: integer
deliverReferDate:
type: string
deliverReferTimeID:
type: integer
deliveredAt:
type: string
id:
type: integer
kindBoxReqID:
type: integer
kindBoxType:
$ref: '#/definitions/entity.KindBoxType'
receiverAgentID:
type: integer
returnAddressID:
type: integer
returnReferDate:
type: string
returnReferTimeID:
type: integer
returnedAt:
type: string
senderAgentID:
type: integer
serialNumber:
type: string
status:
$ref: '#/definitions/entity.KindBoxStatus'
type: object
adminkindboxreqparam.AssignSenderRequest:
properties:
sender_agent_id:
type: integer
type: object
adminkindboxreqparam.AssignSenderResponse:
type: object
adminkindboxreqparam.DeliverKindBoxReqRequest:
properties:
serial_numbers:
example:
- "1"
- "2"
- "3"
items:
type: string
type: array
type: object
adminkindboxreqparam.DeliverKindBoxReqResponse:
type: object
adminkindboxreqparam.DeliveryAwaitingGetAllResponse:
properties:
all_awaiting_kind_box_req:
items:
$ref: '#/definitions/entity.KindBoxReq'
type: array
pagination:
$ref: '#/definitions/param.PaginationResponse'
type: object
adminkindboxreqparam.DeliveryAwaitingGetResponse:
properties:
benefactorID:
type: integer
countAccepted:
type: integer
countRequested:
type: integer
deliverAddressID:
type: integer
deliverReferDate:
type: string
deliverReferTimeID:
type: integer
deliveredAt:
type: string
description:
type: string
id:
type: integer
kindBoxType:
$ref: '#/definitions/entity.KindBoxType'
senderAgentID:
type: integer
status:
$ref: '#/definitions/entity.KindBoxReqStatus'
type: object
adminkindboxreqparam.GetKindBoxReqResponse:
properties:
benefactorID:
type: integer
countAccepted:
type: integer
countRequested:
type: integer
deliverAddressID:
type: integer
deliverReferDate:
type: string
deliverReferTimeID:
type: integer
deliveredAt:
type: string
description:
type: string
id:
type: integer
kindBoxType:
$ref: '#/definitions/entity.KindBoxType'
senderAgentID:
type: integer
status:
$ref: '#/definitions/entity.KindBoxReqStatus'
type: object
adminkindboxreqparam.KindBoxReqAcceptRequest:
properties:
count_accepted:
type: integer
type: object
adminkindboxreqparam.KindBoxReqAcceptResponse:
properties:
count_accepted:
type: integer
count_requested:
type: integer
deliver_address_id:
type: integer
deliver_refer_date:
type: string
kind_box_req_id:
type: integer
kind_box_req_status:
$ref: '#/definitions/entity.KindBoxReqStatus'
type: object
adminkindboxreqparam.KindBoxReqAddRequest:
properties:
benefactor_id:
example: 1
type: integer
count_requested:
example: 2
type: integer
deliver_address_id:
example: 1
type: integer
deliver_refer_date:
example: "2025-01-02 15:04:05"
type: string
kind_box_type:
allOf:
- $ref: '#/definitions/entity.KindBoxType'
example: 1
type: object
adminkindboxreqparam.KindBoxReqAddResponse:
properties:
kindBoxReq:
$ref: '#/definitions/entity.KindBoxReq'
type: object
adminkindboxreqparam.KindBoxReqGetAllResponse:
properties:
all_awaiting_kind_box_req:
items:
$ref: '#/definitions/entity.KindBoxReq'
type: array
pagination:
$ref: '#/definitions/param.PaginationResponse'
type: object
adminkindboxreqparam.KindBoxReqRejectRequest:
properties:
description:
example: description
type: string
type: object
adminkindboxreqparam.KindBoxReqRejectResponse:
properties:
benefactor_id:
example: 1
type: integer
count_requested:
example: 1
type: integer
deliver_address_id:
example: 1
type: integer
deliver_refer_date:
example: "2025-01-02 15:04:05"
type: string
description:
example: description
type: string
id:
example: 1
type: integer
kind_box_type:
allOf:
- $ref: '#/definitions/entity.KindBoxType'
example: 1
status:
allOf:
- $ref: '#/definitions/entity.KindBoxReqStatus'
example: 1
type: object
adminkindboxreqparam.KindBoxReqUpdateRequest:
properties:
count_accepted:
example: 3
type: integer
count_requested:
example: 5
type: integer
deliver_address_id:
example: 1
type: integer
deliver_refer_date:
example: "2025-01-02T15:04:05Z"
type: string
deliver_refer_time_id:
example: 1
type: integer
description:
example: description
type: string
kind_box_type:
allOf:
- $ref: '#/definitions/entity.KindBoxType'
example: 2
sender_agent_id:
example: 1
type: integer
type: object
adminserviceparam.AdminInfo:
properties:
description:
example: This is a description
type: string
email:
example: example@gmail.com
type: string
first_name:
example: John
type: string
gender:
allOf:
- $ref: '#/definitions/entity.Gender'
example: 1
id:
example: 1
type: integer
last_name:
example: Doe
type: string
phone_number:
example: "09123456789"
type: string
role:
allOf:
- $ref: '#/definitions/entity.AdminRole'
example: 2
status:
allOf:
- $ref: '#/definitions/entity.AdminStatus'
example: 1
type: object
adminserviceparam.Agent:
properties:
first_name:
example: John
type: string
id:
example: 1
type: integer
last_name:
example: Doe
type: string
phone_number:
example: "09123456789"
type: string
type: object
adminserviceparam.GetAllAgentResponse:
properties:
agents:
items:
$ref: '#/definitions/adminserviceparam.Agent'
type: array
type: object
adminserviceparam.LoginWithPhoneNumberRequest:
properties:
password:
example: password123
type: string
phone_number:
example: "09123456789"
type: string
type: object
adminserviceparam.LoginWithPhoneNumberResponse:
properties:
admin_info:
$ref: '#/definitions/adminserviceparam.AdminInfo'
tokens:
$ref: '#/definitions/adminserviceparam.Tokens'
type: object
adminserviceparam.RegisterRequest:
properties:
description:
example: this is a description
type: string
email:
example: miaad.66@gmail.com
type: string
first_name:
example: miaad
type: string
gender:
allOf:
- $ref: '#/definitions/entity.Gender'
example: 1
last_name:
example: shahi
type: string
password:
example: Abc123456
type: string
phone_number:
example: "09183723447"
type: string
role:
allOf:
- $ref: '#/definitions/entity.AdminRole'
example: 2
status:
allOf:
- $ref: '#/definitions/entity.AdminStatus'
example: 1
type: object
adminserviceparam.RegisterResponse:
properties:
admin:
$ref: '#/definitions/entity.Admin'
type: object
adminserviceparam.Tokens:
properties:
access_token:
type: string
refresh_token:
type: string
type: object
benefactoreparam.BenefactroInfo:
properties:
first_name:
example: mehdi
type: string
id:
example: 1
type: integer
last_name:
example: rez
type: string
role:
example: benefactor
type: string
type: object
benefactoreparam.LoginOrRegisterRequest:
properties:
phone_number:
example: "09198829528"
type: string
verification_code:
example: "12345"
type: string
type: object
benefactoreparam.LoginOrRegisterResponse:
properties:
benefactore_info:
$ref: '#/definitions/benefactoreparam.BenefactroInfo'
tokens:
$ref: '#/definitions/benefactoreparam.Tokens'
type: object
benefactoreparam.SendOtpRequest:
properties:
phone_number:
example: "09198829528"
type: string
type: object
benefactoreparam.SendOtpResponse:
properties:
code:
description: "this just use in test .env\n\t\tTODO - remove it after test"
type: string
phone_number:
example: "09198829528"
type: string
type: object
benefactoreparam.Tokens:
properties:
access_token:
type: string
refresh_token:
type: string
type: object
benefactorkindboxparam.KindBoxGetAllResponse:
properties:
all_kind_box:
items:
$ref: '#/definitions/entity.KindBox'
type: array
pagination:
$ref: '#/definitions/param.PaginationResponse'
type: object
benefactorkindboxparam.KindBoxGetResponse:
properties:
amount:
type: integer
benefactorID:
type: integer
deliverAddressID:
type: integer
deliverReferDate:
type: string
deliverReferTimeID:
type: integer
deliveredAt:
type: string
id:
type: integer
kindBoxReqID:
type: integer
kindBoxType:
$ref: '#/definitions/entity.KindBoxType'
receiverAgentID:
type: integer
returnAddressID:
type: integer
returnReferDate:
type: string
returnReferTimeID:
type: integer
returnedAt:
type: string
senderAgentID:
type: integer
serialNumber:
type: string
status:
$ref: '#/definitions/entity.KindBoxStatus'
type: object
benefactorkindboxparam.KindBoxRegisterEmptyingRequest:
properties:
return_address_id:
example: 1
type: integer
return_refer_date:
example: "2025-01-02T15:04:05Z"
type: string
return_refer_time_id:
example: 1
type: integer
type: object
benefactorkindboxreqparam.GetAllResponse:
properties:
all_kind_box_req:
items:
$ref: '#/definitions/entity.KindBoxReq'
type: array
pagination:
$ref: '#/definitions/param.PaginationResponse'
type: object
benefactorkindboxreqparam.KindBoxReqAddRequest:
properties:
benefactor_id:
example: 1
type: integer
count_requested:
example: 2
type: integer
deliver_address_id:
example: 1
type: integer
deliver_refer_date:
example: "2025-01-02T15:04:05Z"
type: string
deliver_refer_time_id:
example: 1
type: integer
kind_box_type:
allOf:
- $ref: '#/definitions/entity.KindBoxType'
example: 1
type: object
benefactorkindboxreqparam.KindBoxReqAddResponse:
properties:
kind_box_req:
$ref: '#/definitions/entity.KindBoxReq'
type: object
benefactorkindboxreqparam.KindBoxReqDeleteResponse:
type: object
benefactorkindboxreqparam.KindBoxReqGetResponse:
properties:
kind_box_req:
$ref: '#/definitions/entity.KindBoxReq'
type: object
entity.Address:
properties:
address:
type: string
benefactorID:
type: integer
cityID:
type: integer
id:
type: integer
lat:
type: number
lon:
type: number
name:
type: string
postalCode:
type: string
provinceID:
type: integer
type: object
entity.Admin:
properties:
description:
type: string
email:
type: string
firstName:
type: string
gender:
$ref: '#/definitions/entity.Gender'
id:
type: integer
lastName:
type: string
password:
type: string
phoneNumber:
type: string
role:
$ref: '#/definitions/entity.AdminRole'
status:
$ref: '#/definitions/entity.AdminStatus'
type: object
entity.AdminRole:
enum:
- 1
- 2
- 3
type: integer
x-enum-varnames:
- AdminSuperAdminRole
- AdminAdminRole
- AdminAgentRole
entity.AdminStatus:
enum:
- 1
- 2
type: integer
x-enum-varnames:
- AdminActiveStatus
- AdminInactiveStatus
entity.City:
properties:
id:
type: integer
name:
type: string
provinceID:
type: integer
type: object
entity.Gender:
enum:
- 1
- 2
type: integer
x-enum-varnames:
- MaleGender
- FemaleGender
entity.KindBox:
properties:
amount:
type: integer
benefactorID:
type: integer
deliverAddressID:
type: integer
deliverReferDate:
type: string
deliverReferTimeID:
type: integer
deliveredAt:
type: string
id:
type: integer
kindBoxReqID:
type: integer
kindBoxType:
$ref: '#/definitions/entity.KindBoxType'
receiverAgentID:
type: integer
returnAddressID:
type: integer
returnReferDate:
type: string
returnReferTimeID:
type: integer
returnedAt:
type: string
senderAgentID:
type: integer
serialNumber:
type: string
status:
$ref: '#/definitions/entity.KindBoxStatus'
type: object
entity.KindBoxReq:
properties:
benefactorID:
type: integer
countAccepted:
type: integer
countRequested:
type: integer
deliverAddressID:
type: integer
deliverReferDate:
type: string
deliverReferTimeID:
type: integer
deliveredAt:
type: string
description:
type: string
id:
type: integer
kindBoxType:
$ref: '#/definitions/entity.KindBoxType'
senderAgentID:
type: integer
status:
$ref: '#/definitions/entity.KindBoxReqStatus'
type: object
entity.KindBoxReqStatus:
enum:
- 1
- 2
- 3
- 4
- 5
type: integer
x-enum-varnames:
- KindBoxReqPendingStatus
- KindBoxReqAcceptedStatus
- KindBoxReqAssignedSenderAgentStatus
- KindBoxReqRejectedStatus
- KindBoxReqDeliveredStatus
entity.KindBoxStatus:
enum:
- 1
- 2
- 3
- 4
- 5
type: integer
x-enum-varnames:
- KindBoxDeliveredStatus
- KindBoxReadyToReturnStatus
- KindBoxAssignedReceiverAgentStatus
- KindBoxReturnedStatus
- KindBoxEnumeratedStatus
entity.KindBoxType:
enum:
- 1
- 2
- 3
type: integer
x-enum-varnames:
- KindBoxOnTable
- KindBoxCylindrical
- KindBoxStandUp
entity.Province:
properties:
id:
type: integer
name:
type: string
type: object
httpmsg.ErrorResponse:
properties:
errors:
additionalProperties:
type: string
type: object
message:
type: string
type: object
kind_box.GetKindBoxResponse:
properties:
amount:
type: integer
benefactorID:
type: integer
deliverAddressID:
type: integer
deliverReferDate:
type: string
deliverReferTimeID:
type: integer
deliveredAt:
type: string
id:
type: integer
kindBoxReqID:
type: integer
kindBoxType:
$ref: '#/definitions/entity.KindBoxType'
receiverAgentID:
type: integer
returnAddressID:
type: integer
returnReferDate:
type: string
returnReferTimeID:
type: integer
returnedAt:
type: string
senderAgentID:
type: integer
serialNumber:
type: string
status:
$ref: '#/definitions/entity.KindBoxStatus'
type: object
param.PaginationResponse:
properties:
page_number:
example: 1
type: integer
page_size:
example: 10
type: integer
total:
example: 100
type: integer
type: object
info:
contact: {}
paths:
/address/:
get:
consumes:
- application/json
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/addressparam.GetAllAddressesResponse'
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerBenefactor: []
summary: Get all benefactor addresses
tags:
- Address
post:
consumes:
- application/json
description: This endpoint allows an authenticated benefactor to add a new address
to their account.
parameters:
- description: New address details
in: body
name: Request
required: true
schema:
$ref: '#/definitions/addressparam.BenefactorAddAddressRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/addressparam.BenefactorAddAddressResponse'
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerBenefactor: []
summary: Add a new address for a benefactor
tags:
- Address
/address/{id}:
delete:
description: This endpoint is used to delete an address by benefactor
parameters:
- description: Address ID
in: path
name: id
required: true
type: integer
responses:
"204":
description: No Content
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerBenefactor: []
summary: Delete address by benefactor
tags:
- Address
get:
consumes:
- application/json
parameters:
- description: Address ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/addressparam.GetAddressResponse'
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerBenefactor: []
summary: Get a benefactor address
tags:
- Address
patch:
consumes:
- application/json
parameters:
- description: Address ID
in: path
name: id
required: true
type: integer
- description: Edit address details
in: body
name: Request
required: true
schema:
$ref: '#/definitions/addressparam.UpdateAddressRequest'
produces:
- application/json
responses:
"204":
description: No Content
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerBenefactor: []
summary: Edit benefactor address
tags:
- Address
/address/cities:
get:
consumes:
- application/json
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/addressparam.GetAllCitiesResponse'
"400":
description: Bad request
schema:
type: string
summary: Get all cities
tags:
- Address
/address/provinces:
get:
consumes:
- application/json
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/addressparam.GetAllProvincesResponse'
"400":
description: Bad request
schema:
type: string
summary: Get all provinces
tags:
- Address
/admin/kindboxes:
get:
consumes:
- application/json
description: Retrieves a list of all KindBoxes with filtering, sorting, and
pagination options
parameters:
- description: Filter by ID
in: query
name: filter_id
type: integer
- description: Filter by KindBox request ID
in: query
name: filter_kind_box_req_id
type: integer
- description: Filter by benefactor ID
in: query
name: filter_benefactor_id
type: integer
- description: Filter by KindBox type
enum:
- on-table
- cylindrical
- stand-up
in: query
name: filter_kind_box_type
type: string
- description: Filter by amount
in: query
name: filter_amount
type: integer
- description: Filter by serial number
in: query
name: filter_serial_number
type: string
- description: Filter by status
enum:
- delivered
- ready-to-return
- assigned-receiver-agent
- returned
- enumerated
in: query
name: filter_status
type: string
- description: Filter by delivered at
format: date-time
in: query
name: filter_delivered_at
type: string
- description: Filter by return refer time ID
in: query
name: filter_return_refer_time_id
type: integer
- description: Filter by return refer date
format: date
in: query
name: filter_return_refer_date
type: string
- description: Filter by return address ID
in: query
name: filter_return_address_id
type: integer
- description: Filter by receiver agent ID
in: query
name: filter_receiver_agent_id
type: integer
- description: Filter by returned at
format: date-time
in: query
name: filter_returned_at
type: string
- description: Filter by sender agent ID
in: query
name: filter_sender_agent_id
type: integer
- description: Filter by deliver refer date
format: date
in: query
name: filter_deliver_refer_date
type: string
- description: Filter by deliver address ID
in: query
name: filter_deliver_address_id
type: integer
- description: Filter by deliver refer time ID
in: query
name: filter_deliver_refer_time_id
type: integer
- description: Page number
in: query
name: page_number
type: integer
- description: Page size
in: query
name: page_size
type: integer
- description: Sort by field
enum:
- id
- kind_box_req_id
- benefactor_id
- kind_box_type
- amount
- serial_number
- status
- delivered_at
- return_refer_time_id
- return_refer_date
- return_address_id
- receiver_agent_id
- returned_at
- sender_agent_id
- deliver_refer_date
- deliver_address_id
- deliver_refer_time_id
in: query
name: sort_field
type: string
- description: Sort order
enum:
- asc
- desc
in: query
name: sort_direction
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/adminkindboxparam.KindBoxGetAllResponse'
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerAdmin: []
summary: Get all KindBoxes by admin
tags:
- KindBox
/admin/kindboxes/{id}:
get:
consumes:
- application/json
description: This endpoint retrieves a specific kind box by admin
parameters:
- description: Kind box ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/adminkindboxparam.KindBoxGetResponse'
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerAdmin: []
summary: Get a specific kind box by admin
tags:
- KindBox
/admin/kindboxes/assign-receiver-agent/{id}:
patch:
consumes:
- application/json
parameters:
- description: KindBox ID
in: path
name: id
required: true
type: integer
- description: Assign Receiver Agent Request Body
in: body
name: Request
required: true
schema:
$ref: '#/definitions/adminkindboxparam.AssignReceiverRequest'
produces:
- application/json
responses:
"204":
description: No Content
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerAdmin: []
summary: Admin assign receiver agent to kindbox
tags:
- KindBox
/admin/kindboxreqs:
post:
consumes:
- application/json
parameters:
- description: New kind box request details
in: body
name: Request
required: true
schema:
$ref: '#/definitions/adminkindboxreqparam.KindBoxReqAddRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/adminkindboxreqparam.KindBoxReqAddResponse'
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerAdmin: []
summary: Add a new kind box request for a benefactor by admin
tags:
- KindBoxReq
/admin/kindboxreqs/{id}:
put:
consumes:
- application/json
parameters:
- description: KindBoxReq ID
in: path
name: id
required: true
type: integer
- description: Update KindBoxReq Request Body
in: body
name: Request
required: true
schema:
$ref: '#/definitions/adminkindboxreqparam.KindBoxReqUpdateRequest'
produces:
- application/json
responses:
"204":
description: No Content
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerAdmin: []
summary: Update kind box request by admin
tags:
- KindBoxReq
/admin/kindboxreqs/accept-kind-box-req/{id}:
patch:
consumes:
- application/json
parameters:
- description: KindBoxReq ID
in: path
name: id
required: true
type: integer
- description: Accept KindBoxReq Request Body
in: body
name: Request
required: true
schema:
$ref: '#/definitions/adminkindboxreqparam.KindBoxReqAcceptRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/adminkindboxreqparam.KindBoxReqAcceptResponse'
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerAdmin: []
summary: Accept kind box request by admin
tags:
- KindBoxReq
/admin/kindboxreqs/assign-sender-agent/{id}:
patch:
consumes:
- application/json
parameters:
- description: KindBoxReq ID
in: path
name: id
required: true
type: integer
- description: Assign Sender Agent Request Body
in: body
name: Request
required: true
schema:
$ref: '#/definitions/adminkindboxreqparam.AssignSenderRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/adminkindboxreqparam.AssignSenderResponse'
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerAdmin: []
summary: Admin Assign Sender Agent to kindboxreq
tags:
- KindBoxReq
/admin/kindboxreqs/awaiting-delivery:
get:
consumes:
- application/json
description: Retrieves a list of all awaiting KindBox requests with filtering,
sorting, and pagination options
parameters:
- description: Filter by ID
in: query
name: filter_id
type: integer
- description: Filter by benefactor ID
in: query
name: filter_benefactor_id
type: integer
- description: Filter by KindBox type
enum:
- 1
- 2
- 3
format: enum
in: query
name: filter_kind_box_type
type: integer
- description: Filter by count requested
in: query
name: filter_count_requested
type: integer
- description: Filter by count accepted
in: query
name: filter_count_accepted
type: integer
- description: Filter by deliver refer time ID
in: query
name: filter_deliver_refer_time_id
type: integer
- description: Filter by deliver refer date
format: date
in: query
name: filter_deliver_refer_date
type: string
- description: Filter by deliver address ID
in: query
name: filter_deliver_address_id
type: integer
- description: Page number
in: query
name: page_number
type: integer
- description: Page size
in: query
name: page_size
type: integer
- description: Sort by field
enum:
- id
- benefactor_id
- kind_box_type
- count_requested
- count_accepted
- deliver_refer_time_id
- deliver_refer_date
- deliver_address_id
in: query
name: sort_field
type: string
- description: Sort order
enum:
- asc
- desc
in: query
name: sort_direction
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/adminkindboxreqparam.DeliveryAwaitingGetAllResponse'
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerAdmin: []
summary: Get all awaiting delivery KindBox requests
tags:
- KindBoxReq
/admin/kindboxreqs/awaiting-delivery/{id}:
get:
consumes:
- application/json
parameters:
- description: KindBoxReq ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/adminkindboxreqparam.DeliveryAwaitingGetResponse'
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerAdmin: []
summary: Get a kind box reqs that is awaiting delivery by agent
tags:
- KindBoxReq
/admin/kindboxreqs/deliver-kind-box-req/{id}:
patch:
consumes:
- application/json
parameters:
- description: KindBoxReq ID
in: path
name: id
required: true
type: integer
- description: KindBoxReq deliver request details
in: body
name: Request
required: true
schema:
$ref: '#/definitions/adminkindboxreqparam.DeliverKindBoxReqRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/adminkindboxreqparam.DeliverKindBoxReqResponse'
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerAdmin: []
summary: Admin deliver a kindboxreq
tags:
- KindBoxReq
/admin/kindboxreqs/reject-kind-box-req/{id}:
patch:
consumes:
- application/json
parameters:
- description: KindBoxReq id
in: path
name: id
required: true
type: integer
- description: KindBoxReq Reject Request Body
in: body
name: Request
required: true
schema:
$ref: '#/definitions/adminkindboxreqparam.KindBoxReqRejectRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/adminkindboxreqparam.KindBoxReqRejectResponse'
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerAdmin: []
summary: Reject a kindboxreq by admin
tags:
- KindBoxReq
/admins/agents:
get:
consumes:
- application/json
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/adminserviceparam.GetAllAgentResponse'
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerAdmin: []
summary: Get all agents by admin
tags:
- Admin
/admins/kindboxreqs:
get:
consumes:
- application/json
description: Retrieves a list of all KindBox requests with filtering, sorting,
and pagination options
parameters:
- description: Filter by ID
in: query
name: filter_id
type: integer
- description: Filter by benefactor ID
in: query
name: filter_benefactor_id
type: integer
- description: Filter by sender agent ID
in: query
name: filter_sender_agent_id
type: integer
- description: Filter by KindBox type
enum:
- 1
- 2
- 3
format: enum
in: query
name: filter_kind_box_type
type: integer
- description: Filter by KindBoxReq status
enum:
- 1
- 2
- 3
- 4
- 5
format: enum
in: query
name: filter_status
type: integer
- description: Filter by count requested
in: query
name: filter_count_requested
type: integer
- description: Filter by count accepted
in: query
name: filter_count_accepted
type: integer
- description: Filter by deliver refer time ID
in: query
name: filter_deliver_refer_time_id
type: integer
- description: Filter by deliver refer date
format: date
in: query
name: filter_deliver_refer_date
type: string
- description: Filter by deliver address ID
in: query
name: filter_deliver_address_id
type: integer
- description: Filter by delivered at
format: date
in: query
name: filter_delivered_at
type: string
- description: Page number
in: query
name: page_number
type: integer
- description: Page size
in: query
name: page_size
type: integer
- description: Sort by field
enum:
- id
- benefactor_id
- sender_agent_id
- kind_box_type
- status
- count_requested
- count_accepted
- deliver_refer_time_id
- deliver_refer_date
- deliver_address_id
- delivered_at
in: query
name: sort_field
type: string
- description: Sort order
enum:
- asc
- desc
in: query
name: sort_direction
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/adminkindboxreqparam.KindBoxReqGetAllResponse'
"400":
description: Bad Request
schema:
type: string
"401":
description: invalid or expired jwt
schema:
type: string
"403":
description: user not allowed
schema:
type: string
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/httpmsg.ErrorResponse'
"500":
description: something went wrong
schema:
type: string
security:
- AuthBearerAdmin: []
summary: Admin get all kindboxreq
tags:
- KindBoxReq
/admins/kindboxreqs/{id}:
get:
consumes:
- application/json
parameters:
- description: KindBoxReq ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/adminkindboxreqparam.GetKindBoxReqResponse'
"400":
description: Bad Request
schema:
type: string
"401":
description: invalid or expired jwt
schema:
type: string
"403":
description: user not allowed
schema:
type: string
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/httpmsg.ErrorResponse'
"500":
description: something went wrong
schema:
type: string
security:
- AuthBearerAdmin: []
summary: Get a specific kind box req by ID
tags:
- KindBoxReq
/admins/login-by-phone:
post:
consumes:
- application/json
parameters:
- description: Admin login request body
in: body
name: Request
required: true
schema:
$ref: '#/definitions/adminserviceparam.LoginWithPhoneNumberRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/adminserviceparam.LoginWithPhoneNumberResponse'
"400":
description: Bad request
schema:
type: string
summary: "Admin login by\tPhoneNumber"
tags:
- Admin
/admins/register:
post:
consumes:
- application/json
parameters:
- description: Admin Register Request Body
in: body
name: Request
required: true
schema:
$ref: '#/definitions/adminserviceparam.RegisterRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/adminserviceparam.RegisterResponse'
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerAdmin: []
summary: Register an admin by super-admin
tags:
- Admin
/agents/kindboxes/{id}:
get:
consumes:
- application/json
parameters:
- description: KindBox ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/kind_box.GetKindBoxResponse'
"400":
description: Bad Request
schema:
type: string
"401":
description: invalid or expired jwt
schema:
type: string
"403":
description: user not allowed
schema:
type: string
"422":
description: Unprocessable Entity
schema:
$ref: '#/definitions/httpmsg.ErrorResponse'
"500":
description: something went wrong
schema:
type: string
security:
- AuthBearerAdmin: []
summary: Get a kind box that is awaiting return by agent
tags:
- KindBox
/benefactor/kindboxes:
get:
consumes:
- application/json
description: Retrieves a list of all KindBoxes with filtering, sorting, and
pagination options
parameters:
- description: Filter by ID
in: query
name: filter_id
type: integer
- description: Filter by KindBox request ID
in: query
name: filter_kind_box_req_id
type: integer
- description: Filter by benefactor ID
in: query
name: filter_benefactor_id
type: integer
- description: Filter by KindBox type
enum:
- on-table
- cylindrical
- stand-up
in: query
name: filter_kind_box_type
type: string
- description: Filter by amount
in: query
name: filter_amount
type: integer
- description: Filter by serial number
in: query
name: filter_serial_number
type: string
- description: Filter by status
enum:
- delivered
- ready-to-return
- assigned-receiver-agent
- returned
- enumerated
in: query
name: filter_status
type: string
- description: Filter by delivered at
format: date-time
in: query
name: filter_delivered_at
type: string
- description: Filter by return refer time ID
in: query
name: filter_return_refer_time_id
type: integer
- description: Filter by return refer date
format: date
in: query
name: filter_return_refer_date
type: string
- description: Filter by return address ID
in: query
name: filter_return_address_id
type: integer
- description: Filter by receiver agent ID
in: query
name: filter_receiver_agent_id
type: integer
- description: Filter by returned at
format: date-time
in: query
name: filter_returned_at
type: string
- description: Filter by sender agent ID
in: query
name: filter_sender_agent_id
type: integer
- description: Filter by deliver refer date
format: date
in: query
name: filter_deliver_refer_date
type: string
- description: Filter by deliver address ID
in: query
name: filter_deliver_address_id
type: integer
- description: Filter by deliver refer time ID
in: query
name: filter_deliver_refer_time_id
type: integer
- description: Page number
in: query
name: page_number
type: integer
- description: Page size
in: query
name: page_size
type: integer
- description: Sort by field
enum:
- id
- kind_box_req_id
- benefactor_id
- kind_box_type
- amount
- serial_number
- status
- delivered_at
- return_refer_time_id
- return_refer_date
- return_address_id
- receiver_agent_id
- returned_at
- sender_agent_id
- deliver_refer_date
- deliver_address_id
- deliver_refer_time_id
in: query
name: sort_field
type: string
- description: Sort order
enum:
- asc
- desc
in: query
name: sort_direction
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/benefactorkindboxparam.KindBoxGetAllResponse'
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerBenefactor: []
summary: Get all KindBoxes by benefactor
tags:
- KindBox
/benefactor/kindboxes/{id}:
get:
consumes:
- application/json
description: This endpoint retrieves a specific kind box associated with an
authenticated benefactor.
parameters:
- description: Kind box ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/benefactorkindboxparam.KindBoxGetResponse'
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerBenefactor: []
summary: Get a specific kind box for a benefactor
tags:
- KindBox
/benefactor/kindboxes/{id}/emptying-requests:
patch:
consumes:
- application/json
parameters:
- description: KindBox ID
in: path
name: id
required: true
type: integer
- description: Request body
in: body
name: Request
required: true
schema:
$ref: '#/definitions/benefactorkindboxparam.KindBoxRegisterEmptyingRequest'
produces:
- application/json
responses:
"204":
description: No content
schema:
type: string
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerBenefactor: []
summary: Register a new emptying request for a kind box by benefactor
tags:
- Benefactor
/benefactor/kindboxreqs/:
get:
consumes:
- application/json
description: Retrieves a list of all KindBox requests with filtering, sorting,
and pagination options
parameters:
- description: Filter by ID
in: query
name: filter_id
type: integer
- description: Filter by benefactor ID
in: query
name: filter_benefactor_id
type: integer
- description: Filter by KindBox type
enum:
- 1
- 2
- 3
format: enum
in: query
name: filter_kind_box_type
type: integer
- description: Filter by KindBoxReq Status
enum:
- pending
- accepted
- assigned-sender-agent
- rejected
- delivered
in: query
name: filter_status
type: string
- description: Filter by count requested
in: query
name: filter_count_requested
type: integer
- description: Filter by count accepted
in: query
name: filter_count_accepted
type: integer
- description: Filter by deliver refer time ID
in: query
name: filter_deliver_refer_time_id
type: integer
- description: Filter by deliver refer date
format: date
in: query
name: filter_deliver_refer_date
type: string
- description: Filter by deliver address ID
in: query
name: filter_deliver_address_id
type: integer
- description: Page number
in: query
name: page_number
type: integer
- description: Page size
in: query
name: page_size
type: integer
- description: Sort by field
enum:
- id
- benefactor_id
- kind_box_type
- count_requested
- count_accepted
- deliver_refer_time_id
- deliver_refer_date
- deliver_address_id
in: query
name: sort_field
type: string
- description: Sort order
enum:
- asc
- desc
in: query
name: sort_direction
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/benefactorkindboxreqparam.GetAllResponse'
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerBenefactor: []
summary: Get all KindBox requests
tags:
- KindBoxReq
post:
consumes:
- application/json
parameters:
- description: New kind box request details
in: body
name: Request
required: true
schema:
$ref: '#/definitions/benefactorkindboxreqparam.KindBoxReqAddRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/benefactorkindboxreqparam.KindBoxReqAddResponse'
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerBenefactor: []
summary: Add a new kind box request for a benefactor
tags:
- KindBoxReq
/benefactor/kindboxreqs/{id}:
delete:
consumes:
- application/json
description: This endpoint is used to delete benefactor's kindboxreq at pending
status
parameters:
- description: Kind box request ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/benefactorkindboxreqparam.KindBoxReqDeleteResponse'
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerBenefactor: []
summary: delete kindboxreq by benefactor
tags:
- KindBoxReq
get:
consumes:
- application/json
parameters:
- description: Kind box request ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/benefactorkindboxreqparam.KindBoxReqGetResponse'
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerBenefactor: []
summary: Get a kind box request for a benefactor
tags:
- KindBoxReq
/benefactor/login-register:
post:
consumes:
- application/json
description: This endpoint is used to authenticate an existing benefactor account
or register a new one.
parameters:
- description: Login or register request details
in: body
name: Request
required: true
schema:
$ref: '#/definitions/benefactoreparam.LoginOrRegisterRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/benefactoreparam.LoginOrRegisterResponse'
"400":
description: Bad request
schema:
type: string
summary: Login or register a benefactor
tags:
- Benefactor
/benefactor/send-otp:
post:
consumes:
- application/json
description: This endpoint sends an OTP to the benefactor's phone number for
verification purposes.
parameters:
- description: Send OTP request details
in: body
name: Request
required: true
schema:
$ref: '#/definitions/benefactoreparam.SendOtpRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/benefactoreparam.SendOtpResponse'
"400":
description: Bad request
schema:
type: string
summary: Send OTP to benefactor
tags:
- Benefactor
securityDefinitions:
AuthBearerAdmin:
description: Type the word 'Bearer' followed by a space and Admin JWT token
in: header
name: Authorization
type: apiKey
AuthBearerBenefactor:
description: Type the word 'Bearer' followed by a space and Benefactor JWT token
in: header
name: Authorization
type: apiKey
swagger: "2.0"