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

1403 lines
44 KiB
JSON

{
"swagger": "2.0",
"info": {
"contact": {}
},
"paths": {
"/address/": {
"post": {
"security": [
{
"AuthBearerBenefactor": []
}
],
"description": "This endpoint allows an authenticated benefactor to add a new address to their account.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Address"
],
"summary": "Add a new address for a benefactor",
"parameters": [
{
"description": "New address details",
"name": "Request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/addressparam.BenefactorAddAddressRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/addressparam.BenefactorAddAddressResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"type": "string"
}
}
}
}
},
"/address/cities": {
"get": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Address"
],
"summary": "Get all cities",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/addressparam.GetAllCitiesResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"type": "string"
}
}
}
}
},
"/address/provinces": {
"get": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Address"
],
"summary": "Get all provinces",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/addressparam.GetAllProvincesResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"type": "string"
}
}
}
}
},
"/admin/kindboxreqs": {
"get": {
"security": [
{
"AuthBearerAdmin": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"KindBoxReq"
],
"summary": "Admin get all kindboxreq",
"parameters": [
{
"type": "integer",
"description": "page_number",
"name": "page_number",
"in": "query"
},
{
"type": "integer",
"description": "page_size",
"name": "page_size",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/adminkindboxreqparam.KindBoxReqGetAllResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"type": "string"
}
}
}
}
},
"/admin/kindboxreqs/accept-kind-box-req/{id}": {
"patch": {
"security": [
{
"AuthBearerAdmin": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"KindBoxReq"
],
"summary": "Accept kind box request by admin",
"parameters": [
{
"type": "integer",
"description": "KindBoxReq ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Accept KindBoxReq Request Body",
"name": "Request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/adminkindboxreqparam.KindBoxReqAcceptRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/adminkindboxreqparam.KindBoxReqAcceptResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"type": "string"
}
}
}
}
},
"/admin/kindboxreqs/assign-sender-agent/{id}": {
"patch": {
"security": [
{
"AuthBearerAdmin": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"KindBoxReq"
],
"summary": "Admin Assign Sender Agent to kindboxreq",
"parameters": [
{
"type": "integer",
"description": "KindBoxReq ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Assign Sender Agent Request Body",
"name": "Request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/adminkindboxreqparam.AssignSenderRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/adminkindboxreqparam.AssignSenderResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"type": "string"
}
}
}
}
},
"/admin/kindboxreqs/deliver-kind-box-req/{id}": {
"patch": {
"security": [
{
"AuthBearerAdmin": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"KindBoxReq"
],
"summary": "Admin deliver a kindboxreq",
"parameters": [
{
"type": "integer",
"description": "KindBoxReq ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/adminkindboxreqparam.DeliverKindBoxReqResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"type": "string"
}
}
}
}
},
"/admin/kindboxreqs/reject-kind-box-req/{id}": {
"patch": {
"security": [
{
"AuthBearerAdmin": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"KindBoxReq"
],
"summary": "Reject a kindboxreq by admin",
"parameters": [
{
"type": "integer",
"description": "KindBoxReq id",
"name": "id",
"in": "path",
"required": true
},
{
"description": "KindBoxReq Reject Request Body",
"name": "Request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/adminkindboxreqparam.KindBoxReqRejectRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/adminkindboxreqparam.KindBoxReqRejectResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"type": "string"
}
}
}
}
},
"/admins/login-by-phone": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Admin"
],
"summary": "Admin login by\tPhoneNumber",
"parameters": [
{
"description": "Admin login request body",
"name": "Request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/adminserviceparam.LoginWithPhoneNumberRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/adminserviceparam.LoginWithPhoneNumberResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"type": "string"
}
}
}
}
},
"/admins/register": {
"post": {
"security": [
{
"AuthBearerAdmin": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Admin"
],
"summary": "Register an admin by super-admin",
"parameters": [
{
"description": "Admin Register Request Body",
"name": "Request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/adminserviceparam.RegisterRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/adminserviceparam.RegisterResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"type": "string"
}
}
}
}
},
"/benefactor/kindboxes/": {
"get": {
"security": [
{
"AuthBearerBenefactor": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"KindBox"
],
"summary": "Get all kind boxes for a benefactor",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/benefactorkindboxparam.KindBoxGetResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"type": "string"
}
}
}
}
},
"/benefactor/kindboxes/{id}": {
"get": {
"security": [
{
"AuthBearerBenefactor": []
}
],
"description": "This endpoint retrieves a specific kind box associated with an authenticated benefactor.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"KindBox"
],
"summary": "Get a specific kind box for a benefactor",
"parameters": [
{
"type": "integer",
"description": "Kind box ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/benefactorkindboxparam.KindBoxGetResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"type": "string"
}
}
}
}
},
"/benefactor/kindboxreqs/": {
"post": {
"security": [
{
"AuthBearerBenefactor": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"KindBoxReq"
],
"summary": "Add a new kind box request for a benefactor",
"parameters": [
{
"description": "New kind box request details",
"name": "Request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/benefactorkindboxreqparam.KindBoxReqAddRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/benefactorkindboxreqparam.KindBoxReqAddResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"type": "string"
}
}
}
}
},
"/benefactor/kindboxreqs/{id}": {
"get": {
"security": [
{
"AuthBearerBenefactor": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"KindBoxReq"
],
"summary": "Get a kind box request for a benefactor",
"parameters": [
{
"type": "integer",
"description": "Kind box request ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/benefactorkindboxreqparam.KindBoxReqGetResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"type": "string"
}
}
}
}
},
"/benefactor/login-register": {
"post": {
"description": "This endpoint is used to authenticate an existing benefactor account or register a new one.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Benefactor"
],
"summary": "Login or register a benefactor",
"parameters": [
{
"description": "Login or register request details",
"name": "Request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/benefactoreparam.LoginOrRegisterRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/benefactoreparam.LoginOrRegisterResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"type": "string"
}
}
}
}
},
"/benefactor/send-otp": {
"post": {
"description": "This endpoint sends an OTP to the benefactor's phone number for verification purposes.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Benefactor"
],
"summary": "Send OTP to benefactor",
"parameters": [
{
"description": "Send OTP request details",
"name": "Request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/benefactoreparam.SendOtpRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/benefactoreparam.SendOtpResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"type": "string"
}
}
}
}
}
},
"definitions": {
"addressparam.BenefactorAddAddressRequest": {
"type": "object",
"properties": {
"address": {
"type": "string",
"example": "tehran"
},
"benefactor_id": {
"type": "integer",
"example": 1
},
"city_id": {
"type": "integer",
"example": 1
},
"lat": {
"type": "number",
"example": 22.23
},
"lon": {
"type": "number",
"example": 22.22
},
"postal_code": {
"type": "string",
"example": "1234567890"
},
"province_id": {
"type": "integer",
"example": 1
}
}
},
"addressparam.BenefactorAddAddressResponse": {
"type": "object",
"properties": {
"address": {
"$ref": "#/definitions/entity.Address"
}
}
},
"addressparam.GetAllCitiesResponse": {
"type": "object",
"properties": {
"cities": {
"type": "array",
"items": {
"$ref": "#/definitions/entity.City"
}
}
}
},
"addressparam.GetAllProvincesResponse": {
"type": "object",
"properties": {
"provinces": {
"type": "array",
"items": {
"$ref": "#/definitions/entity.Province"
}
}
}
},
"adminkindboxreqparam.AssignSenderRequest": {
"type": "object",
"properties": {
"kind_box_req_id": {
"type": "integer"
},
"sender_agent_id": {
"type": "integer"
}
}
},
"adminkindboxreqparam.AssignSenderResponse": {
"type": "object"
},
"adminkindboxreqparam.DeliverKindBoxReqResponse": {
"type": "object"
},
"adminkindboxreqparam.KindBoxReqAcceptRequest": {
"type": "object",
"properties": {
"count_accepted": {
"type": "integer"
},
"id": {
"type": "integer"
}
}
},
"adminkindboxreqparam.KindBoxReqAcceptResponse": {
"type": "object",
"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"
}
}
},
"adminkindboxreqparam.KindBoxReqGetAllResponse": {
"type": "object",
"properties": {
"allKindBoxReq": {
"type": "array",
"items": {
"$ref": "#/definitions/entity.KindBoxReq"
}
},
"pagination": {
"$ref": "#/definitions/param.PaginationResponse"
}
}
},
"adminkindboxreqparam.KindBoxReqRejectRequest": {
"type": "object",
"properties": {
"description": {
"type": "string",
"example": "description"
},
"id": {
"type": "integer",
"example": 1
}
}
},
"adminkindboxreqparam.KindBoxReqRejectResponse": {
"type": "object",
"properties": {
"benefactor_id": {
"type": "integer",
"example": 1
},
"count_requested": {
"type": "integer",
"example": 1
},
"deliver_address_id": {
"type": "integer",
"example": 1
},
"deliver_refer_date": {
"type": "string",
"example": "2025-01-02 15:04:05"
},
"description": {
"type": "string",
"example": "description"
},
"id": {
"type": "integer",
"example": 1
},
"kind_box_type": {
"allOf": [
{
"$ref": "#/definitions/entity.KindBoxType"
}
],
"example": 1
},
"status": {
"allOf": [
{
"$ref": "#/definitions/entity.KindBoxReqStatus"
}
],
"example": 1
}
}
},
"adminserviceparam.LoginWithPhoneNumberRequest": {
"type": "object",
"properties": {
"password": {
"type": "string",
"example": "password123"
},
"phone_number": {
"type": "string",
"example": "09123456789"
}
}
},
"adminserviceparam.LoginWithPhoneNumberResponse": {
"type": "object",
"properties": {
"admin": {
"$ref": "#/definitions/entity.Admin"
},
"tokens": {
"$ref": "#/definitions/adminserviceparam.Tokens"
}
}
},
"adminserviceparam.RegisterRequest": {
"type": "object",
"properties": {
"description": {
"type": "string",
"example": "this is a description"
},
"email": {
"type": "string",
"example": "miaad.66@gmail.com"
},
"first_name": {
"type": "string",
"example": "miaad"
},
"gender": {
"allOf": [
{
"$ref": "#/definitions/entity.Gender"
}
],
"example": 1
},
"last_name": {
"type": "string",
"example": "shahi"
},
"password": {
"type": "string",
"example": "Abc123456"
},
"phone_number": {
"type": "string",
"example": "09183723447"
},
"role": {
"allOf": [
{
"$ref": "#/definitions/entity.AdminRole"
}
],
"example": 2
},
"status": {
"allOf": [
{
"$ref": "#/definitions/entity.AdminStatus"
}
],
"example": 1
}
}
},
"adminserviceparam.RegisterResponse": {
"type": "object",
"properties": {
"admin": {
"$ref": "#/definitions/entity.Admin"
}
}
},
"adminserviceparam.Tokens": {
"type": "object",
"properties": {
"access_token": {
"type": "string"
},
"refresh_token": {
"type": "string"
}
}
},
"benefactoreparam.BenefactroInfo": {
"type": "object",
"properties": {
"first_name": {
"type": "string",
"example": "mehdi"
},
"id": {
"type": "integer",
"example": 1
},
"last_name": {
"type": "string",
"example": "rez"
},
"role": {
"type": "string",
"example": "benefactor"
}
}
},
"benefactoreparam.LoginOrRegisterRequest": {
"type": "object",
"properties": {
"phone_number": {
"type": "string",
"example": "09198829528"
},
"verification_code": {
"type": "string",
"example": "12345"
}
}
},
"benefactoreparam.LoginOrRegisterResponse": {
"type": "object",
"properties": {
"benefactore_info": {
"$ref": "#/definitions/benefactoreparam.BenefactroInfo"
},
"tokens": {
"$ref": "#/definitions/benefactoreparam.Tokens"
}
}
},
"benefactoreparam.SendOtpRequest": {
"type": "object",
"properties": {
"phone_number": {
"type": "string",
"example": "09198829528"
}
}
},
"benefactoreparam.SendOtpResponse": {
"type": "object",
"properties": {
"code": {
"description": "this just use in test .env\n\t\tTODO - remove it after test",
"type": "string"
},
"phone_number": {
"type": "string",
"example": "09198829528"
}
}
},
"benefactoreparam.Tokens": {
"type": "object",
"properties": {
"access_token": {
"type": "string"
},
"refresh_token": {
"type": "string"
}
}
},
"benefactorkindboxparam.KindBoxGetResponse": {
"type": "object",
"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"
}
}
},
"benefactorkindboxreqparam.KindBoxReqAddRequest": {
"type": "object",
"properties": {
"benefactor_id": {
"type": "integer",
"example": 1
},
"count_requested": {
"type": "integer",
"example": 2
},
"deliver_address_id": {
"type": "integer",
"example": 1
},
"deliver_refer_date": {
"type": "string",
"example": "2025-01-02 15:04:05"
},
"type_id": {
"allOf": [
{
"$ref": "#/definitions/entity.KindBoxType"
}
],
"example": 1
}
}
},
"benefactorkindboxreqparam.KindBoxReqAddResponse": {
"type": "object",
"properties": {
"kind_box_req": {
"$ref": "#/definitions/entity.KindBoxReq"
}
}
},
"benefactorkindboxreqparam.KindBoxReqGetResponse": {
"type": "object",
"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"
}
}
},
"entity.Address": {
"type": "object",
"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"
}
}
},
"entity.Admin": {
"type": "object",
"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"
}
}
},
"entity.AdminRole": {
"type": "integer",
"enum": [
1,
2,
3
],
"x-enum-varnames": [
"AdminSuperAdminRole",
"AdminAdminRole",
"AdminAgentRole"
]
},
"entity.AdminStatus": {
"type": "integer",
"enum": [
1,
2
],
"x-enum-varnames": [
"AdminActiveStatus",
"AdminInactiveStatus"
]
},
"entity.City": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"provinceID": {
"type": "integer"
}
}
},
"entity.Gender": {
"type": "integer",
"enum": [
1,
2
],
"x-enum-varnames": [
"MaleGender",
"FemaleGender"
]
},
"entity.KindBoxReq": {
"type": "object",
"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"
}
}
},
"entity.KindBoxReqStatus": {
"type": "integer",
"enum": [
1,
2,
3,
4,
5
],
"x-enum-varnames": [
"KindBoxReqPendingStatus",
"KindBoxReqAcceptedStatus",
"KindBoxReqAssignedSenderAgentStatus",
"KindBoxReqRejectedStatus",
"KindBoxReqDeliveredStatus"
]
},
"entity.KindBoxStatus": {
"type": "integer",
"enum": [
1,
2,
3,
4,
5
],
"x-enum-varnames": [
"KindBoxDeliveredStatus",
"KindBoxReadyToReturnStatus",
"KindBoxAssignedReceiverAgentStatus",
"KindBoxReturnedStatus",
"KindBoxEnumeratedStatus"
]
},
"entity.KindBoxType": {
"type": "integer",
"enum": [
1,
2,
3
],
"x-enum-varnames": [
"KindBoxOnTable",
"KindBoxCylindrical",
"KindBoxStandUp"
]
},
"entity.Province": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
}
},
"param.PaginationResponse": {
"type": "object",
"properties": {
"pageNumber": {
"type": "integer"
},
"pageSize": {
"type": "integer"
},
"total": {
"type": "integer"
}
}
}
},
"securityDefinitions": {
"AuthBearerAdmin": {
"description": "Type the word 'Bearer' followed by a space and Admin JWT token",
"type": "apiKey",
"name": "Authorization",
"in": "header"
},
"AuthBearerBenefactor": {
"description": "Type the word 'Bearer' followed by a space and Benefactor JWT token",
"type": "apiKey",
"name": "Authorization",
"in": "header"
}
}
}