{
    "swagger": "2.0",
    "info": {
        "description": "This is a comprehensive API for the Tender Management System built with Clean Architecture principles and Domain-Driven Design (DDD) patterns. The API provides endpoints for user management, customer management, company management, and authentication for both web panel administration and mobile application access.",
        "title": "Tender Management API",
        "termsOfService": "https://tender-management.com/terms",
        "contact": {
            "name": "Tender Management API Support",
            "url": "https://tender-management.com/support",
            "email": "api-support@tender-management.com"
        },
        "license": {
            "name": "MIT",
            "url": "https://opensource.org/licenses/MIT"
        },
        "version": "2.0.0"
    },
    "host": "localhost:8082",
    "basePath": "/",
    "paths": {
        "/admin/v1/companies": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Search companies with advanced filtering capabilities including tags, business criteria, and location",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Companies"
                ],
                "summary": "Advanced search for companies",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Search query",
                        "name": "q",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "description": "CPV codes filter",
                        "name": "cpv_codes",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "description": "Categories filter",
                        "name": "categories",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "description": "Keywords filter",
                        "name": "keywords",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "description": "Specializations filter",
                        "name": "specializations",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Industry filter",
                        "name": "industry",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Location filter",
                        "name": "location",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Minimum employees",
                        "name": "min_employees",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Maximum employees",
                        "name": "max_employees",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Minimum revenue",
                        "name": "min_revenue",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Maximum revenue",
                        "name": "max_revenue",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Verification status",
                        "name": "is_verified",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Compliance status",
                        "name": "is_compliant",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "default": 20,
                        "description": "Limit",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "default": 0,
                        "description": "Offset",
                        "name": "offset",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Companies search completed",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/company.CompanyListResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid query parameters",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid query parameters",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Create a new company with comprehensive information including business details, address, tags, and customer assignment. This endpoint is used by the web panel for full company registration.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Companies"
                ],
                "summary": "Create a new company",
                "parameters": [
                    {
                        "description": "Company information including type, business details, address, tags, and optional customer assignment",
                        "name": "company",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/company.CompanyForm"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Company created successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/company.CompanyResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid input data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict - Company with this name/registration/tax ID already exists",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid request data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/companies/{id}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve detailed company information by company ID",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Companies"
                ],
                "summary": "Get company by ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Company ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Company retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/company.CompanyResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid company ID",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not found - Company not found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Update company information including business details, address, tags, and customer assignment",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Companies"
                ],
                "summary": "Update company information",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Company ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Company update information",
                        "name": "company",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/company.CompanyForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Company updated successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/company.CompanyResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid input data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not found - Company not found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict - Company with this name/registration/tax ID already exists",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid request data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Soft delete a company by setting status to inactive",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Companies"
                ],
                "summary": "Delete company",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Company ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Company deleted successfully",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid company ID",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not found - Company not found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/companies/{id}/status": {
            "patch": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Update company account status (active, inactive, suspended, pending)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Companies"
                ],
                "summary": "Update company status",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Company ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "New company status",
                        "name": "status",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/company.StatusForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Company status updated successfully",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid input data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not found - Company not found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid request data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/companies/{id}/verification": {
            "patch": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Update company verification and compliance status",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Companies"
                ],
                "summary": "Update company verification status",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Company ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Verification status update",
                        "name": "verification",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/company.VerificationForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Company verification updated successfully",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid input data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not found - Company not found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid request data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/company-categories": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Search categories with filtering capabilities",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Company-Categories"
                ],
                "summary": "Search categories",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Search query",
                        "name": "q",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Published status filter",
                        "name": "published",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "default": 20,
                        "description": "Limit",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "default": 0,
                        "description": "Offset",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "name",
                            "created_at",
                            "updated_at",
                            "published_at"
                        ],
                        "type": "string",
                        "description": "Sort by field",
                        "name": "sort_by",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "asc",
                            "desc"
                        ],
                        "type": "string",
                        "description": "Sort order",
                        "name": "sort_order",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Categories search completed",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/company_category.CategoryListResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid query parameters",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid query parameters",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Create a new category with name, description, and thumbnail",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Company-Categories"
                ],
                "summary": "Create a new category",
                "parameters": [
                    {
                        "description": "Category information",
                        "name": "category",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/company_category.CategoryForm"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Category created successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/company_category.CategoryResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid input data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict - Category with this name already exists",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid request data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/company-categories/{id}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve detailed category information by category ID",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Company-Categories"
                ],
                "summary": "Get category by ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Category ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Category retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/company_category.CategoryResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid category ID",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not found - Category not found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Update category information including name, description, and thumbnail",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Company-Categories"
                ],
                "summary": "Update category information",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Category ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Category update information",
                        "name": "category",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/company_category.CategoryForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Category updated successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/company_category.CategoryResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid input data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not found - Category not found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict - Category with this name already exists",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid request data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Delete a category permanently",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Company-Categories"
                ],
                "summary": "Delete category",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Category ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Category deleted successfully",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid category ID",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not found - Category not found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/company-categories/{id}/publish": {
            "patch": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Toggle category publish/unpublish status",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Company-Categories"
                ],
                "summary": "Toggle category publish status",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Category ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Category publish status updated successfully",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid input data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not found - Category not found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid request data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/customers": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve a paginated list of customers with advanced filtering options including search, type, status, company, industry, verification status, and compliance status. Supports sorting and pagination.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Customers"
                ],
                "summary": "List customers with filters and pagination",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Search term to filter customers by name, email, or company name",
                        "name": "search",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "individual",
                            "company",
                            "government"
                        ],
                        "type": "string",
                        "description": "Filter by customer type",
                        "name": "type",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "active",
                            "inactive",
                            "suspended",
                            "pending"
                        ],
                        "type": "string",
                        "description": "Filter by customer status",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "format": "uuid",
                        "description": "Filter by company ID",
                        "name": "company_id",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 20,
                        "description": "Number of customers per page (1-100)",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "default": 0,
                        "description": "Number of customers to skip for pagination",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "email",
                            "company_name",
                            "created_at",
                            "updated_at",
                            "status"
                        ],
                        "type": "string",
                        "default": "created_at",
                        "description": "Field to sort by",
                        "name": "sort_by",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "asc",
                            "desc"
                        ],
                        "type": "string",
                        "default": "desc",
                        "description": "Sort order",
                        "name": "sort_order",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Customers retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/customer.CustomerListResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid query parameters",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid query parameters",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Create a new customer with comprehensive information including personal details, company information, address, and business details. This endpoint is used by the web panel for full customer registration.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Customers"
                ],
                "summary": "Create a new customer",
                "parameters": [
                    {
                        "description": "Customer information including type (individual|company|government), personal details, company info, address, and business details",
                        "name": "customer",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/customer.CreateCustomerForm"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Customer created successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/customer.CustomerResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid input data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict - Customer with this email/company already exists",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid request data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/customers/{id}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve detailed customer information by customer ID",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Customers"
                ],
                "summary": "Get customer by ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Customer ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Customer retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/customer.CustomerResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid customer ID",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not found - Customer not found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Update customer information including personal details, company information, address, and business details",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Customers"
                ],
                "summary": "Update customer information",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Customer ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Updated customer information",
                        "name": "customer",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/customer.UpdateCustomerForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Customer updated successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/customer.CustomerResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid input data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not found - Customer not found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict - Customer with this email/company already exists",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid request data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Soft delete a customer by setting status to inactive",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Customers"
                ],
                "summary": "Delete customer",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Customer ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Customer deleted successfully",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid customer ID",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not found - Customer not found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/customers/{id}/status": {
            "patch": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Update customer account status (active, inactive, suspended, pending)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Customers"
                ],
                "summary": "Update customer status",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Customer ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "New customer status",
                        "name": "status",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/customer.UpdateStatusForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Customer status updated successfully",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid input data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not found - Customer not found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid request data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/feedback": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve paginated list of feedback with optional filtering by various criteria. This endpoint is for administrative use and provides comprehensive filtering options.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Feedback"
                ],
                "summary": "List feedback with filters",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Filter by tender ID (MongoDB ObjectID format)",
                        "name": "tender_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by customer ID (MongoDB ObjectID format)",
                        "name": "customer_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by company ID (MongoDB ObjectID format)",
                        "name": "company_id",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "like",
                            "dislike"
                        ],
                        "type": "string",
                        "description": "Filter by feedback type",
                        "name": "feedback_type",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "Filter by creation date from (Unix timestamp in seconds)",
                        "name": "date_from",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "format": "int64",
                        "description": "Filter by creation date to (Unix timestamp in seconds)",
                        "name": "date_to",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "description": "Number of items per page (default: 20, max: 100)",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "Number of items to skip for pagination (default: 0)",
                        "name": "offset",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Feedback list retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/feedback.FeedbackListResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid query parameters",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid filter criteria",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/admin/v1/feedback/{id}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve feedback details by its unique identifier with loaded tender, customer, and company information. This endpoint provides comprehensive feedback data including related entity details.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Feedback"
                ],
                "summary": "Get feedback by ID",
                "parameters": [
                    {
                        "maxLength": 24,
                        "minLength": 24,
                        "type": "string",
                        "description": "Feedback ID (MongoDB ObjectID format)",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "feedback retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/feedback.FeedbackResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid feedback ID format",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Feedback not found",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Mark feedback as deleted without permanently removing it from the database. The feedback will be marked as deleted and hidden from normal queries but can be restored if needed.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Feedback"
                ],
                "summary": "Soft delete feedback",
                "parameters": [
                    {
                        "maxLength": 24,
                        "minLength": 24,
                        "type": "string",
                        "description": "Feedback ID (MongoDB ObjectID format)",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Feedback soft deleted successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid feedback ID format",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "401": {
                        "description": "Unauthorized - User not authenticated",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "403": {
                        "description": "Forbidden - User not authorized to delete this feedback",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not found - Feedback not found",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/admin/v1/flags/{country_code}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve a country flag by its 3-letter country code for admin panel",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin Flags"
                ],
                "summary": "Get flag by country code (Admin)",
                "parameters": [
                    {
                        "type": "string",
                        "description": "3-letter country code (e.g., POL, GRC)",
                        "name": "country_code",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "SVG content",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/admin/v1/health": {
            "get": {
                "description": "Get comprehensive server health status including system information, dependencies status, and performance metrics. This endpoint is used for monitoring and load balancer health checks.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Health"
                ],
                "summary": "Health check endpoint",
                "responses": {
                    "200": {
                        "description": "System is healthy and operational",
                        "schema": {
                            "$ref": "#/definitions/bootstrap.HealthResponse"
                        }
                    },
                    "503": {
                        "description": "System is unhealthy or experiencing issues",
                        "schema": {
                            "$ref": "#/definitions/bootstrap.HealthResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/inquiries": {
            "get": {
                "description": "Search and filter inquiries with pagination support. This endpoint allows administrators to find inquiries based on various criteria including name, company, email, status, and other filters.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Inquiries"
                ],
                "summary": "Search inquiries",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Search term for full name, company name, or email",
                        "name": "q",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by status (pending, reviewed, approved, rejected)",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Limit results (1-100)",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Offset results",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Sort field (full_name, company_name, work_email, status, created_at)",
                        "name": "sort_by",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Sort order (asc, desc)",
                        "name": "sort_order",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Inquiries retrieved successfully with pagination metadata",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/inquiry.InquiryListResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid query parameters",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid parameter values",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/inquiries/{id}": {
            "get": {
                "description": "Retrieve detailed information about a specific inquiry by its unique identifier. This endpoint provides complete inquiry details including contact information, status, and status history.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Inquiries"
                ],
                "summary": "Get inquiry by ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Inquiry ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Inquiry retrieved successfully with complete details",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/inquiry.InquiryResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid inquiry ID format",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not found - Inquiry with specified ID not found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            },
            "delete": {
                "description": "Delete an inquiry permanently from the system. This action cannot be undone and will remove all inquiry data including contact information, status history, and timestamps.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Inquiries"
                ],
                "summary": "Delete inquiry",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Inquiry ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Inquiry deleted successfully",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid inquiry ID format",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not found - Inquiry with specified ID not found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/inquiries/{id}/status": {
            "put": {
                "description": "Update the status of an inquiry with reason and optional description. This endpoint allows administrators to change inquiry status following the defined workflow: pending -\u003e reviewed -\u003e approved/rejected.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Inquiries"
                ],
                "summary": "Update inquiry status",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Inquiry ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Status update information including new status, reason, and optional description",
                        "name": "status",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/inquiry.UpdateInquiryStatusForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Inquiry status updated successfully with updated details",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/inquiry.InquiryResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid inquiry ID format or invalid status transition",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not found - Inquiry with specified ID not found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid data format or validation rules not met",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/profile": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve complete profile information for the currently authenticated user including personal details, role information, permissions, and account status. This endpoint requires valid authentication token.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Authorization"
                ],
                "summary": "Get authenticated user profile",
                "responses": {
                    "200": {
                        "description": "Profile retrieved successfully with user details",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/user.UserResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "401": {
                        "description": "Unauthorized - Invalid or expired authentication token",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not found - User profile not found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Update profile information for the currently authenticated user including personal details, contact information, and preferences. Only the authenticated user can update their own profile.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Authorization"
                ],
                "summary": "Update authenticated user profile",
                "parameters": [
                    {
                        "description": "Profile update data including name, email, phone, and other personal information",
                        "name": "profile",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/user.UpdateUserForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Profile updated successfully with updated user details",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/user.UserResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid request format or missing required fields",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized - Invalid or expired authentication token",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict - Email address already exists for another user",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid input data format",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/profile/change-password": {
            "put": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Change password for the currently authenticated user. Requires current password verification and enforces password policy. This operation invalidates all existing sessions and requires re-authentication.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Authorization"
                ],
                "summary": "Change user password",
                "parameters": [
                    {
                        "description": "Password change data including current password and new password",
                        "name": "password",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/user.ChangePasswordForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Password changed successfully - user must re-authenticate",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid request format or password policy violation",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized - Invalid authentication token or incorrect current password",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid password format or policy requirements not met",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/profile/login": {
            "post": {
                "description": "Authenticate user with username/email and password to obtain access and refresh tokens for web panel administration. This endpoint validates credentials and returns JWT tokens for subsequent API calls.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Authorization"
                ],
                "summary": "Authenticate user login",
                "parameters": [
                    {
                        "description": "User login credentials including username/email and password",
                        "name": "login",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/user.LoginForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Login successful with access and refresh tokens",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/user.AuthResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid request format or missing fields",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized - Invalid credentials or account locked",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid input data format",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "429": {
                        "description": "Too many requests - Rate limit exceeded",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/profile/logout": {
            "delete": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Logout the currently authenticated user by invalidating their access and refresh tokens. This endpoint ensures secure session termination and prevents further use of the user's tokens.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Authorization"
                ],
                "summary": "Logout authenticated user",
                "responses": {
                    "200": {
                        "description": "Logout successful - all tokens invalidated",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized - Invalid or expired authentication token",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error - Failed to invalidate tokens",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/profile/refresh-token": {
            "post": {
                "description": "Generate a new access token using a valid refresh token. This endpoint allows clients to obtain fresh access tokens without re-authentication, maintaining session continuity.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Authorization"
                ],
                "summary": "Refresh access token",
                "parameters": [
                    {
                        "description": "Refresh token for generating new access token",
                        "name": "refresh",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/user.RefreshTokenForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Token refreshed successfully with new access token",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/user.AuthResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid request format",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized - Invalid or expired refresh token",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid token format",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/profile/reset-password": {
            "post": {
                "description": "Send password reset email to user with reset token. This endpoint validates the email address and sends a secure reset link to the user's registered email address.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Authorization"
                ],
                "summary": "Initiate password reset process",
                "parameters": [
                    {
                        "description": "Email address for password reset request",
                        "name": "reset",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/user.ResetPasswordForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Password reset email sent successfully",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid request format or email address",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not found - Email address not registered",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid email format",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "429": {
                        "description": "Too many requests - Rate limit for reset emails exceeded",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error - Failed to send email",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/tender-approvals": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve a paginated list of tender approvals with filtering options",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-TenderApprovals"
                ],
                "summary": "List tender approvals with filters and pagination",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Filter by tender ID",
                        "name": "tender_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by company ID",
                        "name": "company_id",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "description": "Filter by status",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "description": "Filter by submission mode",
                        "name": "submission_mode",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by creation date from (Unix timestamp)",
                        "name": "created_at_from",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by creation date to (Unix timestamp)",
                        "name": "created_at_to",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 20,
                        "description": "Number of approvals per page (1-100)",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "default": 0,
                        "description": "Number of approvals to skip for pagination",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "created_at",
                            "updated_at",
                            "status",
                            "submission_mode"
                        ],
                        "type": "string",
                        "default": "created_at",
                        "description": "Field to sort by",
                        "name": "sort_by",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "asc",
                            "desc"
                        ],
                        "type": "string",
                        "default": "desc",
                        "description": "Sort order",
                        "name": "sort_order",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Tender approvals retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/tender_approval.TenderApprovalListResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid query parameters",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid query parameters",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/tender-approvals/stats": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Get comprehensive tender approval statistics for dashboard",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-TenderApprovals"
                ],
                "summary": "Get tender approval statistics",
                "responses": {
                    "200": {
                        "description": "Tender approval statistics retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/tender_approval.TenderApprovalStatsResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/tender-approvals/status/{status}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve tender approvals filtered by their status (submitted, rejected)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-TenderApprovals"
                ],
                "summary": "Get tender approvals by status",
                "parameters": [
                    {
                        "enum": [
                            "submitted",
                            "rejected"
                        ],
                        "type": "string",
                        "description": "Tender approval status",
                        "name": "status",
                        "in": "path",
                        "required": true
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 20,
                        "description": "Number of approvals per page (1-100)",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "default": 0,
                        "description": "Number of approvals to skip for pagination",
                        "name": "offset",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Tender approvals retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/tender_approval.TenderApprovalResponse"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/definitions/response.Meta"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid tender approval status",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/tender-approvals/submission-mode/{submission_mode}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve tender approvals filtered by their submission mode (self-apply, partnership)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-TenderApprovals"
                ],
                "summary": "Get tender approvals by submission mode",
                "parameters": [
                    {
                        "enum": [
                            "self-apply",
                            "partnership"
                        ],
                        "type": "string",
                        "description": "Tender approval submission mode",
                        "name": "submission_mode",
                        "in": "path",
                        "required": true
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 20,
                        "description": "Number of approvals per page (1-100)",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "default": 0,
                        "description": "Number of approvals to skip for pagination",
                        "name": "offset",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Tender approvals retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/tender_approval.TenderApprovalResponse"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/definitions/response.Meta"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid tender approval submission mode",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/tender-approvals/{id}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve detailed tender approval information by ID",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-TenderApprovals"
                ],
                "summary": "Get tender approval by ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tender Approval ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Tender approval retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/tender_approval.TenderApprovalResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid tender approval ID",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not found - Tender approval not found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/tenders": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve tenders with pagination, filtering, and search capabilities with optional company-based matching",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Tenders"
                ],
                "summary": "List tenders",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Company ID for match percentage calculation and sorting",
                        "name": "company_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Search query for title and description",
                        "name": "q",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by notice type code",
                        "name": "notice_type",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by procurement type code",
                        "name": "procurement_type",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by country codes (comma-separated)",
                        "name": "country_codes",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by status (comma-separated)",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by source (comma-separated)",
                        "name": "source",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Minimum estimated value",
                        "name": "min_estimated_value",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Maximum estimated value",
                        "name": "max_estimated_value",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by currency",
                        "name": "currency",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Deadline from",
                        "name": "deadline_from",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Deadline to",
                        "name": "deadline_to",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Publication date from",
                        "name": "publication_date_from",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Publication date to",
                        "name": "publication_date_to",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by languages (comma-separated)",
                        "name": "languages",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by buyer organization ID",
                        "name": "buyer_organization_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Number of items per page (default: 20, max: 100)",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Number of items to skip (default: 0)",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Sort by field",
                        "name": "sort_by",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Sort order (asc or desc)",
                        "name": "sort_order",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": true
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/tenders/{id}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve a specific tender by its ID",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Tenders"
                ],
                "summary": "Get tender by ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tender ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/tender.TenderResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Update an existing tender with the provided information",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Tenders"
                ],
                "summary": "Update tender",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tender ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Updated tender information",
                        "name": "tender",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/tender.UpdateTenderRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/tender.TenderResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Delete a tender by its ID",
                "tags": [
                    "Admin-Tenders"
                ],
                "summary": "Delete tender",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tender ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/users": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "List users with search and filters (admin only)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Users"
                ],
                "summary": "List users",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Search term",
                        "name": "search",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "User status filter",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "User role filter",
                        "name": "role",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Limit results",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Offset results",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Sort field",
                        "name": "sort_by",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Sort order",
                        "name": "sort_order",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/user.UserListResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Create a new user account with specified role and permissions. This endpoint is restricted to administrators only and allows creation of various user types including admins, managers, and operators with appropriate access levels.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Users"
                ],
                "summary": "Create new user account",
                "parameters": [
                    {
                        "description": "User creation data including username, email, password, role, and profile information",
                        "name": "user",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/user.CreateUserForm"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "User created successfully with assigned role and permissions",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/user.UserResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid input data or missing required fields",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized - Invalid or expired authentication token",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden - Insufficient privileges to create users",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict - Username or email already exists",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid data format or password policy violation",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/users/{id}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Get user details by ID (admin only)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Users"
                ],
                "summary": "Get user by ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "User ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/user.UserResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Update user information (admin only)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Users"
                ],
                "summary": "Update user",
                "parameters": [
                    {
                        "type": "string",
                        "description": "User ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "User update data",
                        "name": "user",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/user.UpdateUserForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/user.UserResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Delete a user (admin only)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Users"
                ],
                "summary": "Delete user",
                "parameters": [
                    {
                        "type": "string",
                        "description": "User ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/users/{id}/status": {
            "put": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Update user account status (admin only)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Users"
                ],
                "summary": "Update user status",
                "parameters": [
                    {
                        "type": "string",
                        "description": "User ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Status update data",
                        "name": "status",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/user.UpdateUserStatusForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/api/v1//{country_code}": {
            "get": {
                "description": "Retrieve only the SVG content of a country flag by its 3-letter country code",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "image/svg+xml"
                ],
                "tags": [
                    "Flags"
                ],
                "summary": "Get flag SVG",
                "parameters": [
                    {
                        "type": "string",
                        "description": "3-letter country code (e.g., POL, GRC)",
                        "name": "country_code",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "SVG content",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/api/v1/companies": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve the profile of the company associated with the authenticated user",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Company"
                ],
                "summary": "Get my company profile",
                "responses": {
                    "200": {
                        "description": "Company retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/company.CompanyProfileResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "401": {
                        "description": "Unauthorized - User not authenticated",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/api/v1/feedback": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve paginated list of feedback with optional filtering by various criteria. This endpoint is for public use and filters results based on the authenticated user's company.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Feedback"
                ],
                "summary": "List feedback with filters",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Filter by tender ID (MongoDB ObjectID format)",
                        "name": "tender_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by customer ID (MongoDB ObjectID format)",
                        "name": "customer_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by company ID (MongoDB ObjectID format)",
                        "name": "company_id",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "like",
                            "dislike"
                        ],
                        "type": "string",
                        "description": "Filter by feedback type",
                        "name": "feedback_type",
                        "in": "query"
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "format": "int64",
                        "description": "Filter by creation date from (Unix timestamp in seconds)",
                        "name": "date_from",
                        "in": "query"
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "format": "int64",
                        "description": "Filter by creation date to (Unix timestamp in seconds)",
                        "name": "date_to",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "description": "Number of items per page (default: 20, max: 100)",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "description": "Number of items to skip for pagination (default: 0)",
                        "name": "offset",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Feedback list retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/feedback.FeedbackListResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid query parameters or missing company association",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid filter criteria",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Toggle between like and dislike for a tender, or create a like if no feedback exists. This endpoint allows users to express their preference for tenders and automatically handles the toggle logic.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Feedback"
                ],
                "summary": "Toggle feedback for a tender",
                "parameters": [
                    {
                        "description": "Feedback toggle request containing tender ID",
                        "name": "feedback",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/feedback.ToggleFeedbackForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Feedback toggled successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/feedback.FeedbackResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid input data or missing customer/company association",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "401": {
                        "description": "Unauthorized - User not authenticated",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid request data format",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/feedback/stats/company": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve comprehensive feedback statistics for the authenticated user's company including total likes, dislikes, and percentage calculations.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Feedback"
                ],
                "summary": "Get company feedback statistics",
                "responses": {
                    "200": {
                        "description": "Company feedback statistics retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/feedback.CompanyFeedbackStatsResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Missing company association",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "401": {
                        "description": "Unauthorized - User not authenticated",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/feedback/tender/{tender_id}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve feedback details by tender ID. This endpoint provides basic feedback information for public users.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Feedback"
                ],
                "summary": "Get feedback by tender ID",
                "parameters": [
                    {
                        "maxLength": 24,
                        "minLength": 24,
                        "type": "string",
                        "description": "Tender ID (MongoDB ObjectID format)",
                        "name": "tender_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Feedback retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/feedback.FeedbackResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid tender ID format",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Feedback not found",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/feedback/{id}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve feedback details by its unique identifier. This endpoint provides basic feedback information for public users.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Feedback"
                ],
                "summary": "Get feedback by ID",
                "parameters": [
                    {
                        "maxLength": 24,
                        "minLength": 24,
                        "type": "string",
                        "description": "Feedback ID (MongoDB ObjectID format)",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Feedback retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/feedback.FeedbackResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid feedback ID format",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Feedback not found",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/inquiries": {
            "post": {
                "description": "Create a new inquiry with contact information for potential business opportunities. This endpoint allows external users to submit inquiries about services or partnerships. Duplicate submissions are prevented based on email and phone number.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Inquiries"
                ],
                "summary": "Create new inquiry",
                "parameters": [
                    {
                        "description": "Inquiry information including contact details and company information",
                        "name": "inquiry",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/inquiry.CreateInquiryForm"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Inquiry created successfully with assigned ID and timestamps",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/inquiry.InquiryResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid input data or missing required fields",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict - Duplicate inquiry already exists with same email or phone number",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid data format or validation rules not met",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/api/v1/profile": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve current customer profile information",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Authorization"
                ],
                "summary": "Get customer profile",
                "responses": {
                    "200": {
                        "description": "Profile retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/customer.CustomerResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "401": {
                        "description": "Unauthorized - Invalid or missing token",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not found - Customer not found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/api/v1/profile/forgot-password": {
            "post": {
                "description": "Send a password reset OTP code to the customer's email address",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Authorization"
                ],
                "summary": "Request password reset",
                "parameters": [
                    {
                        "description": "Email address for password reset",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/customer.RequestResetPasswordForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Password reset code sent successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/customer.RequestResetPasswordResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid input data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid request data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/api/v1/profile/login": {
            "post": {
                "description": "Authenticate customer with username (email) and password. Returns access token, refresh token, and customer information upon successful authentication.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Authorization"
                ],
                "summary": "Customer login",
                "parameters": [
                    {
                        "description": "Login credentials (username/email and password)",
                        "name": "login",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/customer.LoginForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Login successful",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/customer.AuthResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid input data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized - Invalid credentials or inactive account",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid request data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/api/v1/profile/logout": {
            "delete": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Logout customer and invalidate access token",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Authorization"
                ],
                "summary": "Customer logout",
                "responses": {
                    "200": {
                        "description": "Logout successful",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized - Invalid or missing token",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/api/v1/profile/refresh-token": {
            "post": {
                "description": "Refresh access token using a valid refresh token. This allows customers to maintain their session without re-authentication.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Authorization"
                ],
                "summary": "Refresh customer access token",
                "parameters": [
                    {
                        "description": "Refresh token for generating new access token",
                        "name": "refresh",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/customer.RefreshTokenForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Token refreshed successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/customer.AuthResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid refresh token or feature not implemented",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized - Invalid or expired refresh token",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid request data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/api/v1/profile/reset-password": {
            "post": {
                "description": "Reset the customer's password using the reset token",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Authorization"
                ],
                "summary": "Reset password",
                "parameters": [
                    {
                        "description": "Email, reset token, and new password",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/customer.ResetPasswordForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Password reset successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/customer.ResetPasswordResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid input data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized - Invalid or expired reset token",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid request data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/api/v1/profile/verify-otp": {
            "post": {
                "description": "Verify the OTP code received via email and get a reset token",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Authorization"
                ],
                "summary": "Verify OTP code",
                "parameters": [
                    {
                        "description": "Email and OTP code for verification",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/customer.VerifyOTPForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OTP verified successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/customer.VerifyOTPResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid input data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized - Invalid or expired OTP",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid request data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/api/v1/tender-approvals": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve all tender approvals for a specific company with optional filtering",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TenderApprovals"
                ],
                "summary": "Get tender approvals by company ID",
                "parameters": [
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 20,
                        "description": "Number of approvals per page (1-100)",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "default": 0,
                        "description": "Number of approvals to skip for pagination",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "self-apply",
                            "partnership"
                        ],
                        "type": "string",
                        "description": "Filter by submission mode Enums(self-apply, partnership)",
                        "name": "submission_mode",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "submitted",
                            "rejected"
                        ],
                        "type": "string",
                        "description": "Filter by status Enums(submitted, rejected)",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by created date from (Unix timestamp)",
                        "name": "created_from",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Filter by created date to (Unix timestamp)",
                        "name": "created_to",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Tender approvals retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/tender_approval.TenderApprovalWithTenderListResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid company ID",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Create a new tender approval for a company to approve or reject a tender",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TenderApprovals"
                ],
                "summary": "Create a new tender approval",
                "parameters": [
                    {
                        "description": "Tender approval information",
                        "name": "tender_approval",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/tender_approval.CreateTenderApprovalForm"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Tender approval created successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/tender_approval.TenderApprovalResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid input data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "409": {
                        "description": "Conflict - Tender approval already exists for this tender and company",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "422": {
                        "description": "Validation error - Invalid request data",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/api/v1/tender-approvals/stats": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Get comprehensive tender approval statistics for a specific company",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TenderApprovals"
                ],
                "summary": "Get company tender approval statistics",
                "responses": {
                    "200": {
                        "description": "Company tender approval statistics retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/tender_approval.CompanyTenderApprovalStatsResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid company ID",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/api/v1/tender-approvals/tender/{tender_id}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve tender approval information for a specific tender and company combination",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TenderApprovals"
                ],
                "summary": "Get tender approval by tender and company",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tender ID",
                        "name": "tender_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Tender approval retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/tender_approval.TenderApprovalResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid tender ID or company ID",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not found - Tender approval not found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/api/v1/tender-approvals/{id}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve detailed tender approval information by ID",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "TenderApprovals"
                ],
                "summary": "Get tender approval by ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tender Approval ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Tender approval retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/tender_approval.TenderApprovalResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid tender approval ID",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "404": {
                        "description": "Not found - Tender approval not found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/api/v1/tenders": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve active tenders for mobile application users with automatic company-based matching from customer profile",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenders"
                ],
                "summary": "Get public tenders",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Search query for title and description",
                        "name": "q",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by notice type code",
                        "name": "notice_type",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by procurement type code",
                        "name": "procurement_type",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by country codes (comma-separated)",
                        "name": "country_codes",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by status (comma-separated)",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by source (comma-separated)",
                        "name": "source",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Minimum estimated value",
                        "name": "min_estimated_value",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Maximum estimated value",
                        "name": "max_estimated_value",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by currency",
                        "name": "currency",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Deadline from",
                        "name": "deadline_from",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Deadline to",
                        "name": "deadline_to",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Publication date from",
                        "name": "publication_date_from",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Publication date to",
                        "name": "publication_date_to",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by languages (comma-separated)",
                        "name": "languages",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by buyer organization ID",
                        "name": "buyer_organization_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Number of items per page (default: 20, max: 100)",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Number of items to skip (default: 0)",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Sort by field",
                        "name": "sort_by",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Sort order (asc or desc)",
                        "name": "sort_order",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/tender.SearchResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/api/v1/tenders/details/{id}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve detailed information about a specific tender for mobile application users",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenders"
                ],
                "summary": "Get public tender details",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Tender ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": true
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/api/v1/tenders/recommend": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve active tenders for mobile application users with automatic company-based matching from customer profile",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tenders"
                ],
                "summary": "Get public tenders",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Search query for title and description",
                        "name": "q",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by notice type code",
                        "name": "notice_type",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by procurement type code",
                        "name": "procurement_type",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by country codes (comma-separated)",
                        "name": "country_codes",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by status (comma-separated)",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by source (comma-separated)",
                        "name": "source",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Minimum estimated value",
                        "name": "min_estimated_value",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Maximum estimated value",
                        "name": "max_estimated_value",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by currency",
                        "name": "currency",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Deadline from",
                        "name": "deadline_from",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Deadline to",
                        "name": "deadline_to",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Publication date from",
                        "name": "publication_date_from",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Publication date to",
                        "name": "publication_date_to",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "Filter by languages (comma-separated)",
                        "name": "languages",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by buyer organization ID",
                        "name": "buyer_organization_id",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Number of items per page (default: 20, max: 100)",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Number of items to skip (default: 0)",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Sort by field",
                        "name": "sort_by",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Sort order (asc or desc)",
                        "name": "sort_order",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/tender.SearchResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "bootstrap.HealthResponse": {
            "type": "object",
            "properties": {
                "service": {
                    "description": "Service name",
                    "type": "string",
                    "example": "tender-management-api"
                },
                "status": {
                    "description": "Current health status",
                    "type": "string",
                    "example": "healthy"
                },
                "time": {
                    "description": "Current Unix timestamp",
                    "type": "integer",
                    "example": 1699123456
                },
                "uptime": {
                    "description": "Service uptime duration",
                    "type": "string",
                    "example": "24h30m15s"
                },
                "version": {
                    "description": "API version",
                    "type": "string",
                    "example": "2.0.0"
                }
            }
        },
        "company.Address": {
            "type": "object",
            "properties": {
                "city": {
                    "type": "string"
                },
                "country": {
                    "type": "string"
                },
                "postal_code": {
                    "type": "string"
                },
                "state": {
                    "type": "string"
                },
                "street": {
                    "type": "string"
                }
            }
        },
        "company.AddressForm": {
            "type": "object",
            "properties": {
                "city": {
                    "type": "string",
                    "example": "New York"
                },
                "country": {
                    "type": "string",
                    "example": "US"
                },
                "postal_code": {
                    "type": "string",
                    "example": "10001"
                },
                "state": {
                    "type": "string",
                    "example": "NY"
                },
                "street": {
                    "type": "string",
                    "example": "123 Main St"
                }
            }
        },
        "company.CategoryResponse": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "company.CompanyForm": {
            "type": "object",
            "properties": {
                "address": {
                    "description": "Address information",
                    "allOf": [
                        {
                            "$ref": "#/definitions/company.AddressForm"
                        }
                    ]
                },
                "annual_revenue": {
                    "type": "number",
                    "example": 1000000
                },
                "currency": {
                    "type": "string",
                    "example": "USD"
                },
                "description": {
                    "type": "string",
                    "example": "Opplens is a technology company"
                },
                "email": {
                    "type": "string",
                    "example": "info@opplens.com"
                },
                "employee_count": {
                    "description": "Business information",
                    "type": "integer",
                    "example": 100
                },
                "founded_year": {
                    "type": "integer",
                    "example": 2020
                },
                "industry": {
                    "type": "string",
                    "example": "Technology"
                },
                "language": {
                    "description": "Settings",
                    "type": "string",
                    "example": "en"
                },
                "name": {
                    "type": "string",
                    "example": "Opplens"
                },
                "phone": {
                    "description": "Contact information",
                    "type": "string",
                    "example": "+1234567890"
                },
                "registration_number": {
                    "type": "string",
                    "example": "1234567890"
                },
                "tags": {
                    "description": "Tags for categorization and search",
                    "allOf": [
                        {
                            "$ref": "#/definitions/company.CompanyTagsForm"
                        }
                    ]
                },
                "tax_id": {
                    "type": "string",
                    "example": "1234567890"
                },
                "timezone": {
                    "type": "string",
                    "example": "UTC"
                },
                "type": {
                    "type": "string",
                    "example": "private"
                },
                "website": {
                    "type": "string",
                    "example": "https://opplens.com"
                }
            }
        },
        "company.CompanyListResponse": {
            "type": "object",
            "properties": {
                "companies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/company.CompanyResponse"
                    }
                }
            }
        },
        "company.CompanyProfileResponse": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "integer"
                },
                "founded_year": {
                    "type": "integer"
                },
                "id": {
                    "type": "string"
                },
                "industry": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "registration_number": {
                    "type": "string"
                }
            }
        },
        "company.CompanyResponse": {
            "type": "object",
            "properties": {
                "address": {
                    "$ref": "#/definitions/company.Address"
                },
                "annual_revenue": {
                    "type": "number"
                },
                "compliance_notes": {
                    "type": "string"
                },
                "created_at": {
                    "type": "integer"
                },
                "currency": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "employee_count": {
                    "type": "integer"
                },
                "founded_year": {
                    "type": "integer"
                },
                "id": {
                    "type": "string"
                },
                "industry": {
                    "type": "string"
                },
                "is_compliant": {
                    "type": "boolean"
                },
                "is_verified": {
                    "type": "boolean"
                },
                "language": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "phone": {
                    "type": "string"
                },
                "registration_number": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "tags": {
                    "$ref": "#/definitions/company.CompanyTagsResponse"
                },
                "tax_id": {
                    "type": "string"
                },
                "timezone": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "integer"
                },
                "website": {
                    "type": "string"
                }
            }
        },
        "company.CompanyTagsForm": {
            "type": "object",
            "properties": {
                "categories": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "Technology"
                    ]
                },
                "certifications": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "Opplens"
                    ]
                },
                "cpv_codes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "1234567890"
                    ]
                },
                "keywords": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "Opplens"
                    ]
                },
                "specializations": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "Opplens"
                    ]
                }
            }
        },
        "company.CompanyTagsResponse": {
            "type": "object",
            "properties": {
                "categories": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/company.CategoryResponse"
                    }
                },
                "certifications": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "cpv_codes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "keywords": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "specializations": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "company.StatusForm": {
            "type": "object",
            "properties": {
                "reason": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                }
            }
        },
        "company.VerificationForm": {
            "type": "object",
            "properties": {
                "compliance_notes": {
                    "type": "string"
                },
                "is_compliant": {
                    "type": "boolean"
                },
                "is_verified": {
                    "type": "boolean"
                }
            }
        },
        "company_category.CategoryForm": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string",
                    "example": "Technology related companies"
                },
                "name": {
                    "type": "string",
                    "example": "Technology"
                },
                "thumbnail": {
                    "type": "string",
                    "example": "https://example.com/thumbnail.jpg"
                }
            }
        },
        "company_category.CategoryListResponse": {
            "type": "object",
            "properties": {
                "categories": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/company_category.CategoryResponse"
                    }
                }
            }
        },
        "company_category.CategoryResponse": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "integer"
                },
                "description": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "published": {
                    "type": "boolean"
                },
                "published_at": {
                    "type": "integer"
                },
                "thumbnail": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "integer"
                }
            }
        },
        "customer.AuthResponse": {
            "type": "object",
            "properties": {
                "access_token": {
                    "type": "string"
                },
                "customer": {
                    "$ref": "#/definitions/customer.CustomerResponse"
                },
                "expires_at": {
                    "type": "integer"
                },
                "refresh_token": {
                    "type": "string"
                }
            }
        },
        "customer.CompanySummary": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "customer.CreateCustomerForm": {
            "type": "object",
            "properties": {
                "company_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "email": {
                    "type": "string",
                    "example": "user@opplens.com"
                },
                "full_name": {
                    "type": "string",
                    "example": "User"
                },
                "password": {
                    "type": "string",
                    "example": "User!1234"
                },
                "phone": {
                    "type": "string",
                    "example": "+1234567890"
                },
                "type": {
                    "type": "string",
                    "example": "individual"
                },
                "username": {
                    "type": "string",
                    "example": "user"
                }
            }
        },
        "customer.CustomerListResponse": {
            "type": "object",
            "properties": {
                "customers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/customer.CustomerResponse"
                    }
                }
            }
        },
        "customer.CustomerResponse": {
            "type": "object",
            "properties": {
                "companies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/customer.CompanySummary"
                    }
                },
                "company_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "created_at": {
                    "type": "integer"
                },
                "email": {
                    "type": "string"
                },
                "full_name": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "last_login_at": {
                    "type": "integer"
                },
                "password": {
                    "type": "string"
                },
                "phone": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "integer"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "customer.LoginForm": {
            "type": "object",
            "properties": {
                "password": {
                    "type": "string",
                    "example": "App!1234"
                },
                "username": {
                    "type": "string",
                    "example": "app"
                }
            }
        },
        "customer.RefreshTokenForm": {
            "type": "object",
            "properties": {
                "refresh_token": {
                    "type": "string"
                }
            }
        },
        "customer.RequestResetPasswordForm": {
            "type": "object",
            "properties": {
                "email": {
                    "type": "string",
                    "example": "app@opplens.com"
                }
            }
        },
        "customer.RequestResetPasswordResponse": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string",
                    "example": "Password reset code sent to your email"
                },
                "success": {
                    "type": "boolean",
                    "example": true
                }
            }
        },
        "customer.ResetPasswordForm": {
            "type": "object",
            "properties": {
                "new_password": {
                    "type": "string",
                    "example": "NewPass!123"
                },
                "token": {
                    "type": "string",
                    "example": "reset_token_here"
                }
            }
        },
        "customer.ResetPasswordResponse": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string",
                    "example": "Password reset successfully"
                },
                "success": {
                    "type": "boolean",
                    "example": true
                }
            }
        },
        "customer.UpdateCustomerForm": {
            "type": "object",
            "properties": {
                "company_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "email": {
                    "type": "string",
                    "example": "user@opplens.com"
                },
                "full_name": {
                    "type": "string",
                    "example": "User"
                },
                "password": {
                    "type": "string",
                    "example": "User!1234"
                },
                "phone": {
                    "type": "string",
                    "example": "+1234567890"
                },
                "type": {
                    "type": "string",
                    "example": "individual"
                },
                "username": {
                    "type": "string",
                    "example": "user"
                }
            }
        },
        "customer.UpdateStatusForm": {
            "type": "object",
            "properties": {
                "reason": {
                    "type": "string",
                    "example": "Customer is active"
                },
                "status": {
                    "type": "string",
                    "example": "active"
                }
            }
        },
        "customer.VerifyOTPForm": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "string",
                    "example": "123456"
                },
                "email": {
                    "type": "string",
                    "example": "app@opplens.com"
                }
            }
        },
        "customer.VerifyOTPResponse": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string",
                    "example": "OTP verified successfully"
                },
                "success": {
                    "type": "boolean",
                    "example": true
                },
                "token": {
                    "type": "string",
                    "example": "reset_token_here"
                }
            }
        },
        "feedback.CompanyFeedbackStatsResponse": {
            "type": "object",
            "properties": {
                "company_id": {
                    "type": "string"
                },
                "last_updated": {
                    "description": "Unix timestamp",
                    "type": "integer"
                },
                "total_dislikes": {
                    "type": "integer"
                },
                "total_feedback": {
                    "type": "integer"
                },
                "total_likes": {
                    "type": "integer"
                }
            }
        },
        "feedback.FeedbackListResponse": {
            "type": "object",
            "properties": {
                "feedback": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/feedback.FeedbackResponse"
                    }
                },
                "meta": {
                    "$ref": "#/definitions/response.Meta"
                }
            }
        },
        "feedback.FeedbackResponse": {
            "type": "object",
            "properties": {
                "company_id": {
                    "type": "string"
                },
                "created_at": {
                    "type": "integer"
                },
                "customer_id": {
                    "type": "string"
                },
                "feedback_type": {
                    "$ref": "#/definitions/feedback.FeedbackType"
                },
                "id": {
                    "type": "string"
                },
                "tender": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "integer"
                }
            }
        },
        "feedback.FeedbackType": {
            "type": "string",
            "enum": [
                "like",
                "dislike"
            ],
            "x-enum-varnames": [
                "FeedbackTypeLike",
                "FeedbackTypeDislike"
            ]
        },
        "feedback.ToggleFeedbackForm": {
            "type": "object",
            "required": [
                "feedback_type",
                "tender_id"
            ],
            "properties": {
                "feedback_type": {
                    "enum": [
                        "like",
                        "dislike"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/feedback.FeedbackType"
                        }
                    ]
                },
                "tender_id": {
                    "type": "string"
                }
            }
        },
        "inquiry.CreateInquiryForm": {
            "type": "object",
            "properties": {
                "company_name": {
                    "description": "Company name",
                    "type": "string",
                    "example": "Opplens"
                },
                "full_name": {
                    "description": "Full name of the inquirer",
                    "type": "string",
                    "example": "John Doe"
                },
                "phone_number": {
                    "description": "Phone number",
                    "type": "string",
                    "example": "+1234567890"
                },
                "work_email": {
                    "description": "Work email address",
                    "type": "string",
                    "example": "info@opplens.com"
                }
            }
        },
        "inquiry.InquiryListResponse": {
            "type": "object",
            "properties": {
                "inquiries": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/inquiry.InquiryResponse"
                    }
                },
                "meta": {
                    "$ref": "#/definitions/response.Meta"
                }
            }
        },
        "inquiry.InquiryResponse": {
            "type": "object",
            "properties": {
                "company_name": {
                    "type": "string"
                },
                "created_at": {
                    "type": "integer"
                },
                "full_name": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "phone_number": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "status_history": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/inquiry.StatusHistoryResponse"
                    }
                },
                "updated_at": {
                    "type": "integer"
                },
                "work_email": {
                    "type": "string"
                }
            }
        },
        "inquiry.StatusHistoryResponse": {
            "type": "object",
            "properties": {
                "changed_at": {
                    "type": "integer"
                },
                "description": {
                    "type": "string"
                },
                "reason": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                }
            }
        },
        "inquiry.UpdateInquiryStatusForm": {
            "type": "object",
            "properties": {
                "description": {
                    "description": "Optional description",
                    "type": "string",
                    "example": "Additional notes about the review"
                },
                "reason": {
                    "description": "Reason for status change",
                    "type": "string",
                    "example": "Initial review completed"
                },
                "status": {
                    "description": "New status",
                    "type": "string",
                    "example": "reviewed"
                }
            }
        },
        "response.APIError": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "string"
                },
                "details": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                }
            }
        },
        "response.APIResponse": {
            "type": "object",
            "properties": {
                "data": {},
                "error": {
                    "$ref": "#/definitions/response.APIError"
                },
                "message": {
                    "type": "string"
                },
                "meta": {
                    "$ref": "#/definitions/response.Meta"
                },
                "success": {
                    "type": "boolean"
                }
            }
        },
        "response.Meta": {
            "type": "object",
            "properties": {
                "limit": {
                    "type": "integer"
                },
                "offset": {
                    "type": "integer"
                },
                "page": {
                    "type": "integer"
                },
                "pages": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "tender.OrganizationResponse": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                }
            }
        },
        "tender.SearchResponse": {
            "type": "object",
            "properties": {
                "tenders": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/tender.TenderResponse"
                    }
                }
            }
        },
        "tender.TenderResponse": {
            "type": "object",
            "properties": {
                "application_deadline": {
                    "type": "integer"
                },
                "buyer_organization": {
                    "$ref": "#/definitions/tender.OrganizationResponse"
                },
                "country_code": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "duration": {
                    "type": "string"
                },
                "duration_unit": {
                    "type": "string"
                },
                "estimated_value": {
                    "type": "number"
                },
                "id": {
                    "type": "string"
                },
                "notice_publication_id": {
                    "type": "string"
                },
                "procedure_code": {
                    "type": "string"
                },
                "procurement_type_code": {
                    "type": "string"
                },
                "publication_date": {
                    "type": "integer"
                },
                "status": {
                    "$ref": "#/definitions/tender.TenderStatus"
                },
                "submission_deadline": {
                    "type": "integer"
                },
                "submission_url": {
                    "type": "string"
                },
                "tender_deadline": {
                    "type": "integer"
                },
                "tender_id": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                }
            }
        },
        "tender.TenderStatus": {
            "type": "string",
            "enum": [
                "active",
                "expired",
                "cancelled",
                "awarded",
                "draft"
            ],
            "x-enum-varnames": [
                "TenderStatusActive",
                "TenderStatusExpired",
                "TenderStatusCancelled",
                "TenderStatusAwarded",
                "TenderStatusDraft"
            ]
        },
        "tender.UpdateTenderRequest": {
            "type": "object",
            "properties": {
                "currency": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "estimated_value": {
                    "type": "number"
                },
                "id": {
                    "type": "string"
                },
                "status": {
                    "$ref": "#/definitions/tender.TenderStatus"
                },
                "tender_deadline": {
                    "description": "Unix milliseconds",
                    "type": "integer"
                },
                "title": {
                    "type": "string"
                }
            }
        },
        "tender_approval.ApprovalStatus": {
            "type": "string",
            "enum": [
                "submitted",
                "rejected"
            ],
            "x-enum-comments": {
                "ApprovalStatusRejected": "Company rejected the tender",
                "ApprovalStatusSubmitted": "Company submitted the tender"
            },
            "x-enum-descriptions": [
                "Company submitted the tender",
                "Company rejected the tender"
            ],
            "x-enum-varnames": [
                "ApprovalStatusSubmitted",
                "ApprovalStatusRejected"
            ]
        },
        "tender_approval.CompanyTenderApprovalStatsResponse": {
            "type": "object",
            "properties": {
                "company_id": {
                    "type": "string"
                },
                "last_updated": {
                    "type": "integer"
                },
                "partnership_count": {
                    "type": "integer"
                },
                "rejected_tenders": {
                    "type": "integer"
                },
                "self_apply_count": {
                    "type": "integer"
                },
                "submitted_tenders": {
                    "type": "integer"
                },
                "total_approvals": {
                    "type": "integer"
                }
            }
        },
        "tender_approval.CreateTenderApprovalForm": {
            "type": "object",
            "properties": {
                "status": {
                    "$ref": "#/definitions/tender_approval.ApprovalStatus"
                },
                "submission_mode": {
                    "$ref": "#/definitions/tender_approval.SubmissionMode"
                },
                "tender_id": {
                    "type": "string"
                }
            }
        },
        "tender_approval.OrganizationResponse": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                }
            }
        },
        "tender_approval.SubmissionMode": {
            "type": "string",
            "enum": [
                "self-apply",
                "partnership"
            ],
            "x-enum-comments": {
                "SubmissionModePartnership": "Company applies for the tender with a partner",
                "SubmissionModeSelfApply": "Company applies for the tender on their own"
            },
            "x-enum-descriptions": [
                "Company applies for the tender on their own",
                "Company applies for the tender with a partner"
            ],
            "x-enum-varnames": [
                "SubmissionModeSelfApply",
                "SubmissionModePartnership"
            ]
        },
        "tender_approval.TenderApprovalListResponse": {
            "type": "object",
            "properties": {
                "limit": {
                    "type": "integer"
                },
                "offset": {
                    "type": "integer"
                },
                "tender_approvals": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/tender_approval.TenderApprovalResponse"
                    }
                },
                "total": {
                    "type": "integer"
                },
                "total_pages": {
                    "type": "integer"
                }
            }
        },
        "tender_approval.TenderApprovalResponse": {
            "type": "object",
            "properties": {
                "company_id": {
                    "type": "string"
                },
                "created_at": {
                    "type": "integer"
                },
                "id": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "submission_mode": {
                    "type": "string"
                },
                "tender_id": {
                    "type": "string"
                }
            }
        },
        "tender_approval.TenderApprovalStatsResponse": {
            "type": "object",
            "properties": {
                "last_updated": {
                    "type": "integer"
                },
                "rejected_tenders": {
                    "type": "integer"
                },
                "submitted_tenders": {
                    "type": "integer"
                },
                "total_approvals": {
                    "type": "integer"
                }
            }
        },
        "tender_approval.TenderApprovalWithTenderListResponse": {
            "type": "object",
            "properties": {
                "metadata": {
                    "$ref": "#/definitions/response.Meta"
                },
                "tenders": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/tender_approval.TenderApprovalWithTenderResponse"
                    }
                }
            }
        },
        "tender_approval.TenderApprovalWithTenderResponse": {
            "type": "object",
            "properties": {
                "company_id": {
                    "type": "string"
                },
                "created_at": {
                    "type": "integer"
                },
                "id": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "submission_mode": {
                    "type": "string"
                },
                "tender": {
                    "$ref": "#/definitions/tender_approval.TenderDetails"
                },
                "tender_id": {
                    "type": "string"
                }
            }
        },
        "tender_approval.TenderDetails": {
            "type": "object",
            "properties": {
                "buyer_organization": {
                    "$ref": "#/definitions/tender_approval.OrganizationResponse"
                },
                "country_code": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "duration": {
                    "type": "string"
                },
                "duration_unit": {
                    "type": "string"
                },
                "estimated_value": {
                    "type": "number"
                },
                "id": {
                    "type": "string"
                },
                "notice_publication_id": {
                    "type": "string"
                },
                "procedure_code": {
                    "type": "string"
                },
                "procurement_type_code": {
                    "type": "string"
                },
                "publication_date": {
                    "type": "integer"
                },
                "status": {
                    "type": "string"
                },
                "submission_deadline": {
                    "type": "integer"
                },
                "tender_deadline": {
                    "type": "integer"
                },
                "title": {
                    "type": "string"
                }
            }
        },
        "user.AuthResponse": {
            "type": "object",
            "properties": {
                "access_token": {
                    "type": "string"
                },
                "expires_at": {
                    "type": "integer"
                },
                "refresh_token": {
                    "type": "string"
                },
                "user": {
                    "$ref": "#/definitions/user.UserResponse"
                }
            }
        },
        "user.ChangePasswordForm": {
            "type": "object",
            "properties": {
                "new_password": {
                    "description": "New password (minimum 8 characters)",
                    "type": "string",
                    "example": "NewAdmin!1234"
                },
                "old_password": {
                    "description": "Current password for verification",
                    "type": "string",
                    "example": "Admin!1234"
                }
            }
        },
        "user.CreateUserForm": {
            "type": "object",
            "properties": {
                "department": {
                    "description": "Optional department name",
                    "type": "string",
                    "example": "Information Technology"
                },
                "email": {
                    "description": "Valid email address",
                    "type": "string",
                    "example": "admin@opplens.com"
                },
                "full_name": {
                    "description": "Full name of the user",
                    "type": "string",
                    "example": "Admin User"
                },
                "password": {
                    "description": "Password (minimum 8 characters)",
                    "type": "string",
                    "example": "Admin!1234"
                },
                "phone": {
                    "description": "Optional phone number",
                    "type": "string",
                    "example": "+18289784438"
                },
                "position": {
                    "description": "Optional job position",
                    "type": "string",
                    "example": "Lead"
                },
                "profile_image": {
                    "description": "Optional profile image URL",
                    "type": "string",
                    "example": ""
                },
                "role": {
                    "description": "User role (admin, manager, operator, viewer)",
                    "type": "string",
                    "example": "admin"
                },
                "username": {
                    "description": "Unique username (alphanumeric only)",
                    "type": "string",
                    "example": "admin"
                }
            }
        },
        "user.LoginForm": {
            "type": "object",
            "properties": {
                "password": {
                    "description": "User password",
                    "type": "string",
                    "example": "Admin!1234"
                },
                "username": {
                    "description": "Username or email address",
                    "type": "string",
                    "example": "admin"
                }
            }
        },
        "user.RefreshTokenForm": {
            "type": "object",
            "properties": {
                "refresh_token": {
                    "description": "Valid refresh token",
                    "type": "string",
                    "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
                }
            }
        },
        "user.ResetPasswordForm": {
            "type": "object",
            "properties": {
                "email": {
                    "description": "Email address for password reset",
                    "type": "string",
                    "example": "admin@opplens.com"
                }
            }
        },
        "user.UpdateUserForm": {
            "type": "object",
            "properties": {
                "department": {
                    "description": "Updated department",
                    "type": "string",
                    "example": "Information Technology"
                },
                "email": {
                    "description": "Updated email address",
                    "type": "string",
                    "example": "admin@opplens.com"
                },
                "full_name": {
                    "description": "Updated full name",
                    "type": "string",
                    "example": "Admin User"
                },
                "phone": {
                    "description": "Updated phone number",
                    "type": "string",
                    "example": "+18289784438"
                },
                "position": {
                    "description": "Updated position",
                    "type": "string",
                    "example": "Lead"
                },
                "profile_image": {
                    "description": "Updated profile image URL",
                    "type": "string",
                    "example": ""
                },
                "role": {
                    "description": "Updated user role",
                    "type": "string",
                    "example": "admin"
                },
                "username": {
                    "description": "Updated username",
                    "type": "string",
                    "example": "admin"
                }
            }
        },
        "user.UpdateUserStatusForm": {
            "type": "object",
            "properties": {
                "status": {
                    "type": "string"
                }
            }
        },
        "user.UserListResponse": {
            "type": "object",
            "properties": {
                "users": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/user.UserResponse"
                    }
                }
            }
        },
        "user.UserResponse": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "integer"
                },
                "department": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "full_name": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "is_verified": {
                    "type": "boolean"
                },
                "last_login_at": {
                    "type": "integer"
                },
                "phone": {
                    "type": "string"
                },
                "position": {
                    "type": "string"
                },
                "profile_image": {
                    "type": "string"
                },
                "role": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "integer"
                },
                "username": {
                    "type": "string"
                }
            }
        }
    },
    "securityDefinitions": {
        "BearerAuth": {
            "description": "Type \"Bearer\" followed by a space and JWT token. Example: \"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\"",
            "type": "apiKey",
            "name": "Authorization",
            "in": "header"
        }
    },
    "tags": [
        {
            "description": "System health check operations for monitoring application status and dependencies",
            "name": "Admin-Health"
        },
        {
            "description": "User authentication and authorization operations including login, logout, token refresh, and password management for web panel administration",
            "name": "Admin-Authorization"
        },
        {
            "description": "Administrative user management operations including CRUD operations, role management, status updates, and profile management for web panel administrators",
            "name": "Admin-Users"
        },
        {
            "description": "Administrative customer management operations for web panel including CRUD operations, company assignment, verification, status management, and comprehensive filtering with pagination",
            "name": "Admin-Customers"
        },
        {
            "description": "Administrative company management operations for web panel including CRUD operations, tag management, verification, status updates, comprehensive search and filtering, and statistical reporting",
            "name": "Admin-Companies"
        },
        {
            "description": "Administrative company category management operations for web panel including CRUD operations, publish/unpublish status, and comprehensive filtering with pagination",
            "name": "Admin-Company-Categories"
        },
        {
            "description": "Administrative tender management operations for web panel including CRUD operations, search, statistics, and comprehensive filtering with pagination",
            "name": "Admin-Tenders"
        },
        {
            "description": "Administrative feedback management operations for web panel including CRUD operations, search, statistics, and comprehensive filtering with pagination",
            "name": "Admin-Feedback"
        },
        {
            "description": "Administrative tender approval management operations for web panel including CRUD operations, search, statistics, and comprehensive filtering with pagination",
            "name": "Admin-TenderApprovals"
        },
        {
            "description": "Administrative inquiry management operations for web panel including CRUD operations, search, statistics, and comprehensive filtering with pagination",
            "name": "Admin-Inquiries"
        },
        {
            "description": "Administrative flag management operations for web panel including flag listing and retrieval",
            "name": "Admin-Flags"
        },
        {
            "description": "Customer authentication and authorization operations for mobile application including login, logout, token refresh, and profile access",
            "name": "Authorization"
        },
        {
            "description": "Company information access for mobile application including company profile and company tenders",
            "name": "Company"
        },
        {
            "description": "Public tender information access for mobile application including active tender listings and detailed tender information",
            "name": "Tenders"
        },
        {
            "description": "Public feedback management operations for mobile application including like, dislike, and comment on tenders",
            "name": "Feedback"
        },
        {
            "description": "Public tender approval management operations for mobile application including tender approval listing and detailed tender approval information",
            "name": "TenderApprovals"
        },
        {
            "description": "Public inquiry management operations for mobile application including inquiry submission and inquiry listing",
            "name": "Inquiries"
        },
        {
            "description": "Public flag management operations for mobile application including flag retrieval and listing",
            "name": "Flags"
        }
    ]
}