// Package docs Code generated by swaggo/swag. DO NOT EDIT
package docs

import "github.com/swaggo/swag"

const docTemplate = `{
    "schemes": {{ marshal .Schemes }},
    "swagger": "2.0",
    "info": {
        "description": "{{escape .Description}}",
        "title": "{{.Title}}",
        "contact": {},
        "version": "{{.Version}}"
    },
    "host": "{{.Host}}",
    "basePath": "{{.BasePath}}",
    "paths": {
        "/address/": {
            "get": {
                "security": [
                    {
                        "AuthBearerBenefactor": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Address"
                ],
                "summary": "Get all benefactor addresses",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/addressparam.GetAllAddressesResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            },
            "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"
                        }
                    }
                }
            }
        },
        "/address/{id}": {
            "get": {
                "security": [
                    {
                        "AuthBearerBenefactor": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Address"
                ],
                "summary": "Get a benefactor address",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Address ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/addressparam.GetAddressResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "AuthBearerBenefactor": []
                    }
                ],
                "description": "This endpoint is used to delete an address by benefactor",
                "tags": [
                    "Address"
                ],
                "summary": "Delete address by benefactor",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Address ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            },
            "patch": {
                "security": [
                    {
                        "AuthBearerBenefactor": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Address"
                ],
                "summary": "Edit benefactor address",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Address ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Edit address details",
                        "name": "Request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/addressparam.UpdateAddressRequest"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/admin/kindboxes": {
            "get": {
                "security": [
                    {
                        "AuthBearerAdmin": []
                    }
                ],
                "description": "Retrieves a list of all KindBoxes with filtering, sorting, and pagination options",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "KindBox"
                ],
                "summary": "Get all KindBoxes by admin",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Filter by ID",
                        "name": "filter_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by KindBox request ID",
                        "name": "filter_kind_box_req_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by benefactor ID",
                        "name": "filter_benefactor_id",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "on-table",
                            "cylindrical",
                            "stand-up"
                        ],
                        "type": "string",
                        "description": "Filter by KindBox type",
                        "name": "filter_kind_box_type",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by amount",
                        "name": "filter_amount",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by serial number",
                        "name": "filter_serial_number",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "delivered",
                            "ready-to-return",
                            "assigned-receiver-agent",
                            "returned",
                            "enumerated"
                        ],
                        "type": "string",
                        "description": "Filter by status",
                        "name": "filter_status",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "format": "date-time",
                        "description": "Filter by delivered at",
                        "name": "filter_delivered_at",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by return refer time ID",
                        "name": "filter_return_refer_time_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "format": "date",
                        "description": "Filter by return refer date",
                        "name": "filter_return_refer_date",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by return address ID",
                        "name": "filter_return_address_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by receiver agent ID",
                        "name": "filter_receiver_agent_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "format": "date-time",
                        "description": "Filter by returned at",
                        "name": "filter_returned_at",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by sender agent ID",
                        "name": "filter_sender_agent_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "format": "date",
                        "description": "Filter by deliver refer date",
                        "name": "filter_deliver_refer_date",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by deliver address ID",
                        "name": "filter_deliver_address_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page number",
                        "name": "page_number",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page size",
                        "name": "page_size",
                        "in": "query"
                    },
                    {
                        "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"
                        ],
                        "type": "string",
                        "description": "Sort by field",
                        "name": "sort_field",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "asc",
                            "desc"
                        ],
                        "type": "string",
                        "description": "Sort order",
                        "name": "sort_direction",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/adminkindboxparam.KindBoxGetAllResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/admin/kindboxes/assign-receiver-agent/{id}": {
            "patch": {
                "security": [
                    {
                        "AuthBearerAdmin": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "KindBox"
                ],
                "summary": "Admin assign receiver agent to kindbox",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "KindBox ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Assign Receiver Agent Request Body",
                        "name": "Request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/adminkindboxparam.AssignReceiverRequest"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/admin/kindboxes/awaiting-return/{id}": {
            "get": {
                "security": [
                    {
                        "AuthBearerAdmin": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "KindBox"
                ],
                "summary": "Get a kind box that is awaiting return by agent",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "KindBox ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/adminkindboxparam.ReturnAwaitingGetResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "401": {
                        "description": "invalid or expired jwt",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "403": {
                        "description": "user not allowed",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "404": {
                        "description": "record not found",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "schema": {
                            "$ref": "#/definitions/httpmsg.ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "something went wrong",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/admin/kindboxes/{id}": {
            "get": {
                "security": [
                    {
                        "AuthBearerAdmin": []
                    }
                ],
                "description": "This endpoint retrieves a specific kind box by admin",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "KindBox"
                ],
                "summary": "Get a specific kind box by admin",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Kind box ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/adminkindboxparam.KindBoxGetResponse"
                        }
                    },
                    "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"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "AuthBearerAdmin": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "KindBoxReq"
                ],
                "summary": "Add a new kind box request for a benefactor by admin",
                "parameters": [
                    {
                        "description": "New kind box request details",
                        "name": "Request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/adminkindboxreqparam.KindBoxReqAddRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/adminkindboxreqparam.KindBoxReqAddResponse"
                        }
                    },
                    "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/awaiting-delivery": {
            "get": {
                "security": [
                    {
                        "AuthBearerAdmin": []
                    }
                ],
                "description": "Retrieves a list of all awaiting KindBox requests with filtering, sorting, and pagination options",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "KindBoxReq"
                ],
                "summary": "Get all awaiting delivery KindBox requests",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Filter by ID",
                        "name": "filter_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by benefactor ID",
                        "name": "filter_benefactor_id",
                        "in": "query"
                    },
                    {
                        "enum": [
                            1,
                            2,
                            3
                        ],
                        "type": "integer",
                        "format": "enum",
                        "description": "Filter by KindBox type",
                        "name": "filter_kind_box_type",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by count requested",
                        "name": "filter_count_requested",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by count accepted",
                        "name": "filter_count_accepted",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by deliver refer time ID",
                        "name": "filter_deliver_refer_time_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "format": "date",
                        "description": "Filter by deliver refer date",
                        "name": "filter_deliver_refer_date",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by deliver address ID",
                        "name": "filter_deliver_address_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page number",
                        "name": "page_number",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page size",
                        "name": "page_size",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "id",
                            "benefactor_id",
                            "kind_box_type",
                            "count_requested",
                            "count_accepted",
                            "deliver_refer_time_id",
                            "deliver_refer_date",
                            "deliver_address_id"
                        ],
                        "type": "string",
                        "description": "Sort by field",
                        "name": "sort_field",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "asc",
                            "desc"
                        ],
                        "type": "string",
                        "description": "Sort order",
                        "name": "sort_direction",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/adminkindboxreqparam.DeliveryAwaitingGetAllResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/admin/kindboxreqs/awaiting-delivery/{id}": {
            "get": {
                "security": [
                    {
                        "AuthBearerAdmin": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "KindBoxReq"
                ],
                "summary": "Get a kind box reqs that is awaiting delivery by agent",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "KindBoxReq ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/adminkindboxreqparam.DeliveryAwaitingGetResponse"
                        }
                    },
                    "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"
                        }
                    }
                }
            }
        },
        "/admin/kindboxreqs/{id}": {
            "put": {
                "security": [
                    {
                        "AuthBearerAdmin": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "KindBoxReq"
                ],
                "summary": "Update kind box request by admin",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "KindBoxReq ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Update KindBoxReq Request Body",
                        "name": "Request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/adminkindboxreqparam.KindBoxReqUpdateRequest"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/admins/agents": {
            "get": {
                "security": [
                    {
                        "AuthBearerAdmin": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin"
                ],
                "summary": "Get all agents by admin",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/adminserviceparam.GetAllAgentResponse"
                        }
                    },
                    "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/kindboxes/{id}/emptying-requests": {
            "patch": {
                "security": [
                    {
                        "AuthBearerBenefactor": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Benefactor"
                ],
                "summary": "Register a new emptying request for a kind box by benefactor",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "KindBox ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Request body",
                        "name": "Request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/benefactorkindboxparam.KindBoxRegisterEmptyingRequest"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/benefactor/kindboxreqs/": {
            "get": {
                "security": [
                    {
                        "AuthBearerBenefactor": []
                    }
                ],
                "description": "Retrieves a list of all KindBox requests with filtering, sorting, and pagination options",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "KindBoxReq"
                ],
                "summary": "Get all KindBox requests",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Filter by ID",
                        "name": "filter_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by benefactor ID",
                        "name": "filter_benefactor_id",
                        "in": "query"
                    },
                    {
                        "enum": [
                            1,
                            2,
                            3
                        ],
                        "type": "integer",
                        "format": "enum",
                        "description": "Filter by KindBox type",
                        "name": "filter_kind_box_type",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "pending",
                            "accepted",
                            "assigned-sender-agent",
                            "rejected",
                            "delivered"
                        ],
                        "type": "string",
                        "description": "Filter by KindBoxReq Status",
                        "name": "filter_status",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by count requested",
                        "name": "filter_count_requested",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by count accepted",
                        "name": "filter_count_accepted",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by deliver refer time ID",
                        "name": "filter_deliver_refer_time_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "format": "date",
                        "description": "Filter by deliver refer date",
                        "name": "filter_deliver_refer_date",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by deliver address ID",
                        "name": "filter_deliver_address_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page number",
                        "name": "page_number",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Page size",
                        "name": "page_size",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "id",
                            "benefactor_id",
                            "kind_box_type",
                            "count_requested",
                            "count_accepted",
                            "deliver_refer_time_id",
                            "deliver_refer_date",
                            "deliver_address_id"
                        ],
                        "type": "string",
                        "description": "Sort by field",
                        "name": "sort_field",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "asc",
                            "desc"
                        ],
                        "type": "string",
                        "description": "Sort order",
                        "name": "sort_direction",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/benefactorkindboxreqparam.GetAllResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            },
            "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"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "AuthBearerBenefactor": []
                    }
                ],
                "description": "This endpoint is used to delete benefactor's kindboxreq at pending status",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "KindBoxReq"
                ],
                "summary": "delete kindboxreq by benefactor",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Kind box request ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/benefactorkindboxreqparam.KindBoxReqDeleteResponse"
                        }
                    },
                    "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"
                },
                "city_id": {
                    "type": "integer",
                    "example": 1
                },
                "lat": {
                    "type": "number",
                    "example": 22.23
                },
                "lon": {
                    "type": "number",
                    "example": 22.22
                },
                "name": {
                    "type": "string",
                    "example": "home"
                },
                "postal_code": {
                    "type": "string",
                    "example": "1234567890"
                }
            }
        },
        "addressparam.BenefactorAddAddressResponse": {
            "type": "object",
            "properties": {
                "address": {
                    "$ref": "#/definitions/entity.Address"
                }
            }
        },
        "addressparam.GetAddressResponse": {
            "type": "object",
            "properties": {
                "address": {
                    "$ref": "#/definitions/entity.Address"
                }
            }
        },
        "addressparam.GetAllAddressesResponse": {
            "type": "object",
            "properties": {
                "all_addresses": {
                    "type": "array",
                    "items": {
                        "$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"
                    }
                }
            }
        },
        "addressparam.UpdateAddressRequest": {
            "type": "object",
            "properties": {
                "address": {
                    "type": "string",
                    "example": "Zanjan Province, Zanjan, Etemadieh, 6th St, Iran"
                },
                "city_id": {
                    "type": "integer",
                    "example": 163
                },
                "lat": {
                    "type": "number",
                    "example": 123.456
                },
                "lon": {
                    "type": "number",
                    "example": 123.456
                },
                "name": {
                    "type": "string",
                    "example": "Home"
                },
                "postal_code": {
                    "type": "string",
                    "example": "1234567890"
                }
            }
        },
        "adminkindboxparam.AssignReceiverRequest": {
            "type": "object",
            "properties": {
                "receiver_agent_id": {
                    "type": "integer"
                }
            }
        },
        "adminkindboxparam.KindBoxGetAllResponse": {
            "type": "object",
            "properties": {
                "all_kind_box": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.KindBox"
                    }
                },
                "pagination": {
                    "$ref": "#/definitions/param.PaginationResponse"
                }
            }
        },
        "adminkindboxparam.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"
                },
                "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"
                }
            }
        },
        "adminkindboxparam.ReturnAwaitingGetResponse": {
            "type": "object",
            "properties": {
                "amount": {
                    "type": "integer"
                },
                "benefactorID": {
                    "type": "integer"
                },
                "deliverAddressID": {
                    "type": "integer"
                },
                "deliverReferDate": {
                    "type": "string"
                },
                "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"
                }
            }
        },
        "adminkindboxreqparam.AssignSenderRequest": {
            "type": "object",
            "properties": {
                "sender_agent_id": {
                    "type": "integer"
                }
            }
        },
        "adminkindboxreqparam.AssignSenderResponse": {
            "type": "object"
        },
        "adminkindboxreqparam.DeliverKindBoxReqResponse": {
            "type": "object"
        },
        "adminkindboxreqparam.DeliveryAwaitingGetAllResponse": {
            "type": "object",
            "properties": {
                "all_awaiting_kind_box_req": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.KindBoxReq"
                    }
                },
                "pagination": {
                    "$ref": "#/definitions/param.PaginationResponse"
                }
            }
        },
        "adminkindboxreqparam.DeliveryAwaitingGetResponse": {
            "type": "object",
            "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"
                }
            }
        },
        "adminkindboxreqparam.KindBoxReqAcceptRequest": {
            "type": "object",
            "properties": {
                "count_accepted": {
                    "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.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"
                },
                "kind_box_type": {
                    "allOf": [
                        {
                            "$ref": "#/definitions/entity.KindBoxType"
                        }
                    ],
                    "example": 1
                }
            }
        },
        "adminkindboxreqparam.KindBoxReqAddResponse": {
            "type": "object",
            "properties": {
                "kindBoxReq": {
                    "$ref": "#/definitions/entity.KindBoxReq"
                }
            }
        },
        "adminkindboxreqparam.KindBoxReqGetAllResponse": {
            "type": "object",
            "properties": {
                "all_awaiting_kind_box_req": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.KindBoxReq"
                    }
                },
                "pagination": {
                    "$ref": "#/definitions/param.PaginationResponse"
                }
            }
        },
        "adminkindboxreqparam.KindBoxReqRejectRequest": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string",
                    "example": "description"
                }
            }
        },
        "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
                }
            }
        },
        "adminkindboxreqparam.KindBoxReqUpdateRequest": {
            "type": "object",
            "properties": {
                "count_accepted": {
                    "type": "integer",
                    "example": 3
                },
                "count_requested": {
                    "type": "integer",
                    "example": 5
                },
                "deliver_address_id": {
                    "type": "integer",
                    "example": 1
                },
                "deliver_refer_date": {
                    "type": "string",
                    "example": "2025-01-02T15:04:05Z"
                },
                "deliver_refer_time_id": {
                    "type": "integer",
                    "example": 1
                },
                "description": {
                    "type": "string",
                    "example": "description"
                },
                "kind_box_type": {
                    "allOf": [
                        {
                            "$ref": "#/definitions/entity.KindBoxType"
                        }
                    ],
                    "example": 2
                },
                "sender_agent_id": {
                    "type": "integer",
                    "example": 1
                }
            }
        },
        "adminserviceparam.AdminInfo": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string",
                    "example": "This is a description"
                },
                "email": {
                    "type": "string",
                    "example": "example@gmail.com"
                },
                "first_name": {
                    "type": "string",
                    "example": "John"
                },
                "gender": {
                    "allOf": [
                        {
                            "$ref": "#/definitions/entity.Gender"
                        }
                    ],
                    "example": 1
                },
                "id": {
                    "type": "integer",
                    "example": 1
                },
                "last_name": {
                    "type": "string",
                    "example": "Doe"
                },
                "phone_number": {
                    "type": "string",
                    "example": "09123456789"
                },
                "role": {
                    "allOf": [
                        {
                            "$ref": "#/definitions/entity.AdminRole"
                        }
                    ],
                    "example": 2
                },
                "status": {
                    "allOf": [
                        {
                            "$ref": "#/definitions/entity.AdminStatus"
                        }
                    ],
                    "example": 1
                }
            }
        },
        "adminserviceparam.Agent": {
            "type": "object",
            "properties": {
                "first_name": {
                    "type": "string",
                    "example": "John"
                },
                "id": {
                    "type": "integer",
                    "example": 1
                },
                "last_name": {
                    "type": "string",
                    "example": "Doe"
                },
                "phone_number": {
                    "type": "string",
                    "example": "09123456789"
                }
            }
        },
        "adminserviceparam.GetAllAgentResponse": {
            "type": "object",
            "properties": {
                "agents": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/adminserviceparam.Agent"
                    }
                }
            }
        },
        "adminserviceparam.LoginWithPhoneNumberRequest": {
            "type": "object",
            "properties": {
                "password": {
                    "type": "string",
                    "example": "password123"
                },
                "phone_number": {
                    "type": "string",
                    "example": "09123456789"
                }
            }
        },
        "adminserviceparam.LoginWithPhoneNumberResponse": {
            "type": "object",
            "properties": {
                "admin_info": {
                    "$ref": "#/definitions/adminserviceparam.AdminInfo"
                },
                "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"
                },
                "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"
                }
            }
        },
        "benefactorkindboxparam.KindBoxRegisterEmptyingRequest": {
            "type": "object",
            "properties": {
                "return_address_id": {
                    "type": "integer",
                    "example": 1
                },
                "return_refer_date": {
                    "type": "string",
                    "example": "2025-01-02T15:04:05Z"
                },
                "return_refer_time_id": {
                    "type": "integer",
                    "example": 1
                }
            }
        },
        "benefactorkindboxreqparam.GetAllResponse": {
            "type": "object",
            "properties": {
                "all_kind_box_req": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/entity.KindBoxReq"
                    }
                },
                "pagination": {
                    "$ref": "#/definitions/param.PaginationResponse"
                }
            }
        },
        "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-02T15:04:05Z"
                },
                "deliver_refer_time_id": {
                    "type": "integer",
                    "example": 1
                },
                "kind_box_type": {
                    "allOf": [
                        {
                            "$ref": "#/definitions/entity.KindBoxType"
                        }
                    ],
                    "example": 1
                }
            }
        },
        "benefactorkindboxreqparam.KindBoxReqAddResponse": {
            "type": "object",
            "properties": {
                "kind_box_req": {
                    "$ref": "#/definitions/entity.KindBoxReq"
                }
            }
        },
        "benefactorkindboxreqparam.KindBoxReqDeleteResponse": {
            "type": "object"
        },
        "benefactorkindboxreqparam.KindBoxReqGetResponse": {
            "type": "object",
            "properties": {
                "kind_box_req": {
                    "$ref": "#/definitions/entity.KindBoxReq"
                }
            }
        },
        "entity.Address": {
            "type": "object",
            "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"
                }
            }
        },
        "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.KindBox": {
            "type": "object",
            "properties": {
                "amount": {
                    "type": "integer"
                },
                "benefactorID": {
                    "type": "integer"
                },
                "deliverAddressID": {
                    "type": "integer"
                },
                "deliverReferDate": {
                    "type": "string"
                },
                "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"
                }
            }
        },
        "entity.KindBoxReq": {
            "type": "object",
            "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"
                }
            }
        },
        "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"
                }
            }
        },
        "httpmsg.ErrorResponse": {
            "type": "object",
            "properties": {
                "errors": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "message": {
                    "type": "string"
                }
            }
        },
        "param.PaginationResponse": {
            "type": "object",
            "properties": {
                "page_number": {
                    "type": "integer",
                    "example": 1
                },
                "page_size": {
                    "type": "integer",
                    "example": 10
                },
                "total": {
                    "type": "integer",
                    "example": 100
                }
            }
        }
    },
    "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"
        }
    }
}`

// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
	Version:          "",
	Host:             "",
	BasePath:         "",
	Schemes:          []string{},
	Title:            "",
	Description:      "",
	InfoInstanceName: "swagger",
	SwaggerTemplate:  docTemplate,
	LeftDelim:        "{{",
	RightDelim:       "}}",
}

func init() {
	swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}
