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.EnumerateKindBoxRequest: properties: amount: 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 agentkindboxparam.GetAllResponse: properties: all_kind_boxes: items: $ref: '#/definitions/entity.KindBox' type: array pagination: $ref: '#/definitions/param.PaginationResponse' type: object agentkindboxparam.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 agentkindboxparam.ReturnKindBoxRequest: properties: serial_number: 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 benefactorkindboxreqparam.KindBoxReqUpdateRequest: properties: 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 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 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/{id}/enumerate: patch: consumes: - application/json parameters: - description: KindBox ID in: path name: id required: true type: integer - description: Request in: body name: Request required: true schema: $ref: '#/definitions/adminkindboxparam.EnumerateKindBoxRequest' produces: - application/json responses: "204": description: No Content "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 enumerate kindbox 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: get: consumes: - application/json description: Retrieves a list of all awaiting return KindBoxes for agent 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_type type: integer - description: Filter by serial number in: query name: filter_serial_number 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: 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 - type - serial_number - return_refer_time_id - return_refer_date - return_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/agentkindboxparam.GetAllResponse' "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 all awaiting return KindBoxes by agent tags: - KindBox /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/agentkindboxparam.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 /agents/kindboxes/return/{id}: patch: consumes: - application/json parameters: - description: KindBox ID in: path name: id required: true type: integer - description: Return KindBox Request Body in: body name: Request required: true schema: $ref: '#/definitions/agentkindboxparam.ReturnKindBoxRequest' produces: - application/json responses: "204": description: No Content "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: Return KindBox from benefactor 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 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/benefactorkindboxreqparam.KindBoxReqUpdateRequest' produces: - application/json responses: "204": description: No Content "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: - AuthBearerBenefactor: [] summary: Update kind box request by 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"