niki/docs/swagger.yaml

917 lines
22 KiB
YAML

definitions:
addressparam.BenefactorAddAddressRequest:
properties:
address:
example: tehran
type: string
benefactor_id:
example: 1
type: integer
city_id:
example: 1
type: integer
lat:
example: 22.23
type: number
lon:
example: 22.22
type: number
postal_code:
example: "1234567890"
type: string
province_id:
example: 1
type: integer
type: object
addressparam.BenefactorAddAddressResponse:
properties:
address:
$ref: '#/definitions/entity.Address'
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
adminkindboxreqparam.AssignSenderRequest:
properties:
kind_box_req_id:
type: integer
sender_agent_id:
type: integer
type: object
adminkindboxreqparam.AssignSenderResponse:
type: object
adminkindboxreqparam.DeliverKindBoxReqResponse:
type: object
adminkindboxreqparam.KindBoxReqAcceptRequest:
properties:
count_accepted:
type: integer
id:
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.KindBoxReqGetAllResponse:
properties:
allKindBoxReq:
items:
$ref: '#/definitions/entity.KindBoxReq'
type: array
pagination:
$ref: '#/definitions/param.PaginationResponse'
type: object
adminkindboxreqparam.KindBoxReqRejectRequest:
properties:
description:
example: description
type: string
id:
example: 1
type: integer
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
adminserviceparam.LoginWithPhoneNumberRequest:
properties:
password:
example: password123
type: string
phone_number:
example: "09123456789"
type: string
type: object
adminserviceparam.LoginWithPhoneNumberResponse:
properties:
admin:
$ref: '#/definitions/entity.Admin'
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.KindBoxGetResponse:
properties:
amount:
type: integer
benefactorID:
type: integer
deliverAddressID:
type: integer
deliverReferDate:
type: string
deliveredAt:
type: string
id:
type: integer
kindBoxReqID:
type: integer
receiverAgentID:
type: integer
returnAddressID:
type: integer
returnReferDate:
type: string
returnedAt:
type: string
senderAgentID:
type: integer
serialNumber:
type: string
status:
$ref: '#/definitions/entity.KindBoxStatus'
type:
$ref: '#/definitions/entity.KindBoxType'
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-02 15:04:05"
type: string
type_id:
allOf:
- $ref: '#/definitions/entity.KindBoxType'
example: 1
type: object
benefactorkindboxreqparam.KindBoxReqAddResponse:
properties:
kind_box_req:
$ref: '#/definitions/entity.KindBoxReq'
type: object
benefactorkindboxreqparam.KindBoxReqGetResponse:
properties:
benefactorID:
type: integer
countAccepted:
type: integer
countRequested:
type: integer
deliverAddressID:
type: integer
deliverReferDate:
type: string
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.Address:
properties:
address:
type: string
benefactorID:
type: integer
cityID:
type: integer
id:
type: integer
isMain:
type: boolean
lat:
type: number
lon:
type: number
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.KindBoxReq:
properties:
benefactorID:
type: integer
countAccepted:
type: integer
countRequested:
type: integer
deliverAddressID:
type: integer
deliverReferDate:
type: string
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
param.PaginationResponse:
properties:
pageNumber:
type: integer
pageSize:
type: integer
total:
type: integer
type: object
info:
contact: {}
paths:
/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/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/kindboxreqs:
get:
consumes:
- application/json
parameters:
- description: page_number
in: query
name: page_number
type: integer
- description: page_size
in: query
name: page_size
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/adminkindboxreqparam.KindBoxReqGetAllResponse'
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerAdmin: []
summary: Admin get all kindboxreq
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/deliver-kind-box-req/{id}:
patch:
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.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/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
/benefactor/kindboxes/:
get:
consumes:
- application/json
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/benefactorkindboxparam.KindBoxGetResponse'
"400":
description: Bad request
schema:
type: string
security:
- AuthBearerBenefactor: []
summary: Get all kind boxes for a 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/kindboxreqs/:
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}:
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"