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

import "github.com/swaggo/swag"

const docTemplate = `{
    "schemes": {{ marshal .Schemes }},
    "swagger": "2.0",
    "info": {
        "description": "{{escape .Description}}",
        "title": "{{.Title}}",
        "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": "{{.Version}}"
    },
    "host": "{{.Host}}",
    "basePath": "{{.BasePath}}",
    "paths": {
        "/admin/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": "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": "Company ID for match percentage calculation and sorting",
                        "name": "company_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Search query for title and description",
                        "name": "query",
                        "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"
                    }
                ],
                "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/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/companies": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve a paginated list of companies with advanced filtering options including search, type, status, industry, verification status, tags, and business criteria. Supports sorting and pagination.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Companies"
                ],
                "summary": "List companies with filters and pagination",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Search term to filter companies by name, description, or industry",
                        "name": "search",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "private",
                            "public",
                            "government",
                            "ngo",
                            "startup"
                        ],
                        "type": "string",
                        "description": "Filter by company type",
                        "name": "type",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "active",
                            "inactive",
                            "suspended",
                            "pending"
                        ],
                        "type": "string",
                        "description": "Filter by company status",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by industry",
                        "name": "industry",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Filter by verification status",
                        "name": "is_verified",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Filter by compliance status",
                        "name": "is_compliant",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "description": "Filter by CPV codes",
                        "name": "cpv_codes",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "description": "Filter by categories",
                        "name": "categories",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "description": "Filter by keywords",
                        "name": "keywords",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "description": "Filter by specializations",
                        "name": "specializations",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Minimum employee count",
                        "name": "employee_count_min",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Maximum employee count",
                        "name": "employee_count_max",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Minimum annual revenue",
                        "name": "annual_revenue_min",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Maximum annual revenue",
                        "name": "annual_revenue_max",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Minimum founded year",
                        "name": "founded_year_min",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Maximum founded year",
                        "name": "founded_year_max",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 20,
                        "description": "Number of companies per page (1-100)",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "default": 0,
                        "description": "Number of companies to skip for pagination",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "name",
                            "type",
                            "industry",
                            "created_at",
                            "updated_at",
                            "status",
                            "employee_count",
                            "annual_revenue"
                        ],
                        "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": "Companies retrieved successfully",
                        "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.CreateCompanyForm"
                        }
                    }
                ],
                "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/industry/{industry}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve companies filtered by their industry",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Companies"
                ],
                "summary": "Get companies by industry",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Industry",
                        "name": "industry",
                        "in": "path",
                        "required": true
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 20,
                        "description": "Number of companies per page (1-100)",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "default": 0,
                        "description": "Number of companies to skip for pagination",
                        "name": "offset",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Companies retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/company.CompanyResponse"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/definitions/response.Meta"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid industry",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/companies/search": {
            "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"
                        }
                    }
                }
            }
        },
        "/admin/v1/companies/stats": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Get comprehensive company statistics for dashboard",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Companies"
                ],
                "summary": "Get company statistics",
                "responses": {
                    "200": {
                        "description": "Company statistics retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/company.CompanyStatsResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/companies/status/{status}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve companies filtered by their status (active, inactive, suspended, pending)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Companies"
                ],
                "summary": "Get companies by status",
                "parameters": [
                    {
                        "enum": [
                            "active",
                            "inactive",
                            "suspended",
                            "pending"
                        ],
                        "type": "string",
                        "description": "Company status",
                        "name": "status",
                        "in": "path",
                        "required": true
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 20,
                        "description": "Number of companies per page (1-100)",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "default": 0,
                        "description": "Number of companies to skip for pagination",
                        "name": "offset",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Companies retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/company.CompanyResponse"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/definitions/response.Meta"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid company status",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/companies/type/{type}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve companies filtered by their type (private, public, government, ngo, startup)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Companies"
                ],
                "summary": "Get companies by type",
                "parameters": [
                    {
                        "enum": [
                            "private",
                            "public",
                            "government",
                            "ngo",
                            "startup"
                        ],
                        "type": "string",
                        "description": "Company type",
                        "name": "type",
                        "in": "path",
                        "required": true
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "default": 20,
                        "description": "Number of companies per page (1-100)",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "minimum": 0,
                        "type": "integer",
                        "default": 0,
                        "description": "Number of companies to skip for pagination",
                        "name": "offset",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Companies retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/company.CompanyResponse"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/definitions/response.Meta"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid company type",
                        "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.UpdateCompanyForm"
                        }
                    }
                ],
                "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}/activate": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Activate a suspended company account",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Companies"
                ],
                "summary": "Activate company",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Company ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Company activated 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.UpdateCompanyStatusForm"
                        }
                    }
                ],
                "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}/suspend": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Suspend a company account with reason",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Companies"
                ],
                "summary": "Suspend company",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Company ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Suspension information",
                        "name": "suspension",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/company.SuspendCompanyForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Company suspended 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}/tags": {
            "put": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Update company tags (CPV, categories, keywords, specializations, certifications)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Companies"
                ],
                "summary": "Update company tags",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Company ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Tags update information",
                        "name": "tags",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/company.UpdateCompanyTagsForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Company tags 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}/tags/add": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Add specific tags to a company",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Companies"
                ],
                "summary": "Add tags to company",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Company ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Tags to add",
                        "name": "tags",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/company.AddTagsForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Tags added 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}/tags/remove": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Remove specific tags from a company",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Companies"
                ],
                "summary": "Remove tags from company",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Company ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Tags to remove",
                        "name": "tags",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/company.RemoveTagsForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Tags removed 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.UpdateCompanyVerificationForm"
                        }
                    }
                ],
                "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/companies/{id}/verify": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Mark a company as verified",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Companies"
                ],
                "summary": "Verify company",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Company ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Company verified 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/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"
                    },
                    {
                        "type": "string",
                        "description": "Filter by industry",
                        "name": "industry",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Filter by verification status",
                        "name": "is_verified",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "Filter by compliance status",
                        "name": "is_compliant",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by preferred language",
                        "name": "language",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by preferred currency",
                        "name": "currency",
                        "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/company/{companyId}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve all customers associated with a specific company",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Customers"
                ],
                "summary": "Get customers by company ID",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Company ID",
                        "name": "companyId",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "Number of customers to return (default: 10, max: 100)",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Number of customers to skip (default: 0)",
                        "name": "offset",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Customers retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/customer.CustomerResponse"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid company ID",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/customers/status/{status}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve customers filtered by their account status (active, inactive, suspended, or pending). Useful for administrative monitoring and management.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Customers"
                ],
                "summary": "Get customers by status",
                "parameters": [
                    {
                        "enum": [
                            "active",
                            "inactive",
                            "suspended",
                            "pending"
                        ],
                        "type": "string",
                        "description": "Customer status",
                        "name": "status",
                        "in": "path",
                        "required": true
                    },
                    {
                        "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"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Customers retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/customer.CustomerResponse"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/definitions/response.Meta"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid customer status",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/response.APIResponse"
                        }
                    }
                }
            }
        },
        "/admin/v1/customers/type/{type}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Retrieve customers filtered by their type (individual, company, or government). Useful for administrative reporting and management.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Customers"
                ],
                "summary": "Get customers by type",
                "parameters": [
                    {
                        "enum": [
                            "individual",
                            "company",
                            "government"
                        ],
                        "type": "string",
                        "description": "Customer type",
                        "name": "type",
                        "in": "path",
                        "required": true
                    },
                    {
                        "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"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Customers retrieved successfully",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/response.APIResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/customer.CustomerResponse"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/definitions/response.Meta"
                                        }
                                    }
                                }
                            ]
                        }
                    },
                    "400": {
                        "description": "Bad request - Invalid customer type",
                        "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}/activate": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Activate a suspended customer account",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Customers"
                ],
                "summary": "Activate customer",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Customer ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Customer activated 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}/companies/assign": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Assign one or more companies to a specific customer.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Customers"
                ],
                "summary": "Assign companies to a customer",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Customer ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "List of company IDs to assign",
                        "name": "companies",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/customer.AssignCompaniesForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Companies assigned 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/customers/{id}/companies/remove": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Remove one or more companies from a specific customer.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Customers"
                ],
                "summary": "Remove companies from a customer",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Customer ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "List of company IDs to remove",
                        "name": "companies",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/customer.RemoveCompaniesForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Companies removed 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/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.UpdateCustomerStatusForm"
                        }
                    }
                ],
                "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/customers/{id}/suspend": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Suspend a customer account with optional reason",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Customers"
                ],
                "summary": "Suspend customer",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Customer ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Suspension information",
                        "name": "suspension",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/customer.SuspendCustomerForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Customer suspended 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/customers/{id}/verification": {
            "patch": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Update customer verification and compliance status",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Customers"
                ],
                "summary": "Update customer verification status",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Customer ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Verification status update",
                        "name": "verification",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/customer.UpdateCustomerVerificationForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Customer verification 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/customers/{id}/verify": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Mark a customer as verified",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Admin-Customers"
                ],
                "summary": "Verify customer",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Customer ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Customer verified 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/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/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/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/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/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/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/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/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": "integer",
                        "description": "Number of items per page (default: 20, max: 50)",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Number of items to skip (default: 0)",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by country code",
                        "name": "country_code",
                        "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": "number",
                        "description": "Publication from",
                        "name": "publication_from",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Publication to",
                        "name": "publication_to",
                        "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"
                        }
                    }
                }
            }
        },
        "/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": "integer",
                        "description": "Number of items per page (default: 20, max: 50)",
                        "name": "limit",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Number of items to skip (default: 0)",
                        "name": "offset",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filter by country code",
                        "name": "country_code",
                        "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": "number",
                        "description": "Publication from",
                        "name": "publication_from",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Publication to",
                        "name": "publication_to",
                        "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"
                        }
                    }
                }
            }
        }
    },
    "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.AddTagsForm": {
            "type": "object",
            "properties": {
                "categories": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "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.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"
                },
                "country": {
                    "type": "string"
                },
                "postal_code": {
                    "type": "string"
                },
                "state": {
                    "type": "string"
                },
                "street": {
                    "type": "string"
                }
            }
        },
        "company.CPVCodeCount": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "cpv_code": {
                    "type": "string"
                }
            }
        },
        "company.CategoryCount": {
            "type": "object",
            "properties": {
                "category": {
                    "type": "string"
                },
                "count": {
                    "type": "integer"
                }
            }
        },
        "company.CompanyListResponse": {
            "type": "object",
            "properties": {
                "companies": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/company.CompanyResponse"
                    }
                },
                "limit": {
                    "type": "integer"
                },
                "offset": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                },
                "total_pages": {
                    "type": "integer"
                }
            }
        },
        "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"
                },
                "contact_person": {
                    "$ref": "#/definitions/company.ContactPerson"
                },
                "created_at": {
                    "type": "integer"
                },
                "created_by": {
                    "type": "string"
                },
                "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.CompanyTags"
                },
                "tax_id": {
                    "type": "string"
                },
                "timezone": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "integer"
                },
                "updated_by": {
                    "type": "string"
                },
                "website": {
                    "type": "string"
                }
            }
        },
        "company.CompanyStatsResponse": {
            "type": "object",
            "properties": {
                "active_companies": {
                    "type": "integer"
                },
                "companies_by_industry": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "integer",
                        "format": "int64"
                    }
                },
                "companies_by_status": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "integer",
                        "format": "int64"
                    }
                },
                "companies_by_type": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "integer",
                        "format": "int64"
                    }
                },
                "top_categories": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/company.CategoryCount"
                    }
                },
                "top_cpv_codes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/company.CPVCodeCount"
                    }
                },
                "total_companies": {
                    "type": "integer"
                },
                "verified_companies": {
                    "type": "integer"
                }
            }
        },
        "company.CompanyTags": {
            "type": "object",
            "properties": {
                "categories": {
                    "description": "Categories",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "certifications": {
                    "description": "Certifications",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "cpv_codes": {
                    "description": "CPV codes (Common Procurement Vocabulary)",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "keywords": {
                    "description": "Keywords for search and matching",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "specializations": {
                    "description": "Specializations",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "company.CompanyTagsForm": {
            "type": "object",
            "properties": {
                "categories": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "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.ContactPerson": {
            "type": "object",
            "properties": {
                "email": {
                    "type": "string"
                },
                "first_name": {
                    "type": "string"
                },
                "full_name": {
                    "type": "string"
                },
                "is_primary": {
                    "type": "boolean"
                },
                "last_name": {
                    "type": "string"
                },
                "mobile": {
                    "type": "string"
                },
                "phone": {
                    "type": "string"
                },
                "position": {
                    "type": "string"
                }
            }
        },
        "company.ContactPersonForm": {
            "type": "object",
            "properties": {
                "email": {
                    "type": "string"
                },
                "first_name": {
                    "type": "string"
                },
                "full_name": {
                    "type": "string"
                },
                "is_primary": {
                    "type": "boolean"
                },
                "last_name": {
                    "type": "string"
                },
                "mobile": {
                    "type": "string"
                },
                "phone": {
                    "type": "string"
                },
                "position": {
                    "type": "string"
                }
            }
        },
        "company.CreateCompanyForm": {
            "type": "object",
            "properties": {
                "address": {
                    "description": "Address information",
                    "allOf": [
                        {
                            "$ref": "#/definitions/company.AddressForm"
                        }
                    ]
                },
                "annual_revenue": {
                    "type": "number"
                },
                "contact_person": {
                    "description": "Contact information",
                    "allOf": [
                        {
                            "$ref": "#/definitions/company.ContactPersonForm"
                        }
                    ]
                },
                "currency": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "employee_count": {
                    "description": "Business information",
                    "type": "integer"
                },
                "founded_year": {
                    "type": "integer"
                },
                "industry": {
                    "type": "string"
                },
                "language": {
                    "description": "Settings",
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "phone": {
                    "type": "string"
                },
                "registration_number": {
                    "type": "string"
                },
                "tags": {
                    "description": "Tags for categorization and search",
                    "allOf": [
                        {
                            "$ref": "#/definitions/company.CompanyTagsForm"
                        }
                    ]
                },
                "tax_id": {
                    "type": "string"
                },
                "timezone": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "website": {
                    "type": "string"
                }
            }
        },
        "company.RemoveTagsForm": {
            "type": "object",
            "properties": {
                "categories": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "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.SuspendCompanyForm": {
            "type": "object",
            "properties": {
                "reason": {
                    "type": "string"
                }
            }
        },
        "company.UpdateCompanyForm": {
            "type": "object",
            "properties": {
                "address": {
                    "description": "Address information",
                    "allOf": [
                        {
                            "$ref": "#/definitions/company.AddressForm"
                        }
                    ]
                },
                "annual_revenue": {
                    "type": "number"
                },
                "contact_person": {
                    "description": "Contact information",
                    "allOf": [
                        {
                            "$ref": "#/definitions/company.ContactPersonForm"
                        }
                    ]
                },
                "currency": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "employee_count": {
                    "description": "Business information",
                    "type": "integer"
                },
                "founded_year": {
                    "type": "integer"
                },
                "industry": {
                    "type": "string"
                },
                "language": {
                    "description": "Settings",
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "phone": {
                    "type": "string"
                },
                "registration_number": {
                    "type": "string"
                },
                "tags": {
                    "description": "Tags for categorization and search",
                    "allOf": [
                        {
                            "$ref": "#/definitions/company.CompanyTagsForm"
                        }
                    ]
                },
                "tax_id": {
                    "type": "string"
                },
                "timezone": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "website": {
                    "type": "string"
                }
            }
        },
        "company.UpdateCompanyStatusForm": {
            "type": "object",
            "properties": {
                "status": {
                    "type": "string"
                }
            }
        },
        "company.UpdateCompanyTagsForm": {
            "type": "object",
            "properties": {
                "tags": {
                    "$ref": "#/definitions/company.CompanyTagsForm"
                }
            }
        },
        "company.UpdateCompanyVerificationForm": {
            "type": "object",
            "properties": {
                "compliance_notes": {
                    "type": "string"
                },
                "is_compliant": {
                    "type": "boolean"
                },
                "is_verified": {
                    "type": "boolean"
                }
            }
        },
        "customer.Address": {
            "type": "object",
            "properties": {
                "address_type": {
                    "description": "billing, shipping, etc.",
                    "type": "string"
                },
                "city": {
                    "type": "string"
                },
                "country": {
                    "type": "string"
                },
                "is_default": {
                    "type": "boolean"
                },
                "postal_code": {
                    "type": "string"
                },
                "state": {
                    "type": "string"
                },
                "street": {
                    "type": "string"
                }
            }
        },
        "customer.AddressForm": {
            "type": "object",
            "properties": {
                "address_type": {
                    "type": "string"
                },
                "city": {
                    "type": "string"
                },
                "country": {
                    "type": "string"
                },
                "is_default": {
                    "type": "boolean"
                },
                "postal_code": {
                    "type": "string"
                },
                "state": {
                    "type": "string"
                },
                "street": {
                    "type": "string"
                }
            }
        },
        "customer.AssignCompaniesForm": {
            "type": "object",
            "properties": {
                "company_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "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.ContactPerson": {
            "type": "object",
            "properties": {
                "email": {
                    "type": "string"
                },
                "first_name": {
                    "type": "string"
                },
                "full_name": {
                    "type": "string"
                },
                "is_primary": {
                    "type": "boolean"
                },
                "last_name": {
                    "type": "string"
                },
                "mobile": {
                    "type": "string"
                },
                "phone": {
                    "type": "string"
                },
                "position": {
                    "type": "string"
                }
            }
        },
        "customer.ContactPersonForm": {
            "type": "object",
            "properties": {
                "email": {
                    "type": "string"
                },
                "first_name": {
                    "type": "string"
                },
                "full_name": {
                    "type": "string"
                },
                "is_primary": {
                    "type": "boolean"
                },
                "last_name": {
                    "type": "string"
                },
                "mobile": {
                    "type": "string"
                },
                "phone": {
                    "type": "string"
                },
                "position": {
                    "type": "string"
                }
            }
        },
        "customer.CreateCustomerForm": {
            "type": "object",
            "properties": {
                "address": {
                    "description": "Address information",
                    "allOf": [
                        {
                            "$ref": "#/definitions/customer.AddressForm"
                        }
                    ]
                },
                "annual_revenue": {
                    "type": "number"
                },
                "business_type": {
                    "description": "Business information",
                    "type": "string"
                },
                "company_ids": {
                    "description": "Company assignments",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "contact_person": {
                    "description": "Contact person (for company customers)",
                    "allOf": [
                        {
                            "$ref": "#/definitions/customer.ContactPersonForm"
                        }
                    ]
                },
                "currency": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "employee_count": {
                    "type": "integer"
                },
                "first_name": {
                    "description": "Individual customer fields",
                    "type": "string"
                },
                "founded_year": {
                    "type": "integer"
                },
                "full_name": {
                    "type": "string"
                },
                "industry": {
                    "type": "string"
                },
                "language": {
                    "description": "Preferences and settings",
                    "type": "string"
                },
                "last_name": {
                    "type": "string"
                },
                "mobile": {
                    "type": "string"
                },
                "password": {
                    "type": "string"
                },
                "phone": {
                    "type": "string"
                },
                "registration_number": {
                    "description": "Company customer fields",
                    "type": "string"
                },
                "tax_id": {
                    "type": "string"
                },
                "timezone": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "customer.CustomerListResponse": {
            "type": "object",
            "properties": {
                "customers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/customer.CustomerResponse"
                    }
                },
                "limit": {
                    "type": "integer"
                },
                "offset": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                },
                "total_pages": {
                    "type": "integer"
                }
            }
        },
        "customer.CustomerResponse": {
            "type": "object",
            "properties": {
                "address": {
                    "$ref": "#/definitions/customer.Address"
                },
                "annual_revenue": {
                    "type": "number"
                },
                "business_type": {
                    "type": "string"
                },
                "companies": {
                    "description": "Company relationships",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/customer.CompanySummary"
                    }
                },
                "compliance_notes": {
                    "type": "string"
                },
                "contact_person": {
                    "$ref": "#/definitions/customer.ContactPerson"
                },
                "created_at": {
                    "type": "integer"
                },
                "created_by": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "employee_count": {
                    "type": "integer"
                },
                "first_name": {
                    "type": "string"
                },
                "founded_year": {
                    "type": "integer"
                },
                "full_name": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "industry": {
                    "type": "string"
                },
                "is_compliant": {
                    "type": "boolean"
                },
                "is_verified": {
                    "type": "boolean"
                },
                "language": {
                    "type": "string"
                },
                "last_name": {
                    "type": "string"
                },
                "mobile": {
                    "type": "string"
                },
                "phone": {
                    "type": "string"
                },
                "registration_number": {
                    "description": "Company customer fields",
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "tax_id": {
                    "type": "string"
                },
                "timezone": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "integer"
                },
                "updated_by": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "customer.LoginForm": {
            "type": "object",
            "properties": {
                "password": {
                    "type": "string",
                    "example": "Nima.1998"
                },
                "username": {
                    "type": "string",
                    "example": "nakhostin"
                }
            }
        },
        "customer.RefreshTokenForm": {
            "type": "object",
            "properties": {
                "refresh_token": {
                    "type": "string"
                }
            }
        },
        "customer.RemoveCompaniesForm": {
            "type": "object",
            "properties": {
                "company_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "customer.SuspendCustomerForm": {
            "type": "object",
            "properties": {
                "reason": {
                    "type": "string"
                }
            }
        },
        "customer.UpdateCustomerForm": {
            "type": "object",
            "properties": {
                "address": {
                    "description": "Address information",
                    "allOf": [
                        {
                            "$ref": "#/definitions/customer.AddressForm"
                        }
                    ]
                },
                "annual_revenue": {
                    "type": "number"
                },
                "business_type": {
                    "description": "Business information",
                    "type": "string"
                },
                "company_ids": {
                    "description": "Company assignments",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "company_name": {
                    "description": "Company customer fields",
                    "type": "string"
                },
                "contact_person": {
                    "description": "Contact person (for company customers)",
                    "allOf": [
                        {
                            "$ref": "#/definitions/customer.ContactPersonForm"
                        }
                    ]
                },
                "currency": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "employee_count": {
                    "type": "integer"
                },
                "first_name": {
                    "description": "Individual customer fields",
                    "type": "string"
                },
                "founded_year": {
                    "type": "integer"
                },
                "full_name": {
                    "type": "string"
                },
                "industry": {
                    "type": "string"
                },
                "language": {
                    "description": "Preferences and settings",
                    "type": "string"
                },
                "last_name": {
                    "type": "string"
                },
                "mobile": {
                    "type": "string"
                },
                "phone": {
                    "type": "string"
                },
                "registration_number": {
                    "type": "string"
                },
                "tax_id": {
                    "type": "string"
                },
                "timezone": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "customer.UpdateCustomerStatusForm": {
            "type": "object",
            "properties": {
                "status": {
                    "type": "string"
                }
            }
        },
        "customer.UpdateCustomerVerificationForm": {
            "type": "object",
            "properties": {
                "compliance_notes": {
                    "type": "string"
                },
                "is_compliant": {
                    "type": "boolean"
                },
                "is_verified": {
                    "type": "boolean"
                }
            }
        },
        "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"
                }
            }
        },
        "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.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": {
                "meta": {
                    "$ref": "#/definitions/response.Meta"
                },
                "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 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": "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"
        }
    ]
}`

// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
	Version:          "2.0.0",
	Host:             "localhost:8082",
	BasePath:         "/",
	Schemes:          []string{},
	Title:            "Tender Management API",
	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.",
	InfoInstanceName: "swagger",
	SwaggerTemplate:  docTemplate,
	LeftDelim:        "{{",
	RightDelim:       "}}",
}

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