{
  "openapi": "3.1.0",
  "info": {
    "title": "eProc API",
    "version": "1.0.0",
    "description": "API documentation for eProc endpoints."
  },
  "tags": [
    {
      "name": "Authentication",
      "description": "User authentication and token management."
    },
    {
      "name": "User Management",
      "description": "User accounts, role assignments, and profile management."
    },
    {
      "name": "Departments",
      "description": "Department hierarchy and approval permissions."
    },
    {
      "name": "Project Management",
      "description": "Project registry, project codes, and lifecycle tracking."
    },
    {
      "name": "Budget Management",
      "description": "Project budget plans, account codes, and approvals."
    },
    {
      "name": "Material Requisition",
      "description": "Material requisitions, item specifications, approvals, and revisions."
    },
    {
      "name": "Owner Estimation",
      "description": "Owner estimation (OE) and cost estimation calculations."
    },
    {
      "name": "Procurement Methods",
      "description": "Procurement methodology configuration."
    },
    {
      "name": "Invitation to Bid",
      "description": "RFP / ITB issuance, bidder lists, and tender schedules."
    },
    {
      "name": "Bid Submission",
      "description": "Vendor bid submissions and proposal uploads."
    },
    {
      "name": "Technical Bid Evaluation",
      "description": "Technical evaluation criteria, scoring matrices, and approvals."
    },
    {
      "name": "Commercial Bid Tabulation",
      "description": "Commercial evaluation, price comparisons, and CBT negotiations."
    },
    {
      "name": "Procurement Report",
      "description": "Recommendation for award and executive procurement authorizations."
    },
    {
      "name": "Letter of Award",
      "description": "Letter of Award (LOA) generation and vendor issuance."
    },
    {
      "name": "Contract",
      "description": "Procurement contracts, milestone schedules, and retainage."
    },
    {
      "name": "Purchase Order",
      "description": "Purchase orders, line items, delivery schedules, and amendments."
    },
    {
      "name": "Kickoff Meeting",
      "description": "Post-award kickoff meetings and minutes of meeting."
    },
    {
      "name": "Vendor Document",
      "description": "Vendor Document Requirement List (VDRL) submissions and document distribution."
    },
    {
      "name": "Vendor Progress Report",
      "description": "Vendor fabrication progress submissions and milestone verification."
    },
    {
      "name": "Notification for Inspection",
      "description": "Inspection notification requests and tracking."
    },
    {
      "name": "Inspection Release Note",
      "description": "Factory inspection release notes and quality clearance."
    },
    {
      "name": "Packing List",
      "description": "Vendor shipment packing lists and container manifests."
    },
    {
      "name": "Material Release Note",
      "description": "Material release notes and dispatch authorizations."
    },
    {
      "name": "Shipment Notification",
      "description": "Advance shipment notifications (ASN)."
    },
    {
      "name": "Shipment Tracking",
      "description": "Carrier tracking and shipping monitoring."
    },
    {
      "name": "Material Hub Receive",
      "description": "Physical material receipt and verification at warehouse hub."
    },
    {
      "name": "Material Site Receive",
      "description": "Physical material receipt and verification at project site."
    },
    {
      "name": "Packing List Hub to Site",
      "description": "Warehouse hub-to-site shipment packing lists and transfers."
    },
    {
      "name": "Material Receive & OSDR",
      "description": "Material receipt inspections and OSDR reports."
    },
    {
      "name": "Inventory",
      "description": "Hub and site warehouse inventory stock records."
    },
    {
      "name": "Construction Material Request",
      "description": "Field construction material requests."
    },
    {
      "name": "Construction Progress Report",
      "description": "Site construction progress logs."
    },
    {
      "name": "Invoices",
      "description": "Progress invoice submissions and tax calculations."
    },
    {
      "name": "Payments",
      "description": "Payment verifications and settlements."
    },
    {
      "name": "Scrapyard Management",
      "description": "Scrap material inventory and disposal logging."
    },
    {
      "name": "Scrapyard Custodian",
      "description": "Scrap custodian handovers and custody records."
    },
    {
      "name": "Vendor Management",
      "description": "Vendor directory, self-service registration, verification, and blacklisting."
    },
    {
      "name": "Vendor Categories",
      "description": "Vendor specialization classifications."
    },
    {
      "name": "Master - Business Entity Types",
      "description": "Reference master data for business entity types."
    },
    {
      "name": "Master - Categories",
      "description": "Reference master data for material categories."
    },
    {
      "name": "Master - Companies",
      "description": "Reference master data for enterprise companies and subsidiaries."
    },
    {
      "name": "Master - Currencies",
      "description": "Reference master data for currencies."
    },
    {
      "name": "Master - Exchange Rates",
      "description": "Reference master data for foreign exchange rates."
    },
    {
      "name": "Master - Incoterms",
      "description": "Reference master data for Incoterms."
    },
    {
      "name": "Master - KBLI",
      "description": "Reference master data for KBLI classification codes."
    },
    {
      "name": "Master - Locations",
      "description": "Reference master data for warehouse and site locations."
    },
    {
      "name": "Master - Materials",
      "description": "Reference master data for catalog materials."
    },
    {
      "name": "Master - Dropdowns",
      "description": "General dropdown options and lookup tables."
    },
    {
      "name": "Dashboard & Analytics",
      "description": "Procurement KPI metrics and dashboard analytics."
    },
    {
      "name": "Notifications",
      "description": "System notifications and transactional alerts."
    }
  ],
  "paths": {
    "/api/v1/auth/email": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Create New Auth",
        "description": "Create and persist a new `Auth` transaction record.",
        "operationId": "post_api_v1_auth_email",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload for `Create New Auth`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/email-change/request": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Create New Auth",
        "description": "Create and persist a new `Auth` transaction record.",
        "operationId": "post_api_v1_auth_email_change_request",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload for `Create New Auth`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/auth/email-change/verify": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Create New Auth",
        "description": "Create and persist a new `Auth` transaction record.",
        "operationId": "post_api_v1_auth_email_change_verify",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload for `Create New Auth`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/auth/email-verif/verify": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Create New Auth",
        "description": "Create and persist a new `Auth` transaction record.",
        "operationId": "post_api_v1_auth_email_verif_verify",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload for `Create New Auth`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/exchange-code": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Create New Auth",
        "description": "Create and persist a new `Auth` transaction record.",
        "operationId": "post_api_v1_auth_exchange_code",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload for `Create New Auth`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/forgot-password": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Create New Auth",
        "description": "Create and persist a new `Auth` transaction record.",
        "operationId": "post_api_v1_auth_forgot_password",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload for `Create New Auth`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/login": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "User Login Authentication",
        "description": "Authenticate user credentials and issue a stateful Sanctum API Bearer Token.",
        "operationId": "post_api_v1_auth_login",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload for `User Login Authentication`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/logout": {
      "get": {
        "tags": [
          "Authentication"
        ],
        "summary": "List Auth",
        "description": "Retrieve paginated collection of `Auth` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_auth_logout",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/auth/password": {
      "put": {
        "tags": [
          "Authentication"
        ],
        "summary": "Update Auth",
        "description": "Update and persist changes for an existing `Auth` record.",
        "operationId": "put_api_v1_auth_password",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload for `Update Auth`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/auth/profile": {
      "get": {
        "tags": [
          "Authentication"
        ],
        "summary": "List Auth",
        "description": "Retrieve paginated collection of `Auth` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_auth_profile",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Authentication"
        ],
        "summary": "Update Auth",
        "description": "Update and persist changes for an existing `Auth` record.",
        "operationId": "put_api_v1_auth_profile",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload for `Update Auth`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/auth/refresh": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Create New Auth",
        "description": "Create and persist a new `Auth` transaction record.",
        "operationId": "post_api_v1_auth_refresh",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload for `Create New Auth`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/register": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Register New Auth",
        "description": "Register and create new account profile for `Auth`.",
        "operationId": "post_api_v1_auth_register",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload for `Register New Auth`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/reset-password": {
      "put": {
        "tags": [
          "Authentication"
        ],
        "summary": "Update Auth",
        "description": "Update and persist changes for an existing `Auth` record.",
        "operationId": "put_api_v1_auth_reset_password",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload for `Update Auth`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/award-recommendations": {
      "get": {
        "tags": [
          "Procurement Report"
        ],
        "summary": "List Award Recommendations",
        "description": "Retrieve paginated collection of `Award Recommendations` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_award_recommendations",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Procurement Report"
        ],
        "summary": "Create New Award Recommendations",
        "description": "Create and persist a new `Award Recommendations` transaction record.",
        "operationId": "post_api_v1_award_recommendations",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreAwardRecommendationRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  },
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "items": {
                    "type": "array",
                    "description": "List of nested `items` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "quotation_material_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `t_quotation_materials,id`.",
                          "example": 1
                        },
                        "reason": {
                          "type": "string",
                          "description": "Field `items.*.reason`.",
                          "maxLength": 500
                        }
                      },
                      "required": [
                        "quotation_material_id"
                      ]
                    }
                  },
                  "remarks": {
                    "type": "string",
                    "description": "Field `remarks`."
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "is_submit": {
                    "type": "boolean",
                    "description": "Field `is_submit`."
                  },
                  "docs": {
                    "type": "array",
                    "description": "Field `docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "docs.*": {
                    "type": "string",
                    "description": "Binary file upload for `docs.*`.",
                    "format": "binary",
                    "maxLength": 20480
                  }
                },
                "required": [
                  "number",
                  "project_id",
                  "items"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/award-recommendations/{id}": {
      "get": {
        "tags": [
          "Procurement Report"
        ],
        "summary": "Get Award Recommendations Details",
        "description": "Retrieve full detail representation for a single `Award Recommendations` resource by unique identifier.",
        "operationId": "get_api_v1_award_recommendations__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/award-recommendations/{id}/approve": {
      "post": {
        "tags": [
          "Procurement Report"
        ],
        "summary": "Approve Award Recommendations",
        "description": "Execute formal approval workflow transition for `Award Recommendations`.",
        "operationId": "post_api_v1_award_recommendations__id__approve",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `ApproveAwardRecommendationRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "is_approved": {
                    "type": "boolean",
                    "description": "Field `is_approved`."
                  }
                },
                "required": [
                  "is_approved"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/award-recommendations/{id}/reject": {
      "post": {
        "tags": [
          "Procurement Report"
        ],
        "summary": "Reject Award Recommendations",
        "description": "Reject `Award Recommendations` submission with revision notes.",
        "operationId": "post_api_v1_award_recommendations__id__reject",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `ApproveAwardRecommendationRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "is_approved": {
                    "type": "boolean",
                    "description": "Field `is_approved`."
                  }
                },
                "required": [
                  "is_approved"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/budgets": {
      "get": {
        "tags": [
          "Budget Management"
        ],
        "summary": "List Budgets",
        "description": "/** Display a paginated listing of budgets with faceted search & filtering. /",
        "operationId": "get_api_v1_budgets",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Budget Management"
        ],
        "summary": "Create New Budgets",
        "description": "/** Store a newly created budget in storage. /",
        "operationId": "post_api_v1_budgets",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreBudgetRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "company_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_companies,id`.",
                    "example": 1
                  },
                  "budget_code": {
                    "type": "string",
                    "description": "Field `budget_code`.",
                    "maxLength": 100
                  },
                  "budget_name": {
                    "type": "string",
                    "description": "Field `budget_name`.",
                    "maxLength": 255
                  },
                  "total_budget": {
                    "type": "number",
                    "description": "Field `total_budget`.",
                    "minimum": 0
                  },
                  "contingency_amount": {
                    "type": "number",
                    "description": "Field `contingency_amount`.",
                    "minimum": 0
                  },
                  "currency": {
                    "type": "string",
                    "description": "Field `currency`.",
                    "maxLength": 10
                  },
                  "budget_year": {
                    "type": "integer",
                    "description": "Field `budget_year`.",
                    "minimum": 2000,
                    "maximum": 2099
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "details": {
                    "type": "array",
                    "description": "List of nested `details` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "item_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "category": {
                          "type": "string",
                          "description": "Field `details.*.category`.",
                          "maxLength": 100
                        },
                        "description": {
                          "type": "string",
                          "description": "Field `details.*.description`."
                        },
                        "planned_amount": {
                          "type": "number",
                          "description": "Field `details.*.planned_amount`."
                        }
                      },
                      "required": [
                        "category",
                        "description",
                        "planned_amount"
                      ]
                    }
                  }
                },
                "required": [
                  "project_id",
                  "company_id",
                  "budget_code",
                  "budget_name",
                  "total_budget",
                  "currency",
                  "details"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/budgets/{id}": {
      "get": {
        "tags": [
          "Budget Management"
        ],
        "summary": "Get Budgets Details",
        "description": "/** Display the specified budget detail with complete project information header. /",
        "operationId": "get_api_v1_budgets__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Budget Management"
        ],
        "summary": "Update Budgets",
        "description": "/** Update the specified budget in storage. /",
        "operationId": "put_api_v1_budgets__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `UpdateBudgetRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "budget_code": {
                    "type": "string",
                    "description": "Field `budget_code`.",
                    "maxLength": 100
                  },
                  "budget_name": {
                    "type": "string",
                    "description": "Field `budget_name`.",
                    "maxLength": 255
                  },
                  "total_budget": {
                    "type": "number",
                    "description": "Field `total_budget`.",
                    "minimum": 0
                  },
                  "contingency_amount": {
                    "type": "number",
                    "description": "Field `contingency_amount`.",
                    "minimum": 0
                  },
                  "currency": {
                    "type": "string",
                    "description": "Field `currency`.",
                    "maxLength": 10
                  },
                  "budget_year": {
                    "type": "integer",
                    "description": "Field `budget_year`.",
                    "minimum": 2000,
                    "maximum": 2099
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "details": {
                    "type": "array",
                    "description": "List of nested `details` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "item_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "category": {
                          "type": "string",
                          "description": "Field `details.*.category`.",
                          "maxLength": 100
                        },
                        "description": {
                          "type": "string",
                          "description": "Field `details.*.description`."
                        },
                        "planned_amount": {
                          "type": "number",
                          "description": "Field `details.*.planned_amount`."
                        }
                      },
                      "required": [
                        "category",
                        "description",
                        "planned_amount"
                      ]
                    }
                  }
                },
                "required": [
                  "budget_code",
                  "budget_name",
                  "total_budget",
                  "currency",
                  "details"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Budget Management"
        ],
        "summary": "Delete Budgets",
        "description": "/** Remove the specified budget from storage. /",
        "operationId": "delete_api_v1_budgets__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/budgets/{id}/approve": {
      "post": {
        "tags": [
          "Budget Management"
        ],
        "summary": "Approve Budgets",
        "description": "/** Approve the budget by management. /",
        "operationId": "post_api_v1_budgets__id__approve",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreBudgetRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "company_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_companies,id`.",
                    "example": 1
                  },
                  "budget_code": {
                    "type": "string",
                    "description": "Field `budget_code`.",
                    "maxLength": 100
                  },
                  "budget_name": {
                    "type": "string",
                    "description": "Field `budget_name`.",
                    "maxLength": 255
                  },
                  "total_budget": {
                    "type": "number",
                    "description": "Field `total_budget`.",
                    "minimum": 0
                  },
                  "contingency_amount": {
                    "type": "number",
                    "description": "Field `contingency_amount`.",
                    "minimum": 0
                  },
                  "currency": {
                    "type": "string",
                    "description": "Field `currency`.",
                    "maxLength": 10
                  },
                  "budget_year": {
                    "type": "integer",
                    "description": "Field `budget_year`.",
                    "minimum": 2000,
                    "maximum": 2099
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "details": {
                    "type": "array",
                    "description": "List of nested `details` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "item_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "category": {
                          "type": "string",
                          "description": "Field `details.*.category`.",
                          "maxLength": 100
                        },
                        "description": {
                          "type": "string",
                          "description": "Field `details.*.description`."
                        },
                        "planned_amount": {
                          "type": "number",
                          "description": "Field `details.*.planned_amount`."
                        }
                      },
                      "required": [
                        "category",
                        "description",
                        "planned_amount"
                      ]
                    }
                  }
                },
                "required": [
                  "project_id",
                  "company_id",
                  "budget_code",
                  "budget_name",
                  "total_budget",
                  "currency",
                  "details"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/business-entity-types": {
      "get": {
        "tags": [
          "Master - Business Entity Types"
        ],
        "summary": "List Business Entity Types",
        "description": "Retrieve paginated collection of `Business Entity Types` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_business_entity_types",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Master - Business Entity Types"
        ],
        "summary": "Create New Business Entity Types",
        "description": "Create and persist a new `Business Entity Types` transaction record.",
        "operationId": "post_api_v1_business_entity_types",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `BusinessEntityTypeRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "search": {
                    "type": "string",
                    "description": "Field `search`."
                  },
                  "page": {
                    "type": "integer",
                    "description": "Field `page`."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Field `limit`."
                  },
                  "sort": {
                    "type": "string",
                    "description": "Field `sort`."
                  },
                  "direction": {
                    "type": "string",
                    "description": "Field `direction`.",
                    "enum": [
                      "asc",
                      "desc"
                    ]
                  },
                  "code": {
                    "type": "string",
                    "description": "Field `code`.",
                    "maxLength": 100
                  },
                  "name": {
                    "type": "string",
                    "description": "Field `name`.",
                    "maxLength": 255
                  },
                  "ownership": {
                    "type": "string",
                    "description": "Field `ownership`.",
                    "maxLength": 100
                  },
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_business_entity_types,id`.",
                    "example": 1
                  },
                  "index": {
                    "type": "string",
                    "description": "Field `index`."
                  },
                  "store": {
                    "type": "string",
                    "description": "Field `store`."
                  },
                  "update": {
                    "type": "string",
                    "description": "Field `update`."
                  },
                  "deleteMany": {
                    "type": "string",
                    "description": "Field `deleteMany`."
                  }
                },
                "required": [
                  "code",
                  "name",
                  "ids"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/business-entity-types/delete-many": {
      "post": {
        "tags": [
          "Master - Business Entity Types"
        ],
        "summary": "Batch Delete Business Entity Types",
        "description": "Atomically delete multiple `Business Entity Types` records specified by list of identifiers.",
        "operationId": "post_api_v1_business_entity_types_delete_many",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `BusinessEntityTypeRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "search": {
                    "type": "string",
                    "description": "Field `search`."
                  },
                  "page": {
                    "type": "integer",
                    "description": "Field `page`."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Field `limit`."
                  },
                  "sort": {
                    "type": "string",
                    "description": "Field `sort`."
                  },
                  "direction": {
                    "type": "string",
                    "description": "Field `direction`.",
                    "enum": [
                      "asc",
                      "desc"
                    ]
                  },
                  "code": {
                    "type": "string",
                    "description": "Field `code`.",
                    "maxLength": 100
                  },
                  "name": {
                    "type": "string",
                    "description": "Field `name`.",
                    "maxLength": 255
                  },
                  "ownership": {
                    "type": "string",
                    "description": "Field `ownership`.",
                    "maxLength": 100
                  },
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_business_entity_types,id`.",
                    "example": 1
                  },
                  "index": {
                    "type": "string",
                    "description": "Field `index`."
                  },
                  "store": {
                    "type": "string",
                    "description": "Field `store`."
                  },
                  "update": {
                    "type": "string",
                    "description": "Field `update`."
                  },
                  "deleteMany": {
                    "type": "string",
                    "description": "Field `deleteMany`."
                  }
                },
                "required": [
                  "code",
                  "name",
                  "ids"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/business-entity-types/{id}": {
      "get": {
        "tags": [
          "Master - Business Entity Types"
        ],
        "summary": "Get Business Entity Types Details",
        "description": "Retrieve full detail representation for a single `Business Entity Types` resource by unique identifier.",
        "operationId": "get_api_v1_business_entity_types__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Master - Business Entity Types"
        ],
        "summary": "Update Business Entity Types",
        "description": "Update and persist changes for an existing `Business Entity Types` record.",
        "operationId": "put_api_v1_business_entity_types__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `BusinessEntityTypeRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "search": {
                    "type": "string",
                    "description": "Field `search`."
                  },
                  "page": {
                    "type": "integer",
                    "description": "Field `page`."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Field `limit`."
                  },
                  "sort": {
                    "type": "string",
                    "description": "Field `sort`."
                  },
                  "direction": {
                    "type": "string",
                    "description": "Field `direction`.",
                    "enum": [
                      "asc",
                      "desc"
                    ]
                  },
                  "code": {
                    "type": "string",
                    "description": "Field `code`.",
                    "maxLength": 100
                  },
                  "name": {
                    "type": "string",
                    "description": "Field `name`.",
                    "maxLength": 255
                  },
                  "ownership": {
                    "type": "string",
                    "description": "Field `ownership`.",
                    "maxLength": 100
                  },
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_business_entity_types,id`.",
                    "example": 1
                  },
                  "index": {
                    "type": "string",
                    "description": "Field `index`."
                  },
                  "store": {
                    "type": "string",
                    "description": "Field `store`."
                  },
                  "update": {
                    "type": "string",
                    "description": "Field `update`."
                  },
                  "deleteMany": {
                    "type": "string",
                    "description": "Field `deleteMany`."
                  }
                },
                "required": [
                  "code",
                  "name",
                  "ids"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Master - Business Entity Types"
        ],
        "summary": "Delete Business Entity Types",
        "description": "Permanently or soft-delete the specified `Business Entity Types` record.",
        "operationId": "delete_api_v1_business_entity_types__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/categories": {
      "get": {
        "tags": [
          "Master - Categories"
        ],
        "summary": "List Categories",
        "description": "Retrieve paginated collection of `Categories` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_categories",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Master - Categories"
        ],
        "summary": "Create New Categories",
        "description": "Create and persist a new `Categories` transaction record.",
        "operationId": "post_api_v1_categories",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `CategoryRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Field `ids.*`."
                  }
                },
                "required": [
                  "ids"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/categories/delete-many": {
      "post": {
        "tags": [
          "Master - Categories"
        ],
        "summary": "Batch Delete Categories",
        "description": "Atomically delete multiple `Categories` records specified by list of identifiers.",
        "operationId": "post_api_v1_categories_delete_many",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `CategoryRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Field `ids.*`."
                  }
                },
                "required": [
                  "ids"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/categories/{id}": {
      "get": {
        "tags": [
          "Master - Categories"
        ],
        "summary": "Get Categories Details",
        "description": "Retrieve full detail representation for a single `Categories` resource by unique identifier.",
        "operationId": "get_api_v1_categories__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Master - Categories"
        ],
        "summary": "Update Categories",
        "description": "Update and persist changes for an existing `Categories` record.",
        "operationId": "put_api_v1_categories__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `CategoryRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Field `ids.*`."
                  }
                },
                "required": [
                  "ids"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Master - Categories"
        ],
        "summary": "Delete Categories",
        "description": "Permanently or soft-delete the specified `Categories` record.",
        "operationId": "delete_api_v1_categories__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/cbt": {
      "get": {
        "tags": [
          "Commercial Bid Tabulation"
        ],
        "summary": "List Cbt",
        "description": "/** Display a paginated listing of Commercial Bid Tabulations. /",
        "operationId": "get_api_v1_cbt",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/cbt/init": {
      "post": {
        "tags": [
          "Commercial Bid Tabulation"
        ],
        "summary": "Create New Cbt",
        "description": "/** Initialize Commercial Bid Tabulation records for a project. /",
        "operationId": "post_api_v1_cbt_init",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `InitCommercialEvalRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  }
                },
                "required": [
                  "project_id"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/cbt/matrix/{mrId}": {
      "get": {
        "tags": [
          "Commercial Bid Tabulation"
        ],
        "summary": "Get Cbt Details",
        "description": "/** Get aggregate matrix comparison data for a Material Requisition. /",
        "operationId": "get_api_v1_cbt_matrix__mrId_",
        "parameters": [
          {
            "name": "mrId",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `mrId`.",
            "schema": {
              "type": "string",
              "example": "PRJ-001"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/cbt/nego/{negoId}/review": {
      "put": {
        "tags": [
          "Commercial Bid Tabulation"
        ],
        "summary": "Update Cbt",
        "description": "/** Review a commercial negotiation round offer. /",
        "operationId": "put_api_v1_cbt_nego__negoId__review",
        "parameters": [
          {
            "name": "negoId",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `negoId`.",
            "schema": {
              "type": "string",
              "example": "PRJ-001"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `ReviewCommercialNegoRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "counter_price": {
                    "type": "number",
                    "description": "Field `counter_price`.",
                    "minimum": 0
                  },
                  "remarks": {
                    "type": "string",
                    "description": "Field `remarks`.",
                    "minLength": 5,
                    "maxLength": 1000
                  },
                  "docs": {
                    "type": "array",
                    "description": "Field `docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "docs.*": {
                    "type": "string",
                    "description": "Binary file upload for `docs.*`.",
                    "format": "binary",
                    "maxLength": 20480
                  }
                },
                "required": [
                  "status"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/cbt/{id}": {
      "get": {
        "tags": [
          "Commercial Bid Tabulation"
        ],
        "summary": "Get Cbt Details",
        "description": "/** Display the specified Commercial Bid Tabulation detail. /",
        "operationId": "get_api_v1_cbt__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/cbt/{id}/review": {
      "put": {
        "tags": [
          "Commercial Bid Tabulation"
        ],
        "summary": "Update Cbt",
        "description": "/** Review a commercial tabulation directly. /",
        "operationId": "put_api_v1_cbt__id__review",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `ReviewCommercialNegoRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "counter_price": {
                    "type": "number",
                    "description": "Field `counter_price`.",
                    "minimum": 0
                  },
                  "remarks": {
                    "type": "string",
                    "description": "Field `remarks`.",
                    "minLength": 5,
                    "maxLength": 1000
                  },
                  "docs": {
                    "type": "array",
                    "description": "Field `docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "docs.*": {
                    "type": "string",
                    "description": "Binary file upload for `docs.*`.",
                    "format": "binary",
                    "maxLength": 20480
                  }
                },
                "required": [
                  "status"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/cbt/{id}/submit-nego": {
      "post": {
        "tags": [
          "Commercial Bid Tabulation"
        ],
        "summary": "Create New Cbt",
        "description": "/** Submit a commercial negotiation round offer. /",
        "operationId": "post_api_v1_cbt__id__submit_nego",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `SubmitCommercialNegoRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "price": {
                    "type": "number",
                    "description": "Field `price`.",
                    "minimum": 0
                  },
                  "currency": {
                    "type": "string",
                    "description": "Field `currency`.",
                    "maxLength": 10
                  },
                  "remarks": {
                    "type": "string",
                    "description": "Field `remarks`.",
                    "maxLength": 1000
                  },
                  "docs": {
                    "type": "array",
                    "description": "Field `docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "docs.*": {
                    "type": "string",
                    "description": "File attachment (pdf,doc,docx,xls,xlsx,zip,rar,jpg,jpeg,png).",
                    "format": "binary",
                    "maxLength": 20480
                  }
                },
                "required": [
                  "price"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/commercial-bids": {
      "get": {
        "tags": [
          "Commercial Bid Tabulation"
        ],
        "summary": "List Commercial Bids",
        "description": "/** Display a paginated listing of commercial bidding sessions. /",
        "operationId": "get_api_v1_commercial_bids",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/commercial-bids/activate": {
      "post": {
        "tags": [
          "Commercial Bid Tabulation"
        ],
        "summary": "Create New Commercial Bids",
        "description": "/** Activate a commercial bidding session. /",
        "operationId": "post_api_v1_commercial_bids_activate",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `ActivateCommercialBidRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "deadline": {
                    "type": "string",
                    "description": "Field `deadline`.",
                    "format": "date",
                    "example": "2026-03-25"
                  }
                },
                "required": [
                  "project_id"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/commercial-bids/pending": {
      "get": {
        "tags": [
          "Commercial Bid Tabulation"
        ],
        "summary": "List Pending Commercial Bids",
        "description": "/** Display pending commercial bidding sessions. /",
        "operationId": "get_api_v1_commercial_bids_pending",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/commercial-bids/submit": {
      "post": {
        "tags": [
          "Commercial Bid Tabulation"
        ],
        "summary": "Create New Commercial Bids",
        "description": "Create and persist a new `Commercial Bids` transaction record.",
        "operationId": "post_api_v1_commercial_bids_submit",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload for `Create New Commercial Bids`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/commercial-bids/{code}/own-submissions": {
      "get": {
        "tags": [
          "Commercial Bid Tabulation"
        ],
        "summary": "Get Commercial Bids Details",
        "description": "Retrieve full detail representation for a single `Commercial Bids` resource by unique identifier.",
        "operationId": "get_api_v1_commercial_bids__code__own_submissions",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `code`.",
            "schema": {
              "type": "string",
              "example": "PRJ-001"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/commercial-bids/{code}/rankings": {
      "get": {
        "tags": [
          "Commercial Bid Tabulation"
        ],
        "summary": "Get Commercial Bids Details",
        "description": "Retrieve full detail representation for a single `Commercial Bids` resource by unique identifier.",
        "operationId": "get_api_v1_commercial_bids__code__rankings",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `code`.",
            "schema": {
              "type": "string",
              "example": "PRJ-001"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/commercial-bids/{code}/realtime": {
      "get": {
        "tags": [
          "Commercial Bid Tabulation"
        ],
        "summary": "Get Commercial Bids Details",
        "description": "Retrieve full detail representation for a single `Commercial Bids` resource by unique identifier.",
        "operationId": "get_api_v1_commercial_bids__code__realtime",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `code`.",
            "schema": {
              "type": "string",
              "example": "PRJ-001"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/commercial-bids/{code}/submissions": {
      "get": {
        "tags": [
          "Commercial Bid Tabulation"
        ],
        "summary": "Get Commercial Bids Details",
        "description": "Retrieve full detail representation for a single `Commercial Bids` resource by unique identifier.",
        "operationId": "get_api_v1_commercial_bids__code__submissions",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `code`.",
            "schema": {
              "type": "string",
              "example": "PRJ-001"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/commercial-bids/{id}": {
      "get": {
        "tags": [
          "Commercial Bid Tabulation"
        ],
        "summary": "Get Commercial Bids Details",
        "description": "/** Display the specified commercial bidding session. /",
        "operationId": "get_api_v1_commercial_bids__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/companies": {
      "get": {
        "tags": [
          "Master - Companies"
        ],
        "summary": "List Companies",
        "description": "Retrieve paginated collection of `Companies` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_companies",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Master - Companies"
        ],
        "summary": "Create New Companies",
        "description": "Create and persist a new `Companies` transaction record.",
        "operationId": "post_api_v1_companies",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload for `Create New Companies`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/companies/{id}": {
      "get": {
        "tags": [
          "Master - Companies"
        ],
        "summary": "Get Companies Details",
        "description": "Retrieve full detail representation for a single `Companies` resource by unique identifier.",
        "operationId": "get_api_v1_companies__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Master - Companies"
        ],
        "summary": "Update Companies",
        "description": "Update and persist changes for an existing `Companies` record.",
        "operationId": "put_api_v1_companies__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `CompanyRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "search": {
                    "type": "string",
                    "description": "Field `search`."
                  },
                  "page": {
                    "type": "integer",
                    "description": "Field `page`."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Field `limit`."
                  },
                  "sort": {
                    "type": "string",
                    "description": "Field `sort`."
                  },
                  "direction": {
                    "type": "string",
                    "description": "Field `direction`.",
                    "enum": [
                      "asc",
                      "desc"
                    ]
                  },
                  "is_active": {
                    "type": "boolean",
                    "description": "Field `is_active`."
                  },
                  "company_code": {
                    "type": "string",
                    "description": "Field `company_code`.",
                    "maxLength": 255
                  },
                  "company_name": {
                    "type": "string",
                    "description": "Field `company_name`.",
                    "maxLength": 255
                  },
                  "address": {
                    "type": "string",
                    "description": "Field `address`."
                  },
                  "phone": {
                    "type": "string",
                    "description": "Field `phone`.",
                    "maxLength": 255
                  },
                  "email": {
                    "type": "string",
                    "description": "Field `email`.",
                    "format": "email",
                    "maxLength": 255
                  },
                  "index": {
                    "type": "string",
                    "description": "Field `index`."
                  },
                  "store": {
                    "type": "string",
                    "description": "Field `store`.",
                    "format": "email"
                  },
                  "update": {
                    "type": "string",
                    "description": "Field `update`.",
                    "format": "email"
                  }
                },
                "required": [
                  "company_code",
                  "company_name"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Master - Companies"
        ],
        "summary": "Delete Companies",
        "description": "Permanently or soft-delete the specified `Companies` record.",
        "operationId": "delete_api_v1_companies__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/construction-material-requests": {
      "get": {
        "tags": [
          "Construction Material Request"
        ],
        "summary": "List Construction Material Requests",
        "description": "Retrieve paginated collection of `Construction Material Requests` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_construction_material_requests",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Construction Material Request"
        ],
        "summary": "Create New Construction Material Requests",
        "description": "Create and persist a new `Construction Material Requests` transaction record.",
        "operationId": "post_api_v1_construction_material_requests",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreCMRRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_construction_material_requests,id`.",
                    "example": 1
                  },
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "request_number": {
                    "type": "string",
                    "description": "Field `request_number`.",
                    "maxLength": 100
                  },
                  "request_date": {
                    "type": "string",
                    "description": "Field `request_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "requested_by": {
                    "type": "integer",
                    "description": "Foreign key referencing `users,id`."
                  },
                  "purpose": {
                    "type": "string",
                    "description": "Field `purpose`."
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`.",
                    "enum": [
                      "draft",
                      "submitted",
                      "approved",
                      "rejected"
                    ]
                  },
                  "material_list_path": {
                    "type": "string",
                    "description": "Field `material_list_path`."
                  },
                  "issued_list_path": {
                    "type": "string",
                    "description": "Field `issued_list_path`."
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "details": {
                    "type": "array",
                    "description": "List of nested `details` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "item_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "quantity_requested": {
                          "type": "number",
                          "description": "Field `details.*.quantity_requested`."
                        },
                        "quantity_issued": {
                          "type": "number",
                          "description": "Field `details.*.quantity_issued`.",
                          "minimum": 0
                        },
                        "unit_of_measure": {
                          "type": "string",
                          "description": "Field `details.*.unit_of_measure`.",
                          "maxLength": 50
                        },
                        "notes": {
                          "type": "string",
                          "description": "Field `details.*.notes`."
                        }
                      },
                      "required": []
                    }
                  }
                },
                "required": [
                  "project_id",
                  "request_number",
                  "request_date"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/construction-material-requests/{id}": {
      "get": {
        "tags": [
          "Construction Material Request"
        ],
        "summary": "Get Construction Material Requests Details",
        "description": "Retrieve full detail representation for a single `Construction Material Requests` resource by unique identifier.",
        "operationId": "get_api_v1_construction_material_requests__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/construction-progress": {
      "get": {
        "tags": [
          "Construction Progress Report"
        ],
        "summary": "List Construction Progress",
        "description": "Retrieve paginated collection of `Construction Progress` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_construction_progress",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Construction Progress Report"
        ],
        "summary": "Create New Construction Progress",
        "description": "Create and persist a new `Construction Progress` transaction record.",
        "operationId": "post_api_v1_construction_progress",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreConstructionProgressRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_construction_progress_reports,id`.",
                    "example": 1
                  },
                  "construction_material_request_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_construction_material_requests,id`.",
                    "example": 1
                  },
                  "report_number": {
                    "type": "string",
                    "description": "Field `report_number`.",
                    "maxLength": 100
                  },
                  "report_date": {
                    "type": "string",
                    "description": "Field `report_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "progress_percent": {
                    "type": "number",
                    "description": "Field `progress_percent`."
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`.",
                    "minLength": 5
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`.",
                    "enum": [
                      "draft",
                      "submitted",
                      "approved",
                      "rejected"
                    ]
                  },
                  "docs": {
                    "type": "array",
                    "description": "Field `docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "docs.*": {
                    "type": "string",
                    "description": "Binary file upload for `docs.*`.",
                    "format": "binary",
                    "maxLength": 20480
                  },
                  "deleted_doc_ids": {
                    "type": "array",
                    "description": "Field `deleted_doc_ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "deleted_doc_ids.*": {
                    "type": "integer",
                    "description": "Field `deleted_doc_ids.*`."
                  }
                },
                "required": [
                  "construction_material_request_id",
                  "report_number",
                  "report_date",
                  "progress_percent"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/construction-progress/pending": {
      "get": {
        "tags": [
          "Construction Progress Report"
        ],
        "summary": "List Pending Construction Progress",
        "description": "Fetch all pending `Construction Progress` records awaiting review or authorization.",
        "operationId": "get_api_v1_construction_progress_pending",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/construction-progress/{id}": {
      "get": {
        "tags": [
          "Construction Progress Report"
        ],
        "summary": "Get Construction Progress Details",
        "description": "Retrieve full detail representation for a single `Construction Progress` resource by unique identifier.",
        "operationId": "get_api_v1_construction_progress__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/contracts": {
      "get": {
        "tags": [
          "Contract"
        ],
        "summary": "List Contracts",
        "description": "Retrieve paginated collection of `Contracts` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_contracts",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Contract"
        ],
        "summary": "Create New Contracts",
        "description": "Create and persist a new `Contracts` transaction record.",
        "operationId": "post_api_v1_contracts",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreContractRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  },
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "vendor_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendors,id`.",
                    "example": 1
                  },
                  "incoterm_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_incoterms,id`.",
                    "example": 1
                  },
                  "incoterm_location": {
                    "type": "string",
                    "description": "Field `incoterm_location`.",
                    "maxLength": 255
                  },
                  "term_of_payment": {
                    "type": "string",
                    "description": "Field `term_of_payment`.",
                    "maxLength": 1000
                  },
                  "start_date": {
                    "type": "string",
                    "description": "Field `start_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "end_date": {
                    "type": "string",
                    "description": "Field `end_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "total_value": {
                    "type": "number",
                    "description": "Field `total_value`.",
                    "minimum": 0
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "is_submit": {
                    "type": "boolean",
                    "description": "Field `is_submit`."
                  },
                  "signed_at": {
                    "type": "string",
                    "description": "Field `signed_at`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "signed_by_vendor_at": {
                    "type": "string",
                    "description": "Field `signed_by_vendor_at`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "items": {
                    "type": "array",
                    "description": "List of nested `items` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "material_requisition_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `t_material_requisitions,id`.",
                          "example": 1
                        },
                        "mr_material_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `t_material_requisition_materials,id`.",
                          "example": 1
                        },
                        "quantity": {
                          "type": "number",
                          "description": "Field `items.*.quantity`."
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `items.*.unit_price`.",
                          "minimum": 0
                        },
                        "currency": {
                          "type": "string",
                          "description": "Field `items.*.currency`.",
                          "maxLength": 10
                        },
                        "subtotal": {
                          "type": "number",
                          "description": "Field `items.*.subtotal`.",
                          "minimum": 0
                        }
                      },
                      "required": []
                    }
                  },
                  "docs": {
                    "type": "array",
                    "description": "Field `docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "docs.*": {
                    "type": "string",
                    "description": "Binary file upload for `docs.*`.",
                    "format": "binary",
                    "maxLength": 20480
                  },
                  "deleted_docs": {
                    "type": "array",
                    "description": "Field `deleted_docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "deleted_docs.*": {
                    "type": "integer",
                    "description": "Field `deleted_docs.*`."
                  }
                },
                "required": [
                  "number",
                  "project_id",
                  "vendor_id"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/contracts/{id}": {
      "get": {
        "tags": [
          "Contract"
        ],
        "summary": "Get Contracts Details",
        "description": "Retrieve full detail representation for a single `Contracts` resource by unique identifier.",
        "operationId": "get_api_v1_contracts__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Contract"
        ],
        "summary": "Update Contracts",
        "description": "Update and persist changes for an existing `Contracts` record.",
        "operationId": "put_api_v1_contracts__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreContractRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  },
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "vendor_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendors,id`.",
                    "example": 1
                  },
                  "incoterm_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_incoterms,id`.",
                    "example": 1
                  },
                  "incoterm_location": {
                    "type": "string",
                    "description": "Field `incoterm_location`.",
                    "maxLength": 255
                  },
                  "term_of_payment": {
                    "type": "string",
                    "description": "Field `term_of_payment`.",
                    "maxLength": 1000
                  },
                  "start_date": {
                    "type": "string",
                    "description": "Field `start_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "end_date": {
                    "type": "string",
                    "description": "Field `end_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "total_value": {
                    "type": "number",
                    "description": "Field `total_value`.",
                    "minimum": 0
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "is_submit": {
                    "type": "boolean",
                    "description": "Field `is_submit`."
                  },
                  "signed_at": {
                    "type": "string",
                    "description": "Field `signed_at`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "signed_by_vendor_at": {
                    "type": "string",
                    "description": "Field `signed_by_vendor_at`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "items": {
                    "type": "array",
                    "description": "List of nested `items` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "material_requisition_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `t_material_requisitions,id`.",
                          "example": 1
                        },
                        "mr_material_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `t_material_requisition_materials,id`.",
                          "example": 1
                        },
                        "quantity": {
                          "type": "number",
                          "description": "Field `items.*.quantity`."
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `items.*.unit_price`.",
                          "minimum": 0
                        },
                        "currency": {
                          "type": "string",
                          "description": "Field `items.*.currency`.",
                          "maxLength": 10
                        },
                        "subtotal": {
                          "type": "number",
                          "description": "Field `items.*.subtotal`.",
                          "minimum": 0
                        }
                      },
                      "required": []
                    }
                  },
                  "docs": {
                    "type": "array",
                    "description": "Field `docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "docs.*": {
                    "type": "string",
                    "description": "Binary file upload for `docs.*`.",
                    "format": "binary",
                    "maxLength": 20480
                  },
                  "deleted_docs": {
                    "type": "array",
                    "description": "Field `deleted_docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "deleted_docs.*": {
                    "type": "integer",
                    "description": "Field `deleted_docs.*`."
                  }
                },
                "required": [
                  "number",
                  "project_id",
                  "vendor_id"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/contracts/{id}/approve": {
      "post": {
        "tags": [
          "Contract"
        ],
        "summary": "Approve Contracts",
        "description": "Execute formal approval workflow transition for `Contracts`.",
        "operationId": "post_api_v1_contracts__id__approve",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreContractRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  },
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "vendor_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendors,id`.",
                    "example": 1
                  },
                  "incoterm_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_incoterms,id`.",
                    "example": 1
                  },
                  "incoterm_location": {
                    "type": "string",
                    "description": "Field `incoterm_location`.",
                    "maxLength": 255
                  },
                  "term_of_payment": {
                    "type": "string",
                    "description": "Field `term_of_payment`.",
                    "maxLength": 1000
                  },
                  "start_date": {
                    "type": "string",
                    "description": "Field `start_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "end_date": {
                    "type": "string",
                    "description": "Field `end_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "total_value": {
                    "type": "number",
                    "description": "Field `total_value`.",
                    "minimum": 0
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "is_submit": {
                    "type": "boolean",
                    "description": "Field `is_submit`."
                  },
                  "signed_at": {
                    "type": "string",
                    "description": "Field `signed_at`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "signed_by_vendor_at": {
                    "type": "string",
                    "description": "Field `signed_by_vendor_at`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "items": {
                    "type": "array",
                    "description": "List of nested `items` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "material_requisition_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `t_material_requisitions,id`.",
                          "example": 1
                        },
                        "mr_material_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `t_material_requisition_materials,id`.",
                          "example": 1
                        },
                        "quantity": {
                          "type": "number",
                          "description": "Field `items.*.quantity`."
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `items.*.unit_price`.",
                          "minimum": 0
                        },
                        "currency": {
                          "type": "string",
                          "description": "Field `items.*.currency`.",
                          "maxLength": 10
                        },
                        "subtotal": {
                          "type": "number",
                          "description": "Field `items.*.subtotal`.",
                          "minimum": 0
                        }
                      },
                      "required": []
                    }
                  },
                  "docs": {
                    "type": "array",
                    "description": "Field `docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "docs.*": {
                    "type": "string",
                    "description": "Binary file upload for `docs.*`.",
                    "format": "binary",
                    "maxLength": 20480
                  },
                  "deleted_docs": {
                    "type": "array",
                    "description": "Field `deleted_docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "deleted_docs.*": {
                    "type": "integer",
                    "description": "Field `deleted_docs.*`."
                  }
                },
                "required": [
                  "number",
                  "project_id",
                  "vendor_id"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/contracts/{id}/reject": {
      "post": {
        "tags": [
          "Contract"
        ],
        "summary": "Reject Contracts",
        "description": "Reject `Contracts` submission with revision notes.",
        "operationId": "post_api_v1_contracts__id__reject",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `RejectContractRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`.",
                    "maxLength": 1000
                  }
                },
                "required": [
                  "notes"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/currencies": {
      "get": {
        "tags": [
          "Master - Currencies"
        ],
        "summary": "List Currencies",
        "description": "Retrieve paginated collection of `Currencies` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_currencies",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/currencies/{id}": {
      "get": {
        "tags": [
          "Master - Currencies"
        ],
        "summary": "Get Currencies Details",
        "description": "Retrieve full detail representation for a single `Currencies` resource by unique identifier.",
        "operationId": "get_api_v1_currencies__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Master - Currencies"
        ],
        "summary": "Update Currencies",
        "description": "Update and persist changes for an existing `Currencies` record.",
        "operationId": "put_api_v1_currencies__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload for `Update Currencies`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/dashboard/action-needed-counts": {
      "get": {
        "tags": [
          "Dashboard & Analytics"
        ],
        "summary": "List Dashboard",
        "description": "Retrieve paginated collection of `Dashboard` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_dashboard_action_needed_counts",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/dashboard/process-summary": {
      "get": {
        "tags": [
          "Dashboard & Analytics"
        ],
        "summary": "List Dashboard",
        "description": "Retrieve paginated collection of `Dashboard` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_dashboard_process_summary",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/departments": {
      "get": {
        "tags": [
          "Departments"
        ],
        "summary": "List Departments",
        "description": "Retrieve paginated collection of `Departments` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_departments",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Departments"
        ],
        "summary": "Create New Departments",
        "description": "Create and persist a new `Departments` transaction record.",
        "operationId": "post_api_v1_departments",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `DepartmentRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "search": {
                    "type": "string",
                    "description": "Field `search`."
                  },
                  "page": {
                    "type": "integer",
                    "description": "Field `page`."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Field `limit`."
                  },
                  "sort": {
                    "type": "string",
                    "description": "Field `sort`."
                  },
                  "direction": {
                    "type": "string",
                    "description": "Field `direction`.",
                    "enum": [
                      "asc",
                      "desc"
                    ]
                  },
                  "company_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_companies,id`.",
                    "example": 1
                  },
                  "code": {
                    "type": "string",
                    "description": "Field `code`.",
                    "maxLength": 100
                  },
                  "name": {
                    "type": "string",
                    "description": "Field `name`.",
                    "maxLength": 255
                  },
                  "description": {
                    "type": "string",
                    "description": "Field `description`."
                  },
                  "is_admin": {
                    "type": "boolean",
                    "description": "Field `is_admin`."
                  },
                  "allow_vms": {
                    "type": "boolean",
                    "description": "Field `allow_vms`."
                  },
                  "allow_proc": {
                    "type": "boolean",
                    "description": "Field `allow_proc`."
                  },
                  "permissions": {
                    "type": "array",
                    "description": "List of nested `permissions` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "module_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_modules,id`.",
                          "example": 1
                        },
                        "read": {
                          "type": "boolean",
                          "description": "Field `permissions.*.read`."
                        },
                        "creator": {
                          "type": "boolean",
                          "description": "Field `permissions.*.creator`."
                        },
                        "editor": {
                          "type": "boolean",
                          "description": "Field `permissions.*.editor`."
                        },
                        "reviewer": {
                          "type": "boolean",
                          "description": "Field `permissions.*.reviewer`."
                        },
                        "approve_1": {
                          "type": "boolean",
                          "description": "Field `permissions.*.approve_1`."
                        },
                        "approve_2": {
                          "type": "boolean",
                          "description": "Field `permissions.*.approve_2`."
                        },
                        "upload": {
                          "type": "boolean",
                          "description": "Field `permissions.*.upload`."
                        },
                        "download": {
                          "type": "boolean",
                          "description": "Field `permissions.*.download`."
                        },
                        "delete": {
                          "type": "boolean",
                          "description": "Field `permissions.*.delete`."
                        }
                      },
                      "required": []
                    }
                  },
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_departments,id`.",
                    "example": 1
                  },
                  "index": {
                    "type": "string",
                    "description": "Field `index`."
                  },
                  "store": {
                    "type": "string",
                    "description": "Field `store`."
                  },
                  "update": {
                    "type": "string",
                    "description": "Field `update`."
                  },
                  "deleteMany": {
                    "type": "string",
                    "description": "Field `deleteMany`."
                  }
                },
                "required": [
                  "name",
                  "is_admin",
                  "allow_vms",
                  "allow_proc",
                  "ids"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/departments/delete-many": {
      "post": {
        "tags": [
          "Departments"
        ],
        "summary": "Batch Delete Departments",
        "description": "Atomically delete multiple `Departments` records specified by list of identifiers.",
        "operationId": "post_api_v1_departments_delete_many",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `DepartmentRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "search": {
                    "type": "string",
                    "description": "Field `search`."
                  },
                  "page": {
                    "type": "integer",
                    "description": "Field `page`."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Field `limit`."
                  },
                  "sort": {
                    "type": "string",
                    "description": "Field `sort`."
                  },
                  "direction": {
                    "type": "string",
                    "description": "Field `direction`.",
                    "enum": [
                      "asc",
                      "desc"
                    ]
                  },
                  "company_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_companies,id`.",
                    "example": 1
                  },
                  "code": {
                    "type": "string",
                    "description": "Field `code`.",
                    "maxLength": 100
                  },
                  "name": {
                    "type": "string",
                    "description": "Field `name`.",
                    "maxLength": 255
                  },
                  "description": {
                    "type": "string",
                    "description": "Field `description`."
                  },
                  "is_admin": {
                    "type": "boolean",
                    "description": "Field `is_admin`."
                  },
                  "allow_vms": {
                    "type": "boolean",
                    "description": "Field `allow_vms`."
                  },
                  "allow_proc": {
                    "type": "boolean",
                    "description": "Field `allow_proc`."
                  },
                  "permissions": {
                    "type": "array",
                    "description": "List of nested `permissions` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "module_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_modules,id`.",
                          "example": 1
                        },
                        "read": {
                          "type": "boolean",
                          "description": "Field `permissions.*.read`."
                        },
                        "creator": {
                          "type": "boolean",
                          "description": "Field `permissions.*.creator`."
                        },
                        "editor": {
                          "type": "boolean",
                          "description": "Field `permissions.*.editor`."
                        },
                        "reviewer": {
                          "type": "boolean",
                          "description": "Field `permissions.*.reviewer`."
                        },
                        "approve_1": {
                          "type": "boolean",
                          "description": "Field `permissions.*.approve_1`."
                        },
                        "approve_2": {
                          "type": "boolean",
                          "description": "Field `permissions.*.approve_2`."
                        },
                        "upload": {
                          "type": "boolean",
                          "description": "Field `permissions.*.upload`."
                        },
                        "download": {
                          "type": "boolean",
                          "description": "Field `permissions.*.download`."
                        },
                        "delete": {
                          "type": "boolean",
                          "description": "Field `permissions.*.delete`."
                        }
                      },
                      "required": []
                    }
                  },
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_departments,id`.",
                    "example": 1
                  },
                  "index": {
                    "type": "string",
                    "description": "Field `index`."
                  },
                  "store": {
                    "type": "string",
                    "description": "Field `store`."
                  },
                  "update": {
                    "type": "string",
                    "description": "Field `update`."
                  },
                  "deleteMany": {
                    "type": "string",
                    "description": "Field `deleteMany`."
                  }
                },
                "required": [
                  "name",
                  "is_admin",
                  "allow_vms",
                  "allow_proc",
                  "ids"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/departments/modules": {
      "get": {
        "tags": [
          "Departments"
        ],
        "summary": "List Departments",
        "description": "Retrieve paginated collection of `Departments` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_departments_modules",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/departments/{id}": {
      "get": {
        "tags": [
          "Departments"
        ],
        "summary": "Get Departments Details",
        "description": "Retrieve full detail representation for a single `Departments` resource by unique identifier.",
        "operationId": "get_api_v1_departments__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Departments"
        ],
        "summary": "Update Departments",
        "description": "Update and persist changes for an existing `Departments` record.",
        "operationId": "put_api_v1_departments__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `DepartmentRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "search": {
                    "type": "string",
                    "description": "Field `search`."
                  },
                  "page": {
                    "type": "integer",
                    "description": "Field `page`."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Field `limit`."
                  },
                  "sort": {
                    "type": "string",
                    "description": "Field `sort`."
                  },
                  "direction": {
                    "type": "string",
                    "description": "Field `direction`.",
                    "enum": [
                      "asc",
                      "desc"
                    ]
                  },
                  "company_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_companies,id`.",
                    "example": 1
                  },
                  "code": {
                    "type": "string",
                    "description": "Field `code`.",
                    "maxLength": 100
                  },
                  "name": {
                    "type": "string",
                    "description": "Field `name`.",
                    "maxLength": 255
                  },
                  "description": {
                    "type": "string",
                    "description": "Field `description`."
                  },
                  "is_admin": {
                    "type": "boolean",
                    "description": "Field `is_admin`."
                  },
                  "allow_vms": {
                    "type": "boolean",
                    "description": "Field `allow_vms`."
                  },
                  "allow_proc": {
                    "type": "boolean",
                    "description": "Field `allow_proc`."
                  },
                  "permissions": {
                    "type": "array",
                    "description": "List of nested `permissions` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "module_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_modules,id`.",
                          "example": 1
                        },
                        "read": {
                          "type": "boolean",
                          "description": "Field `permissions.*.read`."
                        },
                        "creator": {
                          "type": "boolean",
                          "description": "Field `permissions.*.creator`."
                        },
                        "editor": {
                          "type": "boolean",
                          "description": "Field `permissions.*.editor`."
                        },
                        "reviewer": {
                          "type": "boolean",
                          "description": "Field `permissions.*.reviewer`."
                        },
                        "approve_1": {
                          "type": "boolean",
                          "description": "Field `permissions.*.approve_1`."
                        },
                        "approve_2": {
                          "type": "boolean",
                          "description": "Field `permissions.*.approve_2`."
                        },
                        "upload": {
                          "type": "boolean",
                          "description": "Field `permissions.*.upload`."
                        },
                        "download": {
                          "type": "boolean",
                          "description": "Field `permissions.*.download`."
                        },
                        "delete": {
                          "type": "boolean",
                          "description": "Field `permissions.*.delete`."
                        }
                      },
                      "required": []
                    }
                  },
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_departments,id`.",
                    "example": 1
                  },
                  "index": {
                    "type": "string",
                    "description": "Field `index`."
                  },
                  "store": {
                    "type": "string",
                    "description": "Field `store`."
                  },
                  "update": {
                    "type": "string",
                    "description": "Field `update`."
                  },
                  "deleteMany": {
                    "type": "string",
                    "description": "Field `deleteMany`."
                  }
                },
                "required": [
                  "name",
                  "is_admin",
                  "allow_vms",
                  "allow_proc",
                  "ids"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Departments"
        ],
        "summary": "Delete Departments",
        "description": "Permanently or soft-delete the specified `Departments` record.",
        "operationId": "delete_api_v1_departments__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/document-distributions": {
      "post": {
        "tags": [
          "Vendor Document"
        ],
        "summary": "Create New Document Distributions",
        "description": "Create and persist a new `Document Distributions` transaction record.",
        "operationId": "post_api_v1_document_distributions",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreDocumentDistributionRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "mr_document_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_material_requisition_documents,id`.",
                    "example": 1
                  },
                  "mr_document_ids": {
                    "type": "array",
                    "description": "Field `mr_document_ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "mr_document_ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_material_requisition_documents,id`.",
                    "example": 1
                  },
                  "department_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_departments,id`.",
                    "example": 1
                  },
                  "remarks": {
                    "type": "string",
                    "description": "Field `remarks`."
                  }
                },
                "required": [
                  "department_id"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/document-distributions/forward-all": {
      "post": {
        "tags": [
          "Vendor Document"
        ],
        "summary": "Create New Document Distributions",
        "description": "Create and persist a new `Document Distributions` transaction record.",
        "operationId": "post_api_v1_document_distributions_forward_all",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreDocumentDistributionRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "mr_document_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_material_requisition_documents,id`.",
                    "example": 1
                  },
                  "mr_document_ids": {
                    "type": "array",
                    "description": "Field `mr_document_ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "mr_document_ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_material_requisition_documents,id`.",
                    "example": 1
                  },
                  "department_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_departments,id`.",
                    "example": 1
                  },
                  "remarks": {
                    "type": "string",
                    "description": "Field `remarks`."
                  }
                },
                "required": [
                  "department_id"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/document-distributions/{docId}": {
      "get": {
        "tags": [
          "Vendor Document"
        ],
        "summary": "Get Document Distributions Details",
        "description": "Retrieve full detail representation for a single `Document Distributions` resource by unique identifier.",
        "operationId": "get_api_v1_document_distributions__docId_",
        "parameters": [
          {
            "name": "docId",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `docId`.",
            "schema": {
              "type": "string",
              "example": "PRJ-001"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/dropdown/business-entity-types": {
      "get": {
        "tags": [
          "Master - Dropdowns"
        ],
        "summary": "List Dropdown",
        "description": "Retrieve paginated collection of `Dropdown` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_dropdown_business_entity_types",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/v1/dropdown/categories": {
      "get": {
        "tags": [
          "Master - Dropdowns"
        ],
        "summary": "List Dropdown",
        "description": "Retrieve paginated collection of `Dropdown` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_dropdown_categories",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/v1/dropdown/currencies": {
      "get": {
        "tags": [
          "Master - Dropdowns"
        ],
        "summary": "List Dropdown",
        "description": "Retrieve paginated collection of `Dropdown` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_dropdown_currencies",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/v1/dropdown/departments": {
      "get": {
        "tags": [
          "Master - Dropdowns"
        ],
        "summary": "List Dropdown",
        "description": "Retrieve paginated collection of `Dropdown` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_dropdown_departments",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/v1/dropdown/kbli": {
      "get": {
        "tags": [
          "Master - Dropdowns"
        ],
        "summary": "List Dropdown",
        "description": "Retrieve paginated collection of `Dropdown` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_dropdown_kbli",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/v1/dropdown/locations": {
      "get": {
        "tags": [
          "Master - Dropdowns"
        ],
        "summary": "List Dropdown",
        "description": "Retrieve paginated collection of `Dropdown` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_dropdown_locations",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/v1/dropdown/procurement-methods": {
      "get": {
        "tags": [
          "Master - Dropdowns"
        ],
        "summary": "List Dropdown",
        "description": "Retrieve paginated collection of `Dropdown` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_dropdown_procurement_methods",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/v1/dropdown/vendor-sub-categories": {
      "get": {
        "tags": [
          "Master - Dropdowns"
        ],
        "summary": "List Dropdown",
        "description": "Retrieve paginated collection of `Dropdown` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_dropdown_vendor_sub_categories",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/v1/exchange-rates": {
      "get": {
        "tags": [
          "Master - Exchange Rates"
        ],
        "summary": "List Exchange Rates",
        "description": "Retrieve paginated collection of `Exchange Rates` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_exchange_rates",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/v1/exchange-rates/convert": {
      "get": {
        "tags": [
          "Master - Exchange Rates"
        ],
        "summary": "List Exchange Rates",
        "description": "Retrieve paginated collection of `Exchange Rates` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_exchange_rates_convert",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/v1/incoterms": {
      "get": {
        "tags": [
          "Master - Incoterms"
        ],
        "summary": "List Incoterms",
        "description": "Retrieve paginated collection of `Incoterms` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_incoterms",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/incoterms/{id}": {
      "get": {
        "tags": [
          "Master - Incoterms"
        ],
        "summary": "Get Incoterms Details",
        "description": "Retrieve full detail representation for a single `Incoterms` resource by unique identifier.",
        "operationId": "get_api_v1_incoterms__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Master - Incoterms"
        ],
        "summary": "Update Incoterms",
        "description": "Update and persist changes for an existing `Incoterms` record.",
        "operationId": "put_api_v1_incoterms__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `IncotermRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "search": {
                    "type": "string",
                    "description": "Field `search`."
                  },
                  "page": {
                    "type": "integer",
                    "description": "Field `page`."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Field `limit`."
                  },
                  "sort": {
                    "type": "string",
                    "description": "Field `sort`."
                  },
                  "direction": {
                    "type": "string",
                    "description": "Field `direction`.",
                    "enum": [
                      "asc",
                      "desc"
                    ]
                  },
                  "code": {
                    "type": "string",
                    "description": "Field `code`.",
                    "maxLength": 100
                  },
                  "name": {
                    "type": "string",
                    "description": "Field `name`.",
                    "maxLength": 255
                  },
                  "description": {
                    "type": "string",
                    "description": "Field `description`."
                  },
                  "is_active": {
                    "type": "boolean",
                    "description": "Field `is_active`."
                  },
                  "index": {
                    "type": "string",
                    "description": "Field `index`."
                  },
                  "store": {
                    "type": "string",
                    "description": "Field `store`."
                  },
                  "update": {
                    "type": "string",
                    "description": "Field `update`."
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/inspection-release-notes": {
      "get": {
        "tags": [
          "Inspection Release Note"
        ],
        "summary": "List Inspection Release Notes",
        "description": "Retrieve paginated collection of `Inspection Release Notes` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_inspection_release_notes",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Inspection Release Note"
        ],
        "summary": "Create New Inspection Release Notes",
        "description": "Create and persist a new `Inspection Release Notes` transaction record.",
        "operationId": "post_api_v1_inspection_release_notes",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreIRNRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_inspection_release_notes,id`.",
                    "example": 1
                  },
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "notification_inspection_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_notification_for_inspections,id`.",
                    "example": 1
                  },
                  "vendor_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendors,id`.",
                    "example": 1
                  },
                  "inspection_date": {
                    "type": "string",
                    "description": "Field `inspection_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "issue_date": {
                    "type": "string",
                    "description": "Field `issue_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "inspection_place": {
                    "type": "string",
                    "description": "Field `inspection_place`.",
                    "maxLength": 255
                  },
                  "contact": {
                    "type": "string",
                    "description": "Field `contact`.",
                    "maxLength": 255
                  },
                  "percentage": {
                    "type": "number",
                    "description": "Field `percentage`.",
                    "minimum": 0,
                    "maximum": 100
                  },
                  "condition": {
                    "type": "string",
                    "description": "Field `condition`."
                  },
                  "remarks": {
                    "type": "string",
                    "description": "Field `remarks`."
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "is_approve": {
                    "type": "boolean",
                    "description": "Field `is_approve`."
                  },
                  "docs": {
                    "type": "array",
                    "description": "Field `docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "docs.*": {
                    "type": "string",
                    "description": "Binary file upload for `docs.*`.",
                    "format": "binary",
                    "maxLength": 20480
                  },
                  "deleted_docs": {
                    "type": "array",
                    "description": "Field `deleted_docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "deleted_docs.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_inspection_release_note_documents,id`."
                  },
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  }
                },
                "required": [
                  "project_id",
                  "notification_inspection_id",
                  "inspection_date",
                  "number"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/inspection-release-notes/{id}": {
      "get": {
        "tags": [
          "Inspection Release Note"
        ],
        "summary": "Get Inspection Release Notes Details",
        "description": "Retrieve full detail representation for a single `Inspection Release Notes` resource by unique identifier.",
        "operationId": "get_api_v1_inspection_release_notes__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/inspection-release-notes/{id}/accept": {
      "put": {
        "tags": [
          "Inspection Release Note"
        ],
        "summary": "Update Inspection Release Notes",
        "description": "Update and persist changes for an existing `Inspection Release Notes` record.",
        "operationId": "put_api_v1_inspection_release_notes__id__accept",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload for `Update Inspection Release Notes`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/inspection-release-notes/{id}/reject": {
      "put": {
        "tags": [
          "Inspection Release Note"
        ],
        "summary": "Reject Inspection Release Notes",
        "description": "Reject `Inspection Release Notes` submission with explanatory remarks.",
        "operationId": "put_api_v1_inspection_release_notes__id__reject",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `RejectIRNRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`.",
                    "minLength": 5,
                    "maxLength": 1000
                  }
                },
                "required": [
                  "notes"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/inventories/hub": {
      "get": {
        "tags": [
          "Inventory"
        ],
        "summary": "List Inventories",
        "description": "Retrieve paginated collection of `Inventories` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_inventories_hub",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/inventories/hub/{id}": {
      "get": {
        "tags": [
          "Inventory"
        ],
        "summary": "Get Inventories Details",
        "description": "Retrieve full detail representation for a single `Inventories` resource by unique identifier.",
        "operationId": "get_api_v1_inventories_hub__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/inventories/hub/{id}/adjust": {
      "post": {
        "tags": [
          "Inventory"
        ],
        "summary": "Create New Inventories",
        "description": "Create and persist a new `Inventories` transaction record.",
        "operationId": "post_api_v1_inventories_hub__id__adjust",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StockAdjustmentRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "description": "Field `type`.",
                    "enum": [
                      "in",
                      "out",
                      "set"
                    ]
                  },
                  "quantity": {
                    "type": "number",
                    "description": "Field `quantity`.",
                    "minimum": 0
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`.",
                    "maxLength": 1000
                  },
                  "transaction_date": {
                    "type": "string",
                    "description": "Field `transaction_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "reference_type": {
                    "type": "string",
                    "description": "Field `reference_type`.",
                    "maxLength": 50
                  },
                  "reference_id": {
                    "type": "integer",
                    "description": "Field `reference_id`."
                  }
                },
                "required": [
                  "type",
                  "quantity"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/inventories/hub/{id}/transactions": {
      "get": {
        "tags": [
          "Inventory"
        ],
        "summary": "Get Inventories Details",
        "description": "Retrieve full detail representation for a single `Inventories` resource by unique identifier.",
        "operationId": "get_api_v1_inventories_hub__id__transactions",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/inventories/site": {
      "get": {
        "tags": [
          "Inventory"
        ],
        "summary": "List Inventories",
        "description": "Retrieve paginated collection of `Inventories` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_inventories_site",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/inventories/site/{id}": {
      "get": {
        "tags": [
          "Inventory"
        ],
        "summary": "Get Inventories Details",
        "description": "Retrieve full detail representation for a single `Inventories` resource by unique identifier.",
        "operationId": "get_api_v1_inventories_site__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/inventories/site/{id}/adjust": {
      "post": {
        "tags": [
          "Inventory"
        ],
        "summary": "Create New Inventories",
        "description": "Create and persist a new `Inventories` transaction record.",
        "operationId": "post_api_v1_inventories_site__id__adjust",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StockAdjustmentRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "description": "Field `type`.",
                    "enum": [
                      "in",
                      "out",
                      "set"
                    ]
                  },
                  "quantity": {
                    "type": "number",
                    "description": "Field `quantity`.",
                    "minimum": 0
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`.",
                    "maxLength": 1000
                  },
                  "transaction_date": {
                    "type": "string",
                    "description": "Field `transaction_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "reference_type": {
                    "type": "string",
                    "description": "Field `reference_type`.",
                    "maxLength": 50
                  },
                  "reference_id": {
                    "type": "integer",
                    "description": "Field `reference_id`."
                  }
                },
                "required": [
                  "type",
                  "quantity"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/inventories/site/{id}/transactions": {
      "get": {
        "tags": [
          "Inventory"
        ],
        "summary": "Get Inventories Details",
        "description": "Retrieve full detail representation for a single `Inventories` resource by unique identifier.",
        "operationId": "get_api_v1_inventories_site__id__transactions",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/invoices": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "List Invoices",
        "description": "Retrieve paginated collection of `Invoices` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_invoices",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Invoices"
        ],
        "summary": "Create New Invoices",
        "description": "Create and persist a new `Invoices` transaction record.",
        "operationId": "post_api_v1_invoices",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreInvoiceRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_invoices,id`.",
                    "example": 1
                  },
                  "purchase_order_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_purchase_orders,id`.",
                    "example": 1
                  },
                  "vendor_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendors,id`.",
                    "example": 1
                  },
                  "invoice_number": {
                    "type": "string",
                    "description": "Field `invoice_number`.",
                    "maxLength": 100
                  },
                  "invoice_date": {
                    "type": "string",
                    "description": "Field `invoice_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "due_date": {
                    "type": "string",
                    "description": "Field `due_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "source_type": {
                    "type": "string",
                    "description": "Field `source_type`.",
                    "enum": [
                      "hub_receive",
                      "site_receive",
                      "po"
                    ]
                  },
                  "source_id": {
                    "type": "integer",
                    "description": "Field `source_id`."
                  },
                  "subtotal": {
                    "type": "number",
                    "description": "Field `subtotal`.",
                    "minimum": 0
                  },
                  "tax_percent": {
                    "type": "number",
                    "description": "Field `tax_percent`.",
                    "minimum": 0,
                    "maximum": 100
                  },
                  "tax_amount": {
                    "type": "number",
                    "description": "Field `tax_amount`.",
                    "minimum": 0
                  },
                  "total_amount": {
                    "type": "number",
                    "description": "Field `total_amount`.",
                    "minimum": 0
                  },
                  "currency": {
                    "type": "string",
                    "description": "Field `currency`.",
                    "maxLength": 10
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`.",
                    "enum": [
                      "draft",
                      "submitted",
                      "approved",
                      "partially_paid",
                      "paid",
                      "overdue",
                      "cancelled"
                    ]
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "details": {
                    "type": "array",
                    "description": "List of nested `details` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "purchase_order_detail_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `t_purchase_order_details,id`.",
                          "example": 1
                        },
                        "description": {
                          "type": "string",
                          "description": "Field `details.*.description`.",
                          "maxLength": 255
                        },
                        "quantity": {
                          "type": "number",
                          "description": "Field `details.*.quantity`.",
                          "minimum": 0
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `details.*.unit_price`.",
                          "minimum": 0
                        },
                        "total_price": {
                          "type": "number",
                          "description": "Field `details.*.total_price`.",
                          "minimum": 0
                        },
                        "notes": {
                          "type": "string",
                          "description": "Field `details.*.notes`."
                        }
                      },
                      "required": []
                    }
                  }
                },
                "required": [
                  "purchase_order_id",
                  "vendor_id",
                  "invoice_number",
                  "invoice_date"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/invoices/{id}": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Get Invoices Details",
        "description": "Retrieve full detail representation for a single `Invoices` resource by unique identifier.",
        "operationId": "get_api_v1_invoices__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/invoices/{id}/approve": {
      "post": {
        "tags": [
          "Invoices"
        ],
        "summary": "Approve Invoices",
        "description": "Execute formal approval workflow transition for `Invoices`.",
        "operationId": "post_api_v1_invoices__id__approve",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `ApproveInvoiceRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/invoices/{id}/verify-matching": {
      "get": {
        "tags": [
          "Invoices"
        ],
        "summary": "Get Invoices Details",
        "description": "Retrieve full detail representation for a single `Invoices` resource by unique identifier.",
        "operationId": "get_api_v1_invoices__id__verify_matching",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/kbli": {
      "get": {
        "tags": [
          "Master - KBLI"
        ],
        "summary": "List Kbli",
        "description": "Retrieve paginated collection of `Kbli` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_kbli",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Master - KBLI"
        ],
        "summary": "Create New Kbli",
        "description": "Create and persist a new `Kbli` transaction record.",
        "operationId": "post_api_v1_kbli",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `KbliRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "search": {
                    "type": "string",
                    "description": "Field `search`."
                  },
                  "page": {
                    "type": "integer",
                    "description": "Field `page`."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Field `limit`."
                  },
                  "sort": {
                    "type": "string",
                    "description": "Field `sort`."
                  },
                  "direction": {
                    "type": "string",
                    "description": "Field `direction`.",
                    "enum": [
                      "asc",
                      "desc"
                    ]
                  },
                  "category": {
                    "type": "string",
                    "description": "Field `category`.",
                    "maxLength": 50
                  },
                  "code": {
                    "type": "string",
                    "description": "Field `code`.",
                    "maxLength": 100
                  },
                  "title": {
                    "type": "string",
                    "description": "Field `title`.",
                    "maxLength": 255
                  },
                  "description": {
                    "type": "string",
                    "description": "Field `description`."
                  },
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_kbli,id`.",
                    "example": 1
                  },
                  "index": {
                    "type": "string",
                    "description": "Field `index`."
                  },
                  "store": {
                    "type": "string",
                    "description": "Field `store`."
                  },
                  "update": {
                    "type": "string",
                    "description": "Field `update`."
                  },
                  "deleteMany": {
                    "type": "string",
                    "description": "Field `deleteMany`."
                  }
                },
                "required": [
                  "category",
                  "code",
                  "title",
                  "description",
                  "ids"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/kbli/delete-many": {
      "post": {
        "tags": [
          "Master - KBLI"
        ],
        "summary": "Batch Delete Kbli",
        "description": "Atomically delete multiple `Kbli` records specified by list of identifiers.",
        "operationId": "post_api_v1_kbli_delete_many",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `KbliRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "search": {
                    "type": "string",
                    "description": "Field `search`."
                  },
                  "page": {
                    "type": "integer",
                    "description": "Field `page`."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Field `limit`."
                  },
                  "sort": {
                    "type": "string",
                    "description": "Field `sort`."
                  },
                  "direction": {
                    "type": "string",
                    "description": "Field `direction`.",
                    "enum": [
                      "asc",
                      "desc"
                    ]
                  },
                  "category": {
                    "type": "string",
                    "description": "Field `category`.",
                    "maxLength": 50
                  },
                  "code": {
                    "type": "string",
                    "description": "Field `code`.",
                    "maxLength": 100
                  },
                  "title": {
                    "type": "string",
                    "description": "Field `title`.",
                    "maxLength": 255
                  },
                  "description": {
                    "type": "string",
                    "description": "Field `description`."
                  },
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_kbli,id`.",
                    "example": 1
                  },
                  "index": {
                    "type": "string",
                    "description": "Field `index`."
                  },
                  "store": {
                    "type": "string",
                    "description": "Field `store`."
                  },
                  "update": {
                    "type": "string",
                    "description": "Field `update`."
                  },
                  "deleteMany": {
                    "type": "string",
                    "description": "Field `deleteMany`."
                  }
                },
                "required": [
                  "category",
                  "code",
                  "title",
                  "description",
                  "ids"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/kbli/{id}": {
      "get": {
        "tags": [
          "Master - KBLI"
        ],
        "summary": "Get Kbli Details",
        "description": "Retrieve full detail representation for a single `Kbli` resource by unique identifier.",
        "operationId": "get_api_v1_kbli__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Master - KBLI"
        ],
        "summary": "Update Kbli",
        "description": "Update and persist changes for an existing `Kbli` record.",
        "operationId": "put_api_v1_kbli__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `KbliRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "search": {
                    "type": "string",
                    "description": "Field `search`."
                  },
                  "page": {
                    "type": "integer",
                    "description": "Field `page`."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Field `limit`."
                  },
                  "sort": {
                    "type": "string",
                    "description": "Field `sort`."
                  },
                  "direction": {
                    "type": "string",
                    "description": "Field `direction`.",
                    "enum": [
                      "asc",
                      "desc"
                    ]
                  },
                  "category": {
                    "type": "string",
                    "description": "Field `category`.",
                    "maxLength": 50
                  },
                  "code": {
                    "type": "string",
                    "description": "Field `code`.",
                    "maxLength": 100
                  },
                  "title": {
                    "type": "string",
                    "description": "Field `title`.",
                    "maxLength": 255
                  },
                  "description": {
                    "type": "string",
                    "description": "Field `description`."
                  },
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_kbli,id`.",
                    "example": 1
                  },
                  "index": {
                    "type": "string",
                    "description": "Field `index`."
                  },
                  "store": {
                    "type": "string",
                    "description": "Field `store`."
                  },
                  "update": {
                    "type": "string",
                    "description": "Field `update`."
                  },
                  "deleteMany": {
                    "type": "string",
                    "description": "Field `deleteMany`."
                  }
                },
                "required": [
                  "category",
                  "code",
                  "title",
                  "description",
                  "ids"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Master - KBLI"
        ],
        "summary": "Delete Kbli",
        "description": "Permanently or soft-delete the specified `Kbli` record.",
        "operationId": "delete_api_v1_kbli__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/kickoff-meetings": {
      "get": {
        "tags": [
          "Kickoff Meeting"
        ],
        "summary": "List Kickoff Meetings",
        "description": "Retrieve paginated collection of `Kickoff Meetings` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_kickoff_meetings",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Kickoff Meeting"
        ],
        "summary": "Create New Kickoff Meetings",
        "description": "Create and persist a new `Kickoff Meetings` transaction record.",
        "operationId": "post_api_v1_kickoff_meetings",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreKickoffMeetingRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_kickoff_meeting_subs,id`.",
                    "example": 1
                  },
                  "parent_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_kickoff_meetings,id`.",
                    "example": 1
                  },
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "material_requisition_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_material_requisitions,id`.",
                    "example": 1
                  },
                  "purchase_order_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_purchase_orders,id`.",
                    "example": 1
                  },
                  "meeting_at": {
                    "type": "string",
                    "description": "Field `meeting_at`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "location": {
                    "type": "string",
                    "description": "Field `location`.",
                    "maxLength": 255
                  },
                  "vdrl_submission_schedule": {
                    "type": "string",
                    "description": "Field `vdrl_submission_schedule`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "inspection_schedule_fat": {
                    "type": "string",
                    "description": "Field `inspection_schedule_fat`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "attendances": {
                    "type": "array",
                    "description": "List of nested `attendances` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "Field `attendances.*.id`."
                        },
                        "user_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `users,id`.",
                          "example": 1
                        },
                        "department_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_departments,id`.",
                          "example": 1
                        },
                        "vendor_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_vendors,id`.",
                          "example": 1
                        },
                        "name": {
                          "type": "string",
                          "description": "Field `attendances.*.name`.",
                          "maxLength": 255
                        },
                        "email": {
                          "type": "string",
                          "description": "Field `attendances.*.email`.",
                          "format": "email",
                          "maxLength": 255
                        },
                        "role": {
                          "type": "string",
                          "description": "Field `attendances.*.role`.",
                          "maxLength": 100
                        },
                        "status": {
                          "type": "string",
                          "description": "Field `attendances.*.status`.",
                          "maxLength": 50
                        }
                      },
                      "required": []
                    }
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`.",
                    "enum": [
                      "draft",
                      "scheduled",
                      "submitted"
                    ]
                  },
                  "is_submit": {
                    "type": "boolean",
                    "description": "Field `is_submit`."
                  },
                  "is_invite": {
                    "type": "boolean",
                    "description": "Field `is_invite`."
                  },
                  "docs": {
                    "type": "array",
                    "description": "Field `docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "docs.*": {
                    "type": "string",
                    "description": "Binary file upload for `docs.*`.",
                    "format": "binary",
                    "maxLength": 20480
                  },
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  }
                },
                "required": [
                  "project_id"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/kickoff-meetings/pending": {
      "get": {
        "tags": [
          "Kickoff Meeting"
        ],
        "summary": "List Pending Kickoff Meetings",
        "description": "Fetch all pending `Kickoff Meetings` records awaiting review or authorization.",
        "operationId": "get_api_v1_kickoff_meetings_pending",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/kickoff-meetings/{id}": {
      "get": {
        "tags": [
          "Kickoff Meeting"
        ],
        "summary": "Get Kickoff Meetings Details",
        "description": "Retrieve full detail representation for a single `Kickoff Meetings` resource by unique identifier.",
        "operationId": "get_api_v1_kickoff_meetings__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/letter-awards": {
      "get": {
        "tags": [
          "Letter of Award"
        ],
        "summary": "List Letter Awards",
        "description": "Retrieve paginated collection of `Letter Awards` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_letter_awards",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Letter of Award"
        ],
        "summary": "Create New Letter Awards",
        "description": "Create and persist a new `Letter Awards` transaction record.",
        "operationId": "post_api_v1_letter_awards",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreLetterAwardRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "vendor_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendors,id`.",
                    "example": 1
                  },
                  "award_recommendation_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_recommendation_for_awards,id`.",
                    "example": 1
                  },
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  },
                  "term_of_payment": {
                    "type": "string",
                    "description": "Field `term_of_payment`.",
                    "maxLength": 255
                  },
                  "delivery_timeline": {
                    "type": "string",
                    "description": "Field `delivery_timeline`.",
                    "maxLength": 255
                  },
                  "remarks": {
                    "type": "string",
                    "description": "Field `remarks`."
                  },
                  "items": {
                    "type": "array",
                    "description": "List of nested `items` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "quotation_material_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `t_quotation_materials,id`.",
                          "example": 1
                        },
                        "price": {
                          "type": "number",
                          "description": "Field `items.*.price`.",
                          "minimum": 0
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `items.*.unit_price`.",
                          "minimum": 0
                        }
                      },
                      "required": [
                        "quotation_material_id"
                      ]
                    }
                  },
                  "docs": {
                    "type": "array",
                    "description": "Field `docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "docs.*": {
                    "type": "string",
                    "description": "Binary file upload for `docs.*`.",
                    "format": "binary",
                    "maxLength": 20480
                  }
                },
                "required": [
                  "project_id",
                  "vendor_id",
                  "number",
                  "items"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/letter-awards/mr/{mrId}/vendors": {
      "get": {
        "tags": [
          "Letter of Award"
        ],
        "summary": "Get Letter Awards Details",
        "description": "Retrieve full detail representation for a single `Letter Awards` resource by unique identifier.",
        "operationId": "get_api_v1_letter_awards_mr__mrId__vendors",
        "parameters": [
          {
            "name": "mrId",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `mrId`.",
            "schema": {
              "type": "string",
              "example": "PRJ-001"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/letter-awards/{id}": {
      "get": {
        "tags": [
          "Letter of Award"
        ],
        "summary": "Get Letter Awards Details",
        "description": "Retrieve full detail representation for a single `Letter Awards` resource by unique identifier.",
        "operationId": "get_api_v1_letter_awards__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/letter-awards/{id}/accept": {
      "post": {
        "tags": [
          "Letter of Award"
        ],
        "summary": "Create New Letter Awards",
        "description": "Create and persist a new `Letter Awards` transaction record.",
        "operationId": "post_api_v1_letter_awards__id__accept",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `LetterAwardResponseRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "description": "Field `action`.",
                    "enum": [
                      "accept",
                      "reject"
                    ]
                  },
                  "remarks": {
                    "type": "string",
                    "description": "Field `remarks`."
                  },
                  "reason": {
                    "type": "string",
                    "description": "Field `reason`."
                  },
                  "signed_doc": {
                    "type": "string",
                    "description": "Binary file upload for `signed_doc`.",
                    "format": "binary",
                    "maxLength": 20480
                  },
                  "signedDoc": {
                    "type": "string",
                    "description": "Binary file upload for `signedDoc`.",
                    "format": "binary",
                    "maxLength": 20480
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/letter-awards/{id}/pdf": {
      "get": {
        "tags": [
          "Letter of Award"
        ],
        "summary": "Get Letter Awards Details",
        "description": "Retrieve full detail representation for a single `Letter Awards` resource by unique identifier.",
        "operationId": "get_api_v1_letter_awards__id__pdf",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/letter-awards/{id}/reject": {
      "post": {
        "tags": [
          "Letter of Award"
        ],
        "summary": "Reject Letter Awards",
        "description": "Reject `Letter Awards` submission with revision notes.",
        "operationId": "post_api_v1_letter_awards__id__reject",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `LetterAwardResponseRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "description": "Field `action`.",
                    "enum": [
                      "accept",
                      "reject"
                    ]
                  },
                  "remarks": {
                    "type": "string",
                    "description": "Field `remarks`."
                  },
                  "reason": {
                    "type": "string",
                    "description": "Field `reason`."
                  },
                  "signed_doc": {
                    "type": "string",
                    "description": "Binary file upload for `signed_doc`.",
                    "format": "binary",
                    "maxLength": 20480
                  },
                  "signedDoc": {
                    "type": "string",
                    "description": "Binary file upload for `signedDoc`.",
                    "format": "binary",
                    "maxLength": 20480
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/locations": {
      "get": {
        "tags": [
          "Master - Locations"
        ],
        "summary": "List Locations",
        "description": "Retrieve paginated collection of `Locations` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_locations",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Master - Locations"
        ],
        "summary": "Create New Locations",
        "description": "Create and persist a new `Locations` transaction record.",
        "operationId": "post_api_v1_locations",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `LocationRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "search": {
                    "type": "string",
                    "description": "Field `search`."
                  },
                  "page": {
                    "type": "integer",
                    "description": "Field `page`."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Field `limit`."
                  },
                  "sort": {
                    "type": "string",
                    "description": "Field `sort`."
                  },
                  "direction": {
                    "type": "string",
                    "description": "Field `direction`.",
                    "enum": [
                      "asc",
                      "desc"
                    ]
                  },
                  "type": {
                    "type": "string",
                    "description": "Field `type`.",
                    "maxLength": 100
                  },
                  "name": {
                    "type": "string",
                    "description": "Field `name`.",
                    "maxLength": 255
                  },
                  "address": {
                    "type": "string",
                    "description": "Field `address`."
                  },
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_locations,id`.",
                    "example": 1
                  },
                  "index": {
                    "type": "string",
                    "description": "Field `index`."
                  },
                  "store": {
                    "type": "string",
                    "description": "Field `store`."
                  },
                  "update": {
                    "type": "string",
                    "description": "Field `update`."
                  },
                  "deleteMany": {
                    "type": "string",
                    "description": "Field `deleteMany`."
                  }
                },
                "required": [
                  "name",
                  "ids"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/locations/delete-many": {
      "post": {
        "tags": [
          "Master - Locations"
        ],
        "summary": "Batch Delete Locations",
        "description": "Atomically delete multiple `Locations` records specified by list of identifiers.",
        "operationId": "post_api_v1_locations_delete_many",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `LocationRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "search": {
                    "type": "string",
                    "description": "Field `search`."
                  },
                  "page": {
                    "type": "integer",
                    "description": "Field `page`."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Field `limit`."
                  },
                  "sort": {
                    "type": "string",
                    "description": "Field `sort`."
                  },
                  "direction": {
                    "type": "string",
                    "description": "Field `direction`.",
                    "enum": [
                      "asc",
                      "desc"
                    ]
                  },
                  "type": {
                    "type": "string",
                    "description": "Field `type`.",
                    "maxLength": 100
                  },
                  "name": {
                    "type": "string",
                    "description": "Field `name`.",
                    "maxLength": 255
                  },
                  "address": {
                    "type": "string",
                    "description": "Field `address`."
                  },
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_locations,id`.",
                    "example": 1
                  },
                  "index": {
                    "type": "string",
                    "description": "Field `index`."
                  },
                  "store": {
                    "type": "string",
                    "description": "Field `store`."
                  },
                  "update": {
                    "type": "string",
                    "description": "Field `update`."
                  },
                  "deleteMany": {
                    "type": "string",
                    "description": "Field `deleteMany`."
                  }
                },
                "required": [
                  "name",
                  "ids"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/locations/{id}": {
      "get": {
        "tags": [
          "Master - Locations"
        ],
        "summary": "Get Locations Details",
        "description": "Retrieve full detail representation for a single `Locations` resource by unique identifier.",
        "operationId": "get_api_v1_locations__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Master - Locations"
        ],
        "summary": "Update Locations",
        "description": "Update and persist changes for an existing `Locations` record.",
        "operationId": "put_api_v1_locations__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `LocationRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "search": {
                    "type": "string",
                    "description": "Field `search`."
                  },
                  "page": {
                    "type": "integer",
                    "description": "Field `page`."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Field `limit`."
                  },
                  "sort": {
                    "type": "string",
                    "description": "Field `sort`."
                  },
                  "direction": {
                    "type": "string",
                    "description": "Field `direction`.",
                    "enum": [
                      "asc",
                      "desc"
                    ]
                  },
                  "type": {
                    "type": "string",
                    "description": "Field `type`.",
                    "maxLength": 100
                  },
                  "name": {
                    "type": "string",
                    "description": "Field `name`.",
                    "maxLength": 255
                  },
                  "address": {
                    "type": "string",
                    "description": "Field `address`."
                  },
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_locations,id`.",
                    "example": 1
                  },
                  "index": {
                    "type": "string",
                    "description": "Field `index`."
                  },
                  "store": {
                    "type": "string",
                    "description": "Field `store`."
                  },
                  "update": {
                    "type": "string",
                    "description": "Field `update`."
                  },
                  "deleteMany": {
                    "type": "string",
                    "description": "Field `deleteMany`."
                  }
                },
                "required": [
                  "name",
                  "ids"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Master - Locations"
        ],
        "summary": "Delete Locations",
        "description": "Permanently or soft-delete the specified `Locations` record.",
        "operationId": "delete_api_v1_locations__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/material-categories": {
      "get": {
        "tags": [
          "Master - Categories"
        ],
        "summary": "List Material Categories",
        "description": "Retrieve paginated collection of `Material Categories` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_material_categories",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Master - Categories"
        ],
        "summary": "Create New Material Categories",
        "description": "Create and persist a new `Material Categories` transaction record.",
        "operationId": "post_api_v1_material_categories",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `MaterialCategoryRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "search": {
                    "type": "string",
                    "description": "Field `search`."
                  },
                  "page": {
                    "type": "integer",
                    "description": "Field `page`."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Field `limit`."
                  },
                  "sort": {
                    "type": "string",
                    "description": "Field `sort`."
                  },
                  "direction": {
                    "type": "string",
                    "description": "Field `direction`.",
                    "enum": [
                      "asc",
                      "desc"
                    ]
                  },
                  "code": {
                    "type": "string",
                    "description": "Field `code`.",
                    "maxLength": 100
                  },
                  "name": {
                    "type": "string",
                    "description": "Field `name`.",
                    "maxLength": 255
                  },
                  "vendor_category_ids": {
                    "type": "array",
                    "description": "Field `vendor_category_ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "vendor_category_ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendor_categories,id`.",
                    "example": 1
                  },
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_material_categories,id`.",
                    "example": 1
                  },
                  "index": {
                    "type": "string",
                    "description": "Field `index`."
                  },
                  "store": {
                    "type": "string",
                    "description": "Field `store`."
                  },
                  "update": {
                    "type": "string",
                    "description": "Field `update`."
                  },
                  "deleteMany": {
                    "type": "string",
                    "description": "Field `deleteMany`."
                  }
                },
                "required": [
                  "code",
                  "name",
                  "ids"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/material-categories/delete-many": {
      "post": {
        "tags": [
          "Master - Categories"
        ],
        "summary": "Batch Delete Material Categories",
        "description": "Atomically delete multiple `Material Categories` records specified by list of identifiers.",
        "operationId": "post_api_v1_material_categories_delete_many",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `MaterialCategoryRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "search": {
                    "type": "string",
                    "description": "Field `search`."
                  },
                  "page": {
                    "type": "integer",
                    "description": "Field `page`."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Field `limit`."
                  },
                  "sort": {
                    "type": "string",
                    "description": "Field `sort`."
                  },
                  "direction": {
                    "type": "string",
                    "description": "Field `direction`.",
                    "enum": [
                      "asc",
                      "desc"
                    ]
                  },
                  "code": {
                    "type": "string",
                    "description": "Field `code`.",
                    "maxLength": 100
                  },
                  "name": {
                    "type": "string",
                    "description": "Field `name`.",
                    "maxLength": 255
                  },
                  "vendor_category_ids": {
                    "type": "array",
                    "description": "Field `vendor_category_ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "vendor_category_ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendor_categories,id`.",
                    "example": 1
                  },
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_material_categories,id`.",
                    "example": 1
                  },
                  "index": {
                    "type": "string",
                    "description": "Field `index`."
                  },
                  "store": {
                    "type": "string",
                    "description": "Field `store`."
                  },
                  "update": {
                    "type": "string",
                    "description": "Field `update`."
                  },
                  "deleteMany": {
                    "type": "string",
                    "description": "Field `deleteMany`."
                  }
                },
                "required": [
                  "code",
                  "name",
                  "ids"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/material-categories/{id}": {
      "get": {
        "tags": [
          "Master - Categories"
        ],
        "summary": "Get Material Categories Details",
        "description": "Retrieve full detail representation for a single `Material Categories` resource by unique identifier.",
        "operationId": "get_api_v1_material_categories__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Master - Categories"
        ],
        "summary": "Update Material Categories",
        "description": "Update and persist changes for an existing `Material Categories` record.",
        "operationId": "put_api_v1_material_categories__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `MaterialCategoryRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "search": {
                    "type": "string",
                    "description": "Field `search`."
                  },
                  "page": {
                    "type": "integer",
                    "description": "Field `page`."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Field `limit`."
                  },
                  "sort": {
                    "type": "string",
                    "description": "Field `sort`."
                  },
                  "direction": {
                    "type": "string",
                    "description": "Field `direction`.",
                    "enum": [
                      "asc",
                      "desc"
                    ]
                  },
                  "code": {
                    "type": "string",
                    "description": "Field `code`.",
                    "maxLength": 100
                  },
                  "name": {
                    "type": "string",
                    "description": "Field `name`.",
                    "maxLength": 255
                  },
                  "vendor_category_ids": {
                    "type": "array",
                    "description": "Field `vendor_category_ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "vendor_category_ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendor_categories,id`.",
                    "example": 1
                  },
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_material_categories,id`.",
                    "example": 1
                  },
                  "index": {
                    "type": "string",
                    "description": "Field `index`."
                  },
                  "store": {
                    "type": "string",
                    "description": "Field `store`."
                  },
                  "update": {
                    "type": "string",
                    "description": "Field `update`."
                  },
                  "deleteMany": {
                    "type": "string",
                    "description": "Field `deleteMany`."
                  }
                },
                "required": [
                  "code",
                  "name",
                  "ids"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Master - Categories"
        ],
        "summary": "Delete Material Categories",
        "description": "Permanently or soft-delete the specified `Material Categories` record.",
        "operationId": "delete_api_v1_material_categories__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/material-receives/hub": {
      "get": {
        "tags": [
          "Material Hub Receive"
        ],
        "summary": "List Material Receives",
        "description": "Retrieve paginated collection of `Material Receives` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_material_receives_hub",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Material Hub Receive"
        ],
        "summary": "Create New Material Receives",
        "description": "Create and persist a new `Material Receives` transaction record.",
        "operationId": "post_api_v1_material_receives_hub",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreMaterialHubReceiveRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_material_hub_receives,id`.",
                    "example": 1
                  },
                  "purchase_order_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_purchase_orders,id`.",
                    "example": 1
                  },
                  "mrn_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_material_release_notes,id`.",
                    "example": 1
                  },
                  "receive_number": {
                    "type": "string",
                    "description": "Field `receive_number`.",
                    "maxLength": 100
                  },
                  "receive_date": {
                    "type": "string",
                    "description": "Field `receive_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "hub_location": {
                    "type": "string",
                    "description": "Field `hub_location`.",
                    "maxLength": 255
                  },
                  "received_by": {
                    "type": "string",
                    "description": "Field `received_by`.",
                    "maxLength": 255
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "details": {
                    "type": "array",
                    "description": "List of nested `details` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "quantity_received": {
                          "type": "number",
                          "description": "Field `details.*.quantity_received`.",
                          "minimum": 0
                        }
                      },
                      "required": []
                    }
                  },
                  "documents": {
                    "type": "array",
                    "description": "Field `documents`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "documents.*": {
                    "type": "string",
                    "description": "File attachment (pdf,jpg,jpeg,png,xlsx,xls,doc,docx).",
                    "format": "binary",
                    "maxLength": 51200
                  },
                  "status": {
                    "type": "string",
                    "description": "Status/Type enumeration (MRRStatus): draft, submitted",
                    "enum": [
                      "draft",
                      "submitted"
                    ]
                  },
                  "mrr_document": {
                    "type": "string",
                    "description": "File attachment (pdf,jpg,jpeg,png,xlsx,xls,doc,docx).",
                    "format": "binary",
                    "maxLength": 51200
                  }
                },
                "required": [
                  "purchase_order_id",
                  "receive_number"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/material-receives/hub/done": {
      "get": {
        "tags": [
          "Material Hub Receive"
        ],
        "summary": "List Material Receives",
        "description": "Retrieve paginated collection of `Material Receives` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_material_receives_hub_done",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/material-receives/hub/pending": {
      "get": {
        "tags": [
          "Material Hub Receive"
        ],
        "summary": "List Pending Material Receives",
        "description": "Fetch all pending `Material Receives` records awaiting review or authorization.",
        "operationId": "get_api_v1_material_receives_hub_pending",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/material-receives/hub/{id}": {
      "get": {
        "tags": [
          "Material Hub Receive"
        ],
        "summary": "Get Material Receives Details",
        "description": "Retrieve full detail representation for a single `Material Receives` resource by unique identifier.",
        "operationId": "get_api_v1_material_receives_hub__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/material-receives/site": {
      "get": {
        "tags": [
          "Material Site Receive"
        ],
        "summary": "List Material Receives",
        "description": "Retrieve paginated collection of `Material Receives` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_material_receives_site",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Material Site Receive"
        ],
        "summary": "Create New Material Receives",
        "description": "Create and persist a new `Material Receives` transaction record.",
        "operationId": "post_api_v1_material_receives_site",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreMaterialSiteReceiveRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_material_site_receives,id`.",
                    "example": 1
                  },
                  "receive_source": {
                    "type": "string",
                    "description": "Field `receive_source`.",
                    "enum": [
                      "direct",
                      "hub"
                    ]
                  },
                  "packing_list_hub_to_site_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_packing_lists_hub_to_site,id`.",
                    "example": 1
                  },
                  "mrn_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_material_release_notes,id`.",
                    "example": 1
                  },
                  "purchase_order_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_purchase_orders,id`.",
                    "example": 1
                  },
                  "receive_number": {
                    "type": "string",
                    "description": "Field `receive_number`.",
                    "maxLength": 100
                  },
                  "receive_date": {
                    "type": "string",
                    "description": "Field `receive_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "site_location": {
                    "type": "string",
                    "description": "Field `site_location`.",
                    "maxLength": 255
                  },
                  "received_by": {
                    "type": "string",
                    "description": "Field `received_by`.",
                    "maxLength": 255
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "mrr_document": {
                    "type": "string",
                    "description": "File attachment (pdf,jpg,jpeg,png,xlsx,xls,doc,docx).",
                    "format": "binary",
                    "maxLength": 51200
                  },
                  "details": {
                    "type": "array",
                    "description": "List of nested `details` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "purchase_order_detail_id": {
                          "type": "integer",
                          "description": "Field `details.*.purchase_order_detail_id`."
                        },
                        "quantity_expected": {
                          "type": "number",
                          "description": "Field `details.*.quantity_expected`.",
                          "minimum": 0
                        },
                        "quantity_received": {
                          "type": "number",
                          "description": "Field `details.*.quantity_received`.",
                          "minimum": 0
                        },
                        "quantity_damaged": {
                          "type": "number",
                          "description": "Field `details.*.quantity_damaged`.",
                          "minimum": 0
                        },
                        "notes": {
                          "type": "string",
                          "description": "Field `details.*.notes`."
                        }
                      },
                      "required": []
                    }
                  },
                  "documents": {
                    "type": "array",
                    "description": "Field `documents`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "documents.*": {
                    "type": "string",
                    "description": "File attachment (pdf,jpg,jpeg,png,xlsx,xls,doc,docx).",
                    "format": "binary",
                    "maxLength": 51200
                  },
                  "status": {
                    "type": "string",
                    "description": "Status/Type enumeration (MRRStatus): draft, submitted",
                    "enum": [
                      "draft",
                      "submitted"
                    ]
                  }
                },
                "required": [
                  "receive_number"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/material-receives/site/done": {
      "get": {
        "tags": [
          "Material Site Receive"
        ],
        "summary": "List Material Receives",
        "description": "Retrieve paginated collection of `Material Receives` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_material_receives_site_done",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/material-receives/site/pending": {
      "get": {
        "tags": [
          "Material Site Receive"
        ],
        "summary": "List Pending Material Receives",
        "description": "Fetch all pending `Material Receives` records awaiting review or authorization.",
        "operationId": "get_api_v1_material_receives_site_pending",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/material-receives/site/{id}": {
      "get": {
        "tags": [
          "Material Site Receive"
        ],
        "summary": "Get Material Receives Details",
        "description": "Retrieve full detail representation for a single `Material Receives` resource by unique identifier.",
        "operationId": "get_api_v1_material_receives_site__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/material-release-notes": {
      "get": {
        "tags": [
          "Material Release Note"
        ],
        "summary": "List Material Release Notes",
        "description": "Retrieve paginated collection of `Material Release Notes` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_material_release_notes",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Material Release Note"
        ],
        "summary": "Create New Material Release Notes",
        "description": "Create and persist a new `Material Release Notes` transaction record.",
        "operationId": "post_api_v1_material_release_notes",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreMRNRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_material_release_notes,id`.",
                    "example": 1
                  },
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "vendor_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendors,id`.",
                    "example": 1
                  },
                  "packing_list_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_packing_lists,id`.",
                    "example": 1
                  },
                  "material_requisition_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_material_requisitions,id`.",
                    "example": 1
                  },
                  "destination_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_locations,id`.",
                    "example": 1
                  },
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  },
                  "issue_date": {
                    "type": "string",
                    "description": "Field `issue_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "estimated_arrival": {
                    "type": "string",
                    "description": "Field `estimated_arrival`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "pickup_address": {
                    "type": "string",
                    "description": "Field `pickup_address`."
                  },
                  "delivery_address": {
                    "type": "string",
                    "description": "Field `delivery_address`."
                  },
                  "shipping_mode": {
                    "type": "string",
                    "description": "Field `shipping_mode`.",
                    "maxLength": 50
                  },
                  "shipment_type": {
                    "type": "string",
                    "description": "Field `shipment_type`.",
                    "maxLength": 50
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "is_submit": {
                    "type": "boolean",
                    "description": "Field `is_submit`."
                  },
                  "checklist_results": {
                    "type": "array",
                    "description": "List of nested `checklist_results` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "checklist_item_id": {
                          "type": "integer",
                          "description": "Field `checklist_results.*.checklist_item_id`."
                        },
                        "is_checked": {
                          "type": "boolean",
                          "description": "Field `checklist_results.*.is_checked`."
                        },
                        "remarks": {
                          "type": "string",
                          "description": "Field `checklist_results.*.remarks`."
                        }
                      },
                      "required": []
                    }
                  },
                  "docs": {
                    "type": "array",
                    "description": "Field `docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "docs.*": {
                    "type": "string",
                    "description": "File attachment (pdf,jpg,jpeg,png,xlsx,xls,doc,docx).",
                    "format": "binary",
                    "maxLength": 51200
                  },
                  "status": {
                    "type": "string",
                    "description": "Status/Type enumeration (MRNStatus): draft, submitted",
                    "enum": [
                      "draft",
                      "submitted"
                    ]
                  }
                },
                "required": [
                  "number"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/material-release-notes/checklist-items": {
      "get": {
        "tags": [
          "Material Release Note"
        ],
        "summary": "List Material Release Notes",
        "description": "Retrieve paginated collection of `Material Release Notes` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_material_release_notes_checklist_items",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/material-release-notes/pending": {
      "get": {
        "tags": [
          "Material Release Note"
        ],
        "summary": "List Pending Material Release Notes",
        "description": "Fetch all pending `Material Release Notes` records awaiting review or authorization.",
        "operationId": "get_api_v1_material_release_notes_pending",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/material-release-notes/{id}": {
      "get": {
        "tags": [
          "Material Release Note"
        ],
        "summary": "Get Material Release Notes Details",
        "description": "Retrieve full detail representation for a single `Material Release Notes` resource by unique identifier.",
        "operationId": "get_api_v1_material_release_notes__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/material-release-notes/{id}/revise": {
      "post": {
        "tags": [
          "Material Release Note"
        ],
        "summary": "Create New Material Release Notes",
        "description": "Create and persist a new `Material Release Notes` transaction record.",
        "operationId": "post_api_v1_material_release_notes__id__revise",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `ReviseMRNRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "logistic_notes": {
                    "type": "string",
                    "description": "Field `logistic_notes`.",
                    "maxLength": 1000
                  }
                },
                "required": [
                  "logistic_notes"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/materials": {
      "get": {
        "tags": [
          "Master - Materials"
        ],
        "summary": "List Materials",
        "description": "Retrieve paginated collection of `Materials` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_materials",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Master - Materials"
        ],
        "summary": "Create New Materials",
        "description": "Create and persist a new `Materials` transaction record.",
        "operationId": "post_api_v1_materials",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload for `Create New Materials`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/materials/delete-many": {
      "post": {
        "tags": [
          "Master - Materials"
        ],
        "summary": "Batch Delete Materials",
        "description": "Atomically delete multiple `Materials` records specified by list of identifiers.",
        "operationId": "post_api_v1_materials_delete_many",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload for `Batch Delete Materials`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/materials/import": {
      "post": {
        "tags": [
          "Master - Materials"
        ],
        "summary": "Create New Materials",
        "description": "Create and persist a new `Materials` transaction record.",
        "operationId": "post_api_v1_materials_import",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload for `Create New Materials`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/materials/import-template": {
      "get": {
        "tags": [
          "Master - Materials"
        ],
        "summary": "List Materials",
        "description": "Retrieve paginated collection of `Materials` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_materials_import_template",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/materials/{id}": {
      "get": {
        "tags": [
          "Master - Materials"
        ],
        "summary": "Get Materials Details",
        "description": "Retrieve full detail representation for a single `Materials` resource by unique identifier.",
        "operationId": "get_api_v1_materials__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Master - Materials"
        ],
        "summary": "Update Materials",
        "description": "Update and persist changes for an existing `Materials` record.",
        "operationId": "put_api_v1_materials__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload for `Update Materials`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Master - Materials"
        ],
        "summary": "Delete Materials",
        "description": "Permanently or soft-delete the specified `Materials` record.",
        "operationId": "delete_api_v1_materials__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/mr": {
      "get": {
        "tags": [
          "Material Requisition"
        ],
        "summary": "List Mr",
        "description": "/** Display a listing of material requisitions. /",
        "operationId": "get_api_v1_mr",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          },
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "description": "Filter Material Requisitions by parent Project ID.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Filter by MR status enum.",
            "schema": {
              "type": "string",
              "enum": [
                "created",
                "draft",
                "submitted",
                "pending_approval",
                "pending_review",
                "approved",
                "rejected",
                "pending_management_approval"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Material Requisition"
        ],
        "summary": "Create New Mr",
        "description": "/** Store a newly created MR in storage. /",
        "operationId": "post_api_v1_mr",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreMRRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  },
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "department_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_departments,id`.",
                    "example": 1
                  },
                  "engineer_name": {
                    "type": "string",
                    "description": "Field `engineer_name`.",
                    "maxLength": 255
                  },
                  "required_date": {
                    "type": "string",
                    "description": "Field `required_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "budget_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_budgets,id`.",
                    "example": 1
                  },
                  "material_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_materials,id`.",
                    "example": 1
                  },
                  "currency_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_currencies,id`.",
                    "example": 1
                  },
                  "quantity": {
                    "type": "integer",
                    "description": "Field `quantity`.",
                    "minimum": 1
                  },
                  "unit_price": {
                    "type": "number",
                    "description": "Field `unit_price`.",
                    "minimum": 0
                  },
                  "total_price": {
                    "type": "number",
                    "description": "Field `total_price`.",
                    "minimum": 0
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "items": {
                    "type": "array",
                    "description": "List of nested `items` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "material_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "quantity": {
                          "type": "integer",
                          "description": "Field `items.*.quantity`.",
                          "minimum": 1
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `items.*.unit_price`.",
                          "minimum": 0
                        }
                      },
                      "required": []
                    }
                  },
                  "materials": {
                    "type": "array",
                    "description": "List of nested `materials` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "material_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "quantity": {
                          "type": "integer",
                          "description": "Field `materials.*.quantity`.",
                          "minimum": 1
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `materials.*.unit_price`.",
                          "minimum": 0
                        },
                        "remarks": {
                          "type": "string",
                          "description": "Field `materials.*.remarks`."
                        }
                      },
                      "required": [
                        "material_id",
                        "quantity"
                      ]
                    }
                  },
                  "documents": {
                    "type": "array",
                    "description": "List of nested `documents` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "description": {
                          "type": "string",
                          "description": "Field `documents.*.description`."
                        },
                        "sla_days": {
                          "type": "integer",
                          "description": "Field `documents.*.sla_days`.",
                          "minimum": 1
                        },
                        "file": {
                          "type": "string",
                          "description": "Field `documents.*.file`."
                        }
                      },
                      "required": []
                    }
                  }
                },
                "required": [
                  "number",
                  "project_id",
                  "department_id",
                  "engineer_name",
                  "required_date"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/mr/draft": {
      "post": {
        "tags": [
          "Material Requisition"
        ],
        "summary": "Create New Mr",
        "description": "/** Store a newly created MR as draft. /",
        "operationId": "post_api_v1_mr_draft",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreMRRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  },
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "department_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_departments,id`.",
                    "example": 1
                  },
                  "engineer_name": {
                    "type": "string",
                    "description": "Field `engineer_name`.",
                    "maxLength": 255
                  },
                  "required_date": {
                    "type": "string",
                    "description": "Field `required_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "budget_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_budgets,id`.",
                    "example": 1
                  },
                  "material_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_materials,id`.",
                    "example": 1
                  },
                  "currency_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_currencies,id`.",
                    "example": 1
                  },
                  "quantity": {
                    "type": "integer",
                    "description": "Field `quantity`.",
                    "minimum": 1
                  },
                  "unit_price": {
                    "type": "number",
                    "description": "Field `unit_price`.",
                    "minimum": 0
                  },
                  "total_price": {
                    "type": "number",
                    "description": "Field `total_price`.",
                    "minimum": 0
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "items": {
                    "type": "array",
                    "description": "List of nested `items` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "material_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "quantity": {
                          "type": "integer",
                          "description": "Field `items.*.quantity`.",
                          "minimum": 1
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `items.*.unit_price`.",
                          "minimum": 0
                        }
                      },
                      "required": []
                    }
                  },
                  "materials": {
                    "type": "array",
                    "description": "List of nested `materials` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "material_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "quantity": {
                          "type": "integer",
                          "description": "Field `materials.*.quantity`.",
                          "minimum": 1
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `materials.*.unit_price`.",
                          "minimum": 0
                        },
                        "remarks": {
                          "type": "string",
                          "description": "Field `materials.*.remarks`."
                        }
                      },
                      "required": [
                        "material_id",
                        "quantity"
                      ]
                    }
                  },
                  "documents": {
                    "type": "array",
                    "description": "List of nested `documents` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "description": {
                          "type": "string",
                          "description": "Field `documents.*.description`."
                        },
                        "sla_days": {
                          "type": "integer",
                          "description": "Field `documents.*.sla_days`.",
                          "minimum": 1
                        },
                        "file": {
                          "type": "string",
                          "description": "Field `documents.*.file`."
                        }
                      },
                      "required": []
                    }
                  }
                },
                "required": [
                  "number",
                  "project_id",
                  "department_id",
                  "engineer_name",
                  "required_date"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/mr/import": {
      "post": {
        "tags": [
          "Material Requisition"
        ],
        "summary": "Create New Mr",
        "description": "/** Import MR data from Excel template. /",
        "operationId": "post_api_v1_mr_import",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `ImportMRRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "description": "File attachment (xlsx,xls).",
                    "format": "binary",
                    "maxLength": 10240
                  },
                  "title": {
                    "type": "string",
                    "description": "Field `title`.",
                    "maxLength": 255
                  }
                },
                "required": [
                  "file"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/mr/template": {
      "get": {
        "tags": [
          "Material Requisition"
        ],
        "summary": "List Mr",
        "description": "/** Download MR template spreadsheet. /",
        "operationId": "get_api_v1_mr_template",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          },
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "description": "Filter Material Requisitions by parent Project ID.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Filter by MR status enum.",
            "schema": {
              "type": "string",
              "enum": [
                "created",
                "draft",
                "submitted",
                "pending_approval",
                "pending_review",
                "approved",
                "rejected",
                "pending_management_approval"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/mr/{id}": {
      "get": {
        "tags": [
          "Material Requisition"
        ],
        "summary": "Get Mr Details",
        "description": "/** Display the specified material requisition. /",
        "operationId": "get_api_v1_mr__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Material Requisition"
        ],
        "summary": "Update Mr",
        "description": "/** Update the specified MR in storage. /",
        "operationId": "put_api_v1_mr__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `UpdateMRRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "department_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_departments,id`.",
                    "example": 1
                  },
                  "engineer_name": {
                    "type": "string",
                    "description": "Field `engineer_name`.",
                    "maxLength": 255
                  },
                  "required_date": {
                    "type": "string",
                    "description": "Field `required_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "budget_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_budgets,id`.",
                    "example": 1
                  },
                  "material_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_materials,id`.",
                    "example": 1
                  },
                  "currency_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_currencies,id`.",
                    "example": 1
                  },
                  "quantity": {
                    "type": "integer",
                    "description": "Field `quantity`.",
                    "minimum": 1
                  },
                  "unit_price": {
                    "type": "number",
                    "description": "Field `unit_price`.",
                    "minimum": 0
                  },
                  "total_price": {
                    "type": "number",
                    "description": "Field `total_price`.",
                    "minimum": 0
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "is_submit": {
                    "type": "boolean",
                    "description": "Field `is_submit`."
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "items": {
                    "type": "array",
                    "description": "List of nested `items` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "material_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "quantity": {
                          "type": "integer",
                          "description": "Field `items.*.quantity`.",
                          "minimum": 1
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `items.*.unit_price`.",
                          "minimum": 0
                        }
                      },
                      "required": []
                    }
                  },
                  "materials": {
                    "type": "array",
                    "description": "List of nested `materials` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "material_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "quantity": {
                          "type": "integer",
                          "description": "Field `materials.*.quantity`.",
                          "minimum": 1
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `materials.*.unit_price`.",
                          "minimum": 0
                        },
                        "remarks": {
                          "type": "string",
                          "description": "Field `materials.*.remarks`."
                        }
                      },
                      "required": []
                    }
                  },
                  "documents": {
                    "type": "array",
                    "description": "List of nested `documents` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "description": {
                          "type": "string",
                          "description": "Field `documents.*.description`."
                        },
                        "sla_days": {
                          "type": "integer",
                          "description": "Field `documents.*.sla_days`.",
                          "minimum": 1
                        },
                        "file": {
                          "type": "string",
                          "description": "Field `documents.*.file`."
                        }
                      },
                      "required": []
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Material Requisition"
        ],
        "summary": "Delete Mr",
        "description": "/** Remove the specified MR from storage. /",
        "operationId": "delete_api_v1_mr__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/mr/{id}/approve": {
      "post": {
        "tags": [
          "Material Requisition"
        ],
        "summary": "Approve Mr",
        "description": "/** Approve the MR via state machine transition. /",
        "operationId": "post_api_v1_mr__id__approve",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreMRRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  },
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "department_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_departments,id`.",
                    "example": 1
                  },
                  "engineer_name": {
                    "type": "string",
                    "description": "Field `engineer_name`.",
                    "maxLength": 255
                  },
                  "required_date": {
                    "type": "string",
                    "description": "Field `required_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "budget_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_budgets,id`.",
                    "example": 1
                  },
                  "material_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_materials,id`.",
                    "example": 1
                  },
                  "currency_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_currencies,id`.",
                    "example": 1
                  },
                  "quantity": {
                    "type": "integer",
                    "description": "Field `quantity`.",
                    "minimum": 1
                  },
                  "unit_price": {
                    "type": "number",
                    "description": "Field `unit_price`.",
                    "minimum": 0
                  },
                  "total_price": {
                    "type": "number",
                    "description": "Field `total_price`.",
                    "minimum": 0
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "items": {
                    "type": "array",
                    "description": "List of nested `items` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "material_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "quantity": {
                          "type": "integer",
                          "description": "Field `items.*.quantity`.",
                          "minimum": 1
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `items.*.unit_price`.",
                          "minimum": 0
                        }
                      },
                      "required": []
                    }
                  },
                  "materials": {
                    "type": "array",
                    "description": "List of nested `materials` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "material_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "quantity": {
                          "type": "integer",
                          "description": "Field `materials.*.quantity`.",
                          "minimum": 1
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `materials.*.unit_price`.",
                          "minimum": 0
                        },
                        "remarks": {
                          "type": "string",
                          "description": "Field `materials.*.remarks`."
                        }
                      },
                      "required": [
                        "material_id",
                        "quantity"
                      ]
                    }
                  },
                  "documents": {
                    "type": "array",
                    "description": "List of nested `documents` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "description": {
                          "type": "string",
                          "description": "Field `documents.*.description`."
                        },
                        "sla_days": {
                          "type": "integer",
                          "description": "Field `documents.*.sla_days`.",
                          "minimum": 1
                        },
                        "file": {
                          "type": "string",
                          "description": "Field `documents.*.file`."
                        }
                      },
                      "required": []
                    }
                  }
                },
                "required": [
                  "number",
                  "project_id",
                  "department_id",
                  "engineer_name",
                  "required_date"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/mr/{id}/review": {
      "post": {
        "tags": [
          "Material Requisition"
        ],
        "summary": "Create New Mr",
        "description": "/** Review the MR via state machine transition (Procurement Manager / Reviewer). /",
        "operationId": "post_api_v1_mr__id__review",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreMRRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  },
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "department_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_departments,id`.",
                    "example": 1
                  },
                  "engineer_name": {
                    "type": "string",
                    "description": "Field `engineer_name`.",
                    "maxLength": 255
                  },
                  "required_date": {
                    "type": "string",
                    "description": "Field `required_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "budget_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_budgets,id`.",
                    "example": 1
                  },
                  "material_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_materials,id`.",
                    "example": 1
                  },
                  "currency_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_currencies,id`.",
                    "example": 1
                  },
                  "quantity": {
                    "type": "integer",
                    "description": "Field `quantity`.",
                    "minimum": 1
                  },
                  "unit_price": {
                    "type": "number",
                    "description": "Field `unit_price`.",
                    "minimum": 0
                  },
                  "total_price": {
                    "type": "number",
                    "description": "Field `total_price`.",
                    "minimum": 0
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "items": {
                    "type": "array",
                    "description": "List of nested `items` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "material_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "quantity": {
                          "type": "integer",
                          "description": "Field `items.*.quantity`.",
                          "minimum": 1
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `items.*.unit_price`.",
                          "minimum": 0
                        }
                      },
                      "required": []
                    }
                  },
                  "materials": {
                    "type": "array",
                    "description": "List of nested `materials` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "material_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "quantity": {
                          "type": "integer",
                          "description": "Field `materials.*.quantity`.",
                          "minimum": 1
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `materials.*.unit_price`.",
                          "minimum": 0
                        },
                        "remarks": {
                          "type": "string",
                          "description": "Field `materials.*.remarks`."
                        }
                      },
                      "required": [
                        "material_id",
                        "quantity"
                      ]
                    }
                  },
                  "documents": {
                    "type": "array",
                    "description": "List of nested `documents` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "description": {
                          "type": "string",
                          "description": "Field `documents.*.description`."
                        },
                        "sla_days": {
                          "type": "integer",
                          "description": "Field `documents.*.sla_days`.",
                          "minimum": 1
                        },
                        "file": {
                          "type": "string",
                          "description": "Field `documents.*.file`."
                        }
                      },
                      "required": []
                    }
                  }
                },
                "required": [
                  "number",
                  "project_id",
                  "department_id",
                  "engineer_name",
                  "required_date"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/mr/{id}/revise": {
      "post": {
        "tags": [
          "Material Requisition"
        ],
        "summary": "Create New Mr",
        "description": "/** Revise the MR back to draft or previous stage with notes. /",
        "operationId": "post_api_v1_mr__id__revise",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `ReviseMRRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`.",
                    "minLength": 5,
                    "maxLength": 1000
                  }
                },
                "required": [
                  "notes"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/notification-inspections": {
      "get": {
        "tags": [
          "Notification for Inspection"
        ],
        "summary": "List Notification Inspections",
        "description": "Retrieve paginated collection of `Notification Inspections` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_notification_inspections",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Notification for Inspection"
        ],
        "summary": "Create New Notification Inspections",
        "description": "Create and persist a new `Notification Inspections` transaction record.",
        "operationId": "post_api_v1_notification_inspections",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreNFIRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_notification_for_inspections,id`.",
                    "example": 1
                  },
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "purchase_order_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_purchase_orders,id`.",
                    "example": 1
                  },
                  "vendor_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendors,id`.",
                    "example": 1
                  },
                  "vendor_progress_report_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_vendor_progress_reports,id`.",
                    "example": 1
                  },
                  "inspection_date": {
                    "type": "string",
                    "description": "Field `inspection_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "location": {
                    "type": "string",
                    "description": "Field `location`.",
                    "maxLength": 255
                  },
                  "scope_of_inspection": {
                    "type": "string",
                    "description": "Field `scope_of_inspection`."
                  },
                  "contact_person": {
                    "type": "string",
                    "description": "Field `contact_person`.",
                    "maxLength": 255
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "attachment": {
                    "type": "string",
                    "description": "Binary file upload for `attachment`.",
                    "format": "binary",
                    "maxLength": 20480
                  },
                  "docs": {
                    "type": "array",
                    "description": "Field `docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "docs.*": {
                    "type": "string",
                    "description": "Binary file upload for `docs.*`.",
                    "format": "binary",
                    "maxLength": 20480
                  },
                  "deleted_docs": {
                    "type": "array",
                    "description": "Field `deleted_docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "deleted_docs.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_notification_for_inspection_documents,id`."
                  },
                  "is_submit": {
                    "type": "boolean",
                    "description": "Field `is_submit`."
                  },
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  }
                },
                "required": [
                  "purchase_order_id",
                  "inspection_date",
                  "number"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/notification-inspections/{id}": {
      "get": {
        "tags": [
          "Notification for Inspection"
        ],
        "summary": "Get Notification Inspections Details",
        "description": "Retrieve full detail representation for a single `Notification Inspections` resource by unique identifier.",
        "operationId": "get_api_v1_notification_inspections__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/notification-inspections/{id}/confirm": {
      "post": {
        "tags": [
          "Notification for Inspection"
        ],
        "summary": "Create New Notification Inspections",
        "description": "Create and persist a new `Notification Inspections` transaction record.",
        "operationId": "post_api_v1_notification_inspections__id__confirm",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `ConfirmNFIRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "confirmed_date": {
                    "type": "string",
                    "description": "Field `confirmed_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "document": {
                    "type": "string",
                    "description": "Binary file upload for `document`.",
                    "format": "binary",
                    "maxLength": 20480
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/notification-inspections/{id}/propose": {
      "post": {
        "tags": [
          "Notification for Inspection"
        ],
        "summary": "Create New Notification Inspections",
        "description": "Create and persist a new `Notification Inspections` transaction record.",
        "operationId": "post_api_v1_notification_inspections__id__propose",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `ProposeNFIScheduleRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "proposed_date": {
                    "type": "string",
                    "description": "Field `proposed_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "document": {
                    "type": "string",
                    "description": "Binary file upload for `document`.",
                    "format": "binary",
                    "maxLength": 20480
                  }
                },
                "required": [
                  "proposed_date"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/notifications": {
      "get": {
        "tags": [
          "Notifications"
        ],
        "summary": "List Notifications",
        "description": "Retrieve paginated collection of `Notifications` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_notifications",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/notifications/read-all": {
      "put": {
        "tags": [
          "Notifications"
        ],
        "summary": "Update Notifications",
        "description": "Update and persist changes for an existing `Notifications` record.",
        "operationId": "put_api_v1_notifications_read_all",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload for `Update Notifications`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/notifications/unread-count": {
      "get": {
        "tags": [
          "Notifications"
        ],
        "summary": "List Notifications",
        "description": "Retrieve paginated collection of `Notifications` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_notifications_unread_count",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/notifications/{id}/read": {
      "put": {
        "tags": [
          "Notifications"
        ],
        "summary": "Update Notifications",
        "description": "Update and persist changes for an existing `Notifications` record.",
        "operationId": "put_api_v1_notifications__id__read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload for `Update Notifications`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/oe": {
      "get": {
        "tags": [
          "Owner Estimation"
        ],
        "summary": "List Oe",
        "description": "/** Display a paginated listing of Owner Estimations. /",
        "operationId": "get_api_v1_oe",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Owner Estimation"
        ],
        "summary": "Create New Oe",
        "description": "/** Store a newly created Owner Estimation in storage. /",
        "operationId": "post_api_v1_oe",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreOwnerEstimationRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "total_budget": {
                    "type": "number",
                    "description": "Field `total_budget`.",
                    "minimum": 0
                  },
                  "currency": {
                    "type": "string",
                    "description": "Field `currency`.",
                    "maxLength": 10
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "materials": {
                    "type": "array",
                    "description": "List of nested `materials` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "material_requisition_id": {
                          "type": "integer",
                          "description": "Field `materials.*.material_requisition_id`."
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `materials.*.unit_price`.",
                          "minimum": 0
                        },
                        "currency": {
                          "type": "string",
                          "description": "Field `materials.*.currency`.",
                          "maxLength": 10
                        },
                        "subtotal": {
                          "type": "number",
                          "description": "Field `materials.*.subtotal`.",
                          "minimum": 0
                        },
                        "quantity": {
                          "type": "integer",
                          "description": "Field `materials.*.quantity`.",
                          "minimum": 1
                        }
                      },
                      "required": [
                        "material_requisition_id",
                        "unit_price",
                        "currency"
                      ]
                    }
                  }
                },
                "required": [
                  "project_id",
                  "currency",
                  "materials"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/oe/{id}": {
      "get": {
        "tags": [
          "Owner Estimation"
        ],
        "summary": "Get Oe Details",
        "description": "/** Display the specified Owner Estimation detail. /",
        "operationId": "get_api_v1_oe__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Owner Estimation"
        ],
        "summary": "Update Oe",
        "description": "/** Update the specified Owner Estimation in storage. /",
        "operationId": "put_api_v1_oe__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `UpdateOwnerEstimationRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "total_budget": {
                    "type": "number",
                    "description": "Field `total_budget`.",
                    "minimum": 0
                  },
                  "currency": {
                    "type": "string",
                    "description": "Field `currency`.",
                    "maxLength": 5
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "materials": {
                    "type": "array",
                    "description": "List of nested `materials` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "material_requisition_id": {
                          "type": "integer",
                          "description": "Field `materials.*.material_requisition_id`."
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `materials.*.unit_price`.",
                          "minimum": 0
                        },
                        "currency": {
                          "type": "string",
                          "description": "Field `materials.*.currency`.",
                          "maxLength": 5
                        },
                        "subtotal": {
                          "type": "number",
                          "description": "Field `materials.*.subtotal`.",
                          "minimum": 0
                        },
                        "quantity": {
                          "type": "integer",
                          "description": "Field `materials.*.quantity`.",
                          "minimum": 1
                        }
                      },
                      "required": []
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Owner Estimation"
        ],
        "summary": "Delete Oe",
        "description": "/** Remove the specified Owner Estimation from storage. /",
        "operationId": "delete_api_v1_oe__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/oe/{id}/approve": {
      "post": {
        "tags": [
          "Owner Estimation"
        ],
        "summary": "Approve Oe",
        "description": "/** Approve Owner Estimation. /",
        "operationId": "post_api_v1_oe__id__approve",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreOwnerEstimationRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "total_budget": {
                    "type": "number",
                    "description": "Field `total_budget`.",
                    "minimum": 0
                  },
                  "currency": {
                    "type": "string",
                    "description": "Field `currency`.",
                    "maxLength": 10
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "materials": {
                    "type": "array",
                    "description": "List of nested `materials` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "material_requisition_id": {
                          "type": "integer",
                          "description": "Field `materials.*.material_requisition_id`."
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `materials.*.unit_price`.",
                          "minimum": 0
                        },
                        "currency": {
                          "type": "string",
                          "description": "Field `materials.*.currency`.",
                          "maxLength": 10
                        },
                        "subtotal": {
                          "type": "number",
                          "description": "Field `materials.*.subtotal`.",
                          "minimum": 0
                        },
                        "quantity": {
                          "type": "integer",
                          "description": "Field `materials.*.quantity`.",
                          "minimum": 1
                        }
                      },
                      "required": [
                        "material_requisition_id",
                        "unit_price",
                        "currency"
                      ]
                    }
                  }
                },
                "required": [
                  "project_id",
                  "currency",
                  "materials"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/oe/{id}/raise-to-management": {
      "post": {
        "tags": [
          "Owner Estimation"
        ],
        "summary": "Create New Oe",
        "description": "/** Raise Owner Estimation to Management review. /",
        "operationId": "post_api_v1_oe__id__raise_to_management",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreOwnerEstimationRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "total_budget": {
                    "type": "number",
                    "description": "Field `total_budget`.",
                    "minimum": 0
                  },
                  "currency": {
                    "type": "string",
                    "description": "Field `currency`.",
                    "maxLength": 10
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "materials": {
                    "type": "array",
                    "description": "List of nested `materials` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "material_requisition_id": {
                          "type": "integer",
                          "description": "Field `materials.*.material_requisition_id`."
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `materials.*.unit_price`.",
                          "minimum": 0
                        },
                        "currency": {
                          "type": "string",
                          "description": "Field `materials.*.currency`.",
                          "maxLength": 10
                        },
                        "subtotal": {
                          "type": "number",
                          "description": "Field `materials.*.subtotal`.",
                          "minimum": 0
                        },
                        "quantity": {
                          "type": "integer",
                          "description": "Field `materials.*.quantity`.",
                          "minimum": 1
                        }
                      },
                      "required": [
                        "material_requisition_id",
                        "unit_price",
                        "currency"
                      ]
                    }
                  }
                },
                "required": [
                  "project_id",
                  "currency",
                  "materials"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/osdr-reports": {
      "get": {
        "tags": [
          "Material Receive & OSDR"
        ],
        "summary": "List Osdr Reports",
        "description": "Retrieve paginated collection of `Osdr Reports` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_osdr_reports",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Material Receive & OSDR"
        ],
        "summary": "Create New Osdr Reports",
        "description": "Create and persist a new `Osdr Reports` transaction record.",
        "operationId": "post_api_v1_osdr_reports",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreOSDRRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_osdr_reports,id`.",
                    "example": 1
                  },
                  "source_type": {
                    "type": "string",
                    "description": "Field `source_type`.",
                    "enum": [
                      "hub",
                      "site"
                    ]
                  },
                  "source_id": {
                    "type": "integer",
                    "description": "Field `source_id`."
                  },
                  "report_number": {
                    "type": "string",
                    "description": "Field `report_number`.",
                    "maxLength": 100
                  },
                  "report_date": {
                    "type": "string",
                    "description": "Field `report_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "issue_type": {
                    "type": "string",
                    "description": "Field `issue_type`.",
                    "maxLength": 50
                  },
                  "description": {
                    "type": "string",
                    "description": "Field `description`."
                  },
                  "action_required": {
                    "type": "string",
                    "description": "Field `action_required`."
                  },
                  "resolved_by": {
                    "type": "integer",
                    "description": "Foreign key referencing `users,id`."
                  },
                  "resolved_at": {
                    "type": "string",
                    "description": "Field `resolved_at`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "osdr_document": {
                    "type": "string",
                    "description": "File attachment (pdf,jpg,jpeg,png,xlsx,xls,doc,docx).",
                    "format": "binary",
                    "maxLength": 51200
                  },
                  "details": {
                    "type": "array",
                    "description": "List of nested `details` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "item_id": {
                          "type": "integer",
                          "description": "Field `details.*.item_id`."
                        },
                        "item_name": {
                          "type": "string",
                          "description": "Field `details.*.item_name`."
                        },
                        "expected_quantity": {
                          "type": "number",
                          "description": "Field `details.*.expected_quantity`.",
                          "minimum": 0
                        },
                        "received_quantity": {
                          "type": "number",
                          "description": "Field `details.*.received_quantity`.",
                          "minimum": 0
                        },
                        "damaged_quantity": {
                          "type": "number",
                          "description": "Field `details.*.damaged_quantity`.",
                          "minimum": 0
                        },
                        "shortage_quantity": {
                          "type": "number",
                          "description": "Field `details.*.shortage_quantity`.",
                          "minimum": 0
                        },
                        "remarks": {
                          "type": "string",
                          "description": "Field `details.*.remarks`."
                        }
                      },
                      "required": []
                    }
                  },
                  "status": {
                    "type": "string",
                    "description": "Status/Type enumeration (OSDRStatus): open, under_review, resolved, closed",
                    "enum": [
                      "open",
                      "under_review",
                      "resolved",
                      "closed"
                    ]
                  }
                },
                "required": [
                  "source_type",
                  "source_id",
                  "report_number"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/osdr-reports/{id}": {
      "get": {
        "tags": [
          "Material Receive & OSDR"
        ],
        "summary": "Get Osdr Reports Details",
        "description": "Retrieve full detail representation for a single `Osdr Reports` resource by unique identifier.",
        "operationId": "get_api_v1_osdr_reports__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/packing-lists": {
      "get": {
        "tags": [
          "Packing List"
        ],
        "summary": "List Packing Lists",
        "description": "Retrieve paginated collection of `Packing Lists` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_packing_lists",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Packing List"
        ],
        "summary": "Create New Packing Lists",
        "description": "Create and persist a new `Packing Lists` transaction record.",
        "operationId": "post_api_v1_packing_lists",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StorePackingListRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_packing_lists,id`.",
                    "example": 1
                  },
                  "purchase_order_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_purchase_orders,id`.",
                    "example": 1
                  },
                  "irn_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_inspection_release_notes,id`.",
                    "example": 1
                  },
                  "shipping_method": {
                    "type": "string",
                    "description": "Field `shipping_method`.",
                    "maxLength": 50
                  },
                  "vessel_name": {
                    "type": "string",
                    "description": "Field `vessel_name`.",
                    "maxLength": 100
                  },
                  "container_number": {
                    "type": "string",
                    "description": "Field `container_number`.",
                    "maxLength": 100
                  },
                  "port_of_loading": {
                    "type": "string",
                    "description": "Field `port_of_loading`.",
                    "maxLength": 100
                  },
                  "port_of_discharge": {
                    "type": "string",
                    "description": "Field `port_of_discharge`.",
                    "maxLength": 100
                  },
                  "estimated_arrival": {
                    "type": "string",
                    "description": "Field `estimated_arrival`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "logistic_notes": {
                    "type": "string",
                    "description": "Field `logistic_notes`."
                  },
                  "docs": {
                    "type": "string",
                    "description": "Field `docs`."
                  },
                  "docs.*": {
                    "type": "string",
                    "description": "File attachment (pdf,jpg,jpeg,png,xlsx,xls,doc,docx).",
                    "format": "binary",
                    "maxLength": 51200
                  },
                  "deleted_docs": {
                    "type": "array",
                    "description": "Field `deleted_docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "deleted_docs.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_packing_list_documents,id`."
                  },
                  "items": {
                    "type": "array",
                    "description": "List of nested `items` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "purchase_order_detail_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `t_purchase_order_details,id`.",
                          "example": 1
                        },
                        "quantity_packed": {
                          "type": "number",
                          "description": "Field `items.*.quantity_packed`."
                        },
                        "unit_of_measure": {
                          "type": "string",
                          "description": "Field `items.*.unit_of_measure`.",
                          "maxLength": 50
                        },
                        "package_number": {
                          "type": "string",
                          "description": "Field `items.*.package_number`.",
                          "maxLength": 100
                        },
                        "gross_weight_kg": {
                          "type": "number",
                          "description": "Field `items.*.gross_weight_kg`.",
                          "minimum": 0
                        },
                        "net_weight_kg": {
                          "type": "number",
                          "description": "Field `items.*.net_weight_kg`.",
                          "minimum": 0
                        },
                        "dimensions": {
                          "type": "string",
                          "description": "Field `items.*.dimensions`.",
                          "maxLength": 100
                        },
                        "notes": {
                          "type": "string",
                          "description": "Field `items.*.notes`."
                        }
                      },
                      "required": []
                    }
                  },
                  "packing_list_number": {
                    "type": "string",
                    "description": "Field `packing_list_number`.",
                    "maxLength": 100
                  },
                  "status": {
                    "type": "string",
                    "description": "Status/Type enumeration (PackingListStatus): draft, complete, revise",
                    "enum": [
                      "draft",
                      "complete",
                      "revise"
                    ]
                  }
                },
                "required": [
                  "purchase_order_id",
                  "packing_list_number"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/packing-lists/hub-to-site": {
      "get": {
        "tags": [
          "Packing List Hub to Site"
        ],
        "summary": "List Packing Lists",
        "description": "Retrieve paginated collection of `Packing Lists` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_packing_lists_hub_to_site",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Packing List Hub to Site"
        ],
        "summary": "Create New Packing Lists",
        "description": "Create and persist a new `Packing Lists` transaction record.",
        "operationId": "post_api_v1_packing_lists_hub_to_site",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StorePackingListHubToSiteRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_packing_lists_hub_to_site,id`.",
                    "example": 1
                  },
                  "material_hub_receive_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_material_hub_receives,id`.",
                    "example": 1
                  },
                  "hub_location": {
                    "type": "string",
                    "description": "Field `hub_location`.",
                    "maxLength": 255
                  },
                  "packing_date": {
                    "type": "string",
                    "description": "Field `packing_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "vehicle_number": {
                    "type": "string",
                    "description": "Field `vehicle_number`.",
                    "maxLength": 50
                  },
                  "driver_name": {
                    "type": "string",
                    "description": "Field `driver_name`.",
                    "maxLength": 100
                  },
                  "estimated_arrival": {
                    "type": "string",
                    "description": "Field `estimated_arrival`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "destination_site": {
                    "type": "string",
                    "description": "Field `destination_site`.",
                    "maxLength": 255
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "do_document": {
                    "type": "string",
                    "description": "File attachment (pdf,jpg,jpeg,png,xlsx,xls,doc,docx).",
                    "format": "binary",
                    "maxLength": 51200
                  },
                  "items": {
                    "type": "array",
                    "description": "List of nested `items` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "hub_inventory_id": {
                          "type": "integer",
                          "description": "Field `items.*.hub_inventory_id`."
                        },
                        "purchase_order_detail_id": {
                          "type": "integer",
                          "description": "Field `items.*.purchase_order_detail_id`."
                        },
                        "item_id": {
                          "type": "integer",
                          "description": "Field `items.*.item_id`."
                        },
                        "item_name": {
                          "type": "string",
                          "description": "Field `items.*.item_name`."
                        },
                        "quantity": {
                          "type": "number",
                          "description": "Field `items.*.quantity`.",
                          "minimum": 0
                        },
                        "quantity_dispatched": {
                          "type": "number",
                          "description": "Field `items.*.quantity_dispatched`.",
                          "minimum": 0
                        },
                        "unit": {
                          "type": "string",
                          "description": "Field `items.*.unit`.",
                          "maxLength": 50
                        },
                        "package_type": {
                          "type": "string",
                          "description": "Field `items.*.package_type`.",
                          "maxLength": 100
                        },
                        "dimensions": {
                          "type": "string",
                          "description": "Field `items.*.dimensions`.",
                          "maxLength": 100
                        },
                        "weight_kg": {
                          "type": "number",
                          "description": "Field `items.*.weight_kg`.",
                          "minimum": 0
                        },
                        "volume_cbm": {
                          "type": "number",
                          "description": "Field `items.*.volume_cbm`.",
                          "minimum": 0
                        },
                        "notes": {
                          "type": "string",
                          "description": "Field `items.*.notes`."
                        }
                      },
                      "required": []
                    }
                  },
                  "documents": {
                    "type": "array",
                    "description": "Field `documents`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "documents.*": {
                    "type": "string",
                    "description": "File attachment (pdf,jpg,jpeg,png,xlsx,xls,doc,docx).",
                    "format": "binary",
                    "maxLength": 51200
                  },
                  "status": {
                    "type": "string",
                    "description": "Status/Type enumeration (PackingListHubToSiteStatus): draft, dispatched, arrived",
                    "enum": [
                      "draft",
                      "dispatched",
                      "arrived"
                    ]
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/packing-lists/hub-to-site/{id}": {
      "get": {
        "tags": [
          "Packing List Hub to Site"
        ],
        "summary": "Get Packing Lists Details",
        "description": "Retrieve full detail representation for a single `Packing Lists` resource by unique identifier.",
        "operationId": "get_api_v1_packing_lists_hub_to_site__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/packing-lists/{id}": {
      "get": {
        "tags": [
          "Packing List"
        ],
        "summary": "Get Packing Lists Details",
        "description": "Retrieve full detail representation for a single `Packing Lists` resource by unique identifier.",
        "operationId": "get_api_v1_packing_lists__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/packing-lists/{id}/revise": {
      "post": {
        "tags": [
          "Packing List"
        ],
        "summary": "Create New Packing Lists",
        "description": "Create and persist a new `Packing Lists` transaction record.",
        "operationId": "post_api_v1_packing_lists__id__revise",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `RevisePackingListRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "logistic_notes": {
                    "type": "string",
                    "description": "Field `logistic_notes`.",
                    "minLength": 5,
                    "maxLength": 1000
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`.",
                    "minLength": 5,
                    "maxLength": 1000
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/payments": {
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "List Payments",
        "description": "Retrieve paginated collection of `Payments` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_payments",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Create New Payments",
        "description": "Create and persist a new `Payments` transaction record.",
        "operationId": "post_api_v1_payments",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StorePaymentRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_payments,id`.",
                    "example": 1
                  },
                  "allocate_payment_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_allocate_payments,id`.",
                    "example": 1
                  },
                  "invoice_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_invoices,id`.",
                    "example": 1
                  },
                  "payment_number": {
                    "type": "string",
                    "description": "Field `payment_number`.",
                    "maxLength": 100
                  },
                  "payment_date": {
                    "type": "string",
                    "description": "Field `payment_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "payment_type": {
                    "type": "string",
                    "description": "Field `payment_type`.",
                    "enum": [
                      "down_payment",
                      "partial",
                      "full",
                      "final"
                    ]
                  },
                  "amount_paid": {
                    "type": "number",
                    "description": "Field `amount_paid`."
                  },
                  "currency": {
                    "type": "string",
                    "description": "Field `currency`.",
                    "maxLength": 10
                  },
                  "payment_method": {
                    "type": "string",
                    "description": "Field `payment_method`.",
                    "maxLength": 100
                  },
                  "bank_reference": {
                    "type": "string",
                    "description": "Field `bank_reference`.",
                    "maxLength": 255
                  },
                  "proof_of_payment": {
                    "type": "string",
                    "description": "File attachment (pdf,jpg,jpeg,png).",
                    "format": "binary",
                    "maxLength": 51200
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`.",
                    "enum": [
                      "pending",
                      "completed",
                      "failed",
                      "reversed"
                    ]
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  }
                },
                "required": [
                  "allocate_payment_id",
                  "invoice_id",
                  "payment_number",
                  "payment_date",
                  "payment_type",
                  "amount_paid"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/payments/allocate": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Create New Payments",
        "description": "Create and persist a new `Payments` transaction record.",
        "operationId": "post_api_v1_payments_allocate",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `AllocatePaymentRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_allocate_payments,id`.",
                    "example": 1
                  },
                  "invoice_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_invoices,id`.",
                    "example": 1
                  },
                  "budget_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_budgets,id`.",
                    "example": 1
                  },
                  "allocated_amount": {
                    "type": "number",
                    "description": "Field `allocated_amount`."
                  },
                  "allocation_date": {
                    "type": "string",
                    "description": "Field `allocation_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`.",
                    "enum": [
                      "draft",
                      "approved",
                      "paid"
                    ]
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  }
                },
                "required": [
                  "invoice_id",
                  "budget_id",
                  "allocated_amount"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/payments/{id}": {
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Get Payments Details",
        "description": "Retrieve full detail representation for a single `Payments` resource by unique identifier.",
        "operationId": "get_api_v1_payments__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/procurement-methods": {
      "get": {
        "tags": [
          "Procurement Methods"
        ],
        "summary": "List Procurement Methods",
        "description": "Retrieve paginated collection of `Procurement Methods` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_procurement_methods",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Procurement Methods"
        ],
        "summary": "Create New Procurement Methods",
        "description": "Create and persist a new `Procurement Methods` transaction record.",
        "operationId": "post_api_v1_procurement_methods",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `ProcurementMethodRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "search": {
                    "type": "string",
                    "description": "Field `search`."
                  },
                  "page": {
                    "type": "integer",
                    "description": "Field `page`."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Field `limit`."
                  },
                  "sort": {
                    "type": "string",
                    "description": "Field `sort`."
                  },
                  "direction": {
                    "type": "string",
                    "description": "Field `direction`.",
                    "enum": [
                      "asc",
                      "desc"
                    ]
                  },
                  "code": {
                    "type": "string",
                    "description": "Field `code`.",
                    "maxLength": 100
                  },
                  "name": {
                    "type": "string",
                    "description": "Field `name`.",
                    "maxLength": 255
                  },
                  "description": {
                    "type": "string",
                    "description": "Field `description`."
                  },
                  "type": {
                    "type": "string",
                    "description": "Field `type`."
                  },
                  "tender_type": {
                    "type": "string",
                    "description": "Field `tender_type`."
                  },
                  "stage_ids": {
                    "type": "array",
                    "description": "Field `stage_ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "stage_ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_procurement_stages,id`.",
                    "example": 1
                  },
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_procurement_methods,id`.",
                    "example": 1
                  },
                  "index": {
                    "type": "string",
                    "description": "Field `index`."
                  },
                  "store": {
                    "type": "string",
                    "description": "Field `store`."
                  },
                  "update": {
                    "type": "string",
                    "description": "Field `update`."
                  },
                  "deleteMany": {
                    "type": "string",
                    "description": "Field `deleteMany`."
                  }
                },
                "required": [
                  "code",
                  "name",
                  "ids"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/procurement-methods/delete-many": {
      "post": {
        "tags": [
          "Procurement Methods"
        ],
        "summary": "Batch Delete Procurement Methods",
        "description": "Atomically delete multiple `Procurement Methods` records specified by list of identifiers.",
        "operationId": "post_api_v1_procurement_methods_delete_many",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `ProcurementMethodRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "search": {
                    "type": "string",
                    "description": "Field `search`."
                  },
                  "page": {
                    "type": "integer",
                    "description": "Field `page`."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Field `limit`."
                  },
                  "sort": {
                    "type": "string",
                    "description": "Field `sort`."
                  },
                  "direction": {
                    "type": "string",
                    "description": "Field `direction`.",
                    "enum": [
                      "asc",
                      "desc"
                    ]
                  },
                  "code": {
                    "type": "string",
                    "description": "Field `code`.",
                    "maxLength": 100
                  },
                  "name": {
                    "type": "string",
                    "description": "Field `name`.",
                    "maxLength": 255
                  },
                  "description": {
                    "type": "string",
                    "description": "Field `description`."
                  },
                  "type": {
                    "type": "string",
                    "description": "Field `type`."
                  },
                  "tender_type": {
                    "type": "string",
                    "description": "Field `tender_type`."
                  },
                  "stage_ids": {
                    "type": "array",
                    "description": "Field `stage_ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "stage_ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_procurement_stages,id`.",
                    "example": 1
                  },
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_procurement_methods,id`.",
                    "example": 1
                  },
                  "index": {
                    "type": "string",
                    "description": "Field `index`."
                  },
                  "store": {
                    "type": "string",
                    "description": "Field `store`."
                  },
                  "update": {
                    "type": "string",
                    "description": "Field `update`."
                  },
                  "deleteMany": {
                    "type": "string",
                    "description": "Field `deleteMany`."
                  }
                },
                "required": [
                  "code",
                  "name",
                  "ids"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/procurement-methods/stages": {
      "get": {
        "tags": [
          "Procurement Methods"
        ],
        "summary": "List Procurement Methods",
        "description": "Retrieve paginated collection of `Procurement Methods` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_procurement_methods_stages",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/procurement-methods/{id}": {
      "get": {
        "tags": [
          "Procurement Methods"
        ],
        "summary": "Get Procurement Methods Details",
        "description": "Retrieve full detail representation for a single `Procurement Methods` resource by unique identifier.",
        "operationId": "get_api_v1_procurement_methods__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Procurement Methods"
        ],
        "summary": "Update Procurement Methods",
        "description": "Update and persist changes for an existing `Procurement Methods` record.",
        "operationId": "put_api_v1_procurement_methods__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `ProcurementMethodRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "search": {
                    "type": "string",
                    "description": "Field `search`."
                  },
                  "page": {
                    "type": "integer",
                    "description": "Field `page`."
                  },
                  "limit": {
                    "type": "integer",
                    "description": "Field `limit`."
                  },
                  "sort": {
                    "type": "string",
                    "description": "Field `sort`."
                  },
                  "direction": {
                    "type": "string",
                    "description": "Field `direction`.",
                    "enum": [
                      "asc",
                      "desc"
                    ]
                  },
                  "code": {
                    "type": "string",
                    "description": "Field `code`.",
                    "maxLength": 100
                  },
                  "name": {
                    "type": "string",
                    "description": "Field `name`.",
                    "maxLength": 255
                  },
                  "description": {
                    "type": "string",
                    "description": "Field `description`."
                  },
                  "type": {
                    "type": "string",
                    "description": "Field `type`."
                  },
                  "tender_type": {
                    "type": "string",
                    "description": "Field `tender_type`."
                  },
                  "stage_ids": {
                    "type": "array",
                    "description": "Field `stage_ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "stage_ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_procurement_stages,id`.",
                    "example": 1
                  },
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_procurement_methods,id`.",
                    "example": 1
                  },
                  "index": {
                    "type": "string",
                    "description": "Field `index`."
                  },
                  "store": {
                    "type": "string",
                    "description": "Field `store`."
                  },
                  "update": {
                    "type": "string",
                    "description": "Field `update`."
                  },
                  "deleteMany": {
                    "type": "string",
                    "description": "Field `deleteMany`."
                  }
                },
                "required": [
                  "code",
                  "name",
                  "ids"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Procurement Methods"
        ],
        "summary": "Delete Procurement Methods",
        "description": "Permanently or soft-delete the specified `Procurement Methods` record.",
        "operationId": "delete_api_v1_procurement_methods__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/procurements/public": {
      "get": {
        "tags": [
          "Procurement Methods"
        ],
        "summary": "List Procurements",
        "description": "/** Display public listing of active projects for external portals. /",
        "operationId": "get_api_v1_procurements_public",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/v1/procurements/{id}": {
      "get": {
        "tags": [
          "Procurement Methods"
        ],
        "summary": "Get Procurements Details",
        "description": "/** Display the specified project detail. /",
        "operationId": "get_api_v1_procurements__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/v1/projects": {
      "get": {
        "tags": [
          "Project Management"
        ],
        "summary": "List Projects",
        "description": "/** Display a paginated listing of projects with faceted search & filtering. /",
        "operationId": "get_api_v1_projects",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Filter by project status.",
            "schema": {
              "type": "string",
              "enum": [
                "draft",
                "active",
                "completed",
                "cancelled"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Project Management"
        ],
        "summary": "Create New Projects",
        "description": "/** Store a newly created project in storage. /",
        "operationId": "post_api_v1_projects",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreProjectRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "company_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_companies,id`.",
                    "example": 1
                  },
                  "code": {
                    "type": "string",
                    "description": "Field `code`.",
                    "maxLength": 100
                  },
                  "project_name": {
                    "type": "string",
                    "description": "Field `project_name`.",
                    "maxLength": 255
                  },
                  "client_contact_person": {
                    "type": "string",
                    "description": "Field `client_contact_person`.",
                    "maxLength": 255
                  },
                  "client_contact_email": {
                    "type": "string",
                    "description": "Field `client_contact_email`.",
                    "format": "email",
                    "maxLength": 255
                  },
                  "client_contact_phone": {
                    "type": "string",
                    "description": "Field `client_contact_phone`.",
                    "maxLength": 50
                  },
                  "method_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_procurement_methods,id`.",
                    "example": 1
                  },
                  "description": {
                    "type": "string",
                    "description": "Field `description`."
                  },
                  "scope_description": {
                    "type": "string",
                    "description": "Field `scope_description`."
                  },
                  "documents": {
                    "type": "array",
                    "description": "Field `documents`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "documents.*": {
                    "type": "string",
                    "description": "File attachment (pdf).",
                    "format": "binary",
                    "maxLength": 10240
                  },
                  "location_ids": {
                    "type": "array",
                    "description": "Field `location_ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "location_ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_locations,id`.",
                    "example": 1
                  },
                  "start_date": {
                    "type": "string",
                    "description": "Field `start_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "end_date": {
                    "type": "string",
                    "description": "Field `end_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`.",
                    "enum": [
                      "draft",
                      "active",
                      "completed",
                      "cancelled"
                    ]
                  }
                },
                "required": [
                  "company_id",
                  "code",
                  "project_name"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/projects/public": {
      "get": {
        "tags": [
          "Project Management"
        ],
        "summary": "List Projects",
        "description": "/** Display public listing of active projects for external portals. /",
        "operationId": "get_api_v1_projects_public",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Filter by project status.",
            "schema": {
              "type": "string",
              "enum": [
                "draft",
                "active",
                "completed",
                "cancelled"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/v1/projects/{id}": {
      "get": {
        "tags": [
          "Project Management"
        ],
        "summary": "Get Projects Details",
        "description": "/** Display the specified project detail. /",
        "operationId": "get_api_v1_projects__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "put": {
        "tags": [
          "Project Management"
        ],
        "summary": "Update Projects",
        "description": "/** Update the specified project in storage. /",
        "operationId": "put_api_v1_projects__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `UpdateProjectRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "description": "Field `code`.",
                    "maxLength": 100
                  },
                  "project_name": {
                    "type": "string",
                    "description": "Field `project_name`.",
                    "maxLength": 255
                  },
                  "client_contact_person": {
                    "type": "string",
                    "description": "Field `client_contact_person`.",
                    "maxLength": 255
                  },
                  "client_contact_email": {
                    "type": "string",
                    "description": "Field `client_contact_email`.",
                    "format": "email",
                    "maxLength": 255
                  },
                  "client_contact_phone": {
                    "type": "string",
                    "description": "Field `client_contact_phone`.",
                    "maxLength": 50
                  },
                  "method_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_procurement_methods,id`.",
                    "example": 1
                  },
                  "description": {
                    "type": "string",
                    "description": "Field `description`."
                  },
                  "scope_description": {
                    "type": "string",
                    "description": "Field `scope_description`."
                  },
                  "documents": {
                    "type": "array",
                    "description": "Field `documents`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "documents.*": {
                    "type": "string",
                    "description": "File attachment (pdf).",
                    "format": "binary",
                    "maxLength": 10240
                  },
                  "deleted_document_ids": {
                    "type": "array",
                    "description": "Field `deleted_document_ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "deleted_document_ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_project_documents,id`.",
                    "example": 1
                  },
                  "location_ids": {
                    "type": "array",
                    "description": "Field `location_ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "location_ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_locations,id`.",
                    "example": 1
                  },
                  "start_date": {
                    "type": "string",
                    "description": "Field `start_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "end_date": {
                    "type": "string",
                    "description": "Field `end_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`.",
                    "enum": [
                      "draft",
                      "active",
                      "completed",
                      "cancelled"
                    ]
                  }
                },
                "required": [
                  "code",
                  "project_name"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Project Management"
        ],
        "summary": "Delete Projects",
        "description": "/** Remove the specified project from storage. /",
        "operationId": "delete_api_v1_projects__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/projects/{id}/advance-stage": {
      "post": {
        "tags": [
          "Project Management"
        ],
        "summary": "Create New Projects",
        "description": "/** Advance the workflow stage of the project. /",
        "operationId": "post_api_v1_projects__id__advance_stage",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `AdvanceStageRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "target_stage_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_procurement_stages,id`.",
                    "example": 1
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/projects/{id}/materials": {
      "get": {
        "tags": [
          "Project Management"
        ],
        "summary": "Get Projects Details",
        "description": "/** Display materials belonging to the project. /",
        "operationId": "get_api_v1_projects__id__materials",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/projects/{id}/rollback-stage": {
      "post": {
        "tags": [
          "Project Management"
        ],
        "summary": "Create New Projects",
        "description": "/** Rollback the workflow stage of the project with audit logging. /",
        "operationId": "post_api_v1_projects__id__rollback_stage",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `RollbackStageRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "target_stage_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_procurement_stages,id`.",
                    "example": 1
                  },
                  "reason_notes": {
                    "type": "string",
                    "description": "Field `reason_notes`.",
                    "minLength": 5
                  }
                },
                "required": [
                  "target_stage_id",
                  "reason_notes"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/purchase-orders": {
      "get": {
        "tags": [
          "Purchase Order"
        ],
        "summary": "List Purchase Orders",
        "description": "Retrieve paginated collection of `Purchase Orders` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_purchase_orders",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Filter by PO status enum.",
            "schema": {
              "type": "string",
              "enum": [
                "draft",
                "submitted",
                "approved",
                "cancelled"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Purchase Order"
        ],
        "summary": "Create New Purchase Orders",
        "description": "Create and persist a new `Purchase Orders` transaction record.",
        "operationId": "post_api_v1_purchase_orders",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StorePurchaseOrderRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "po_number": {
                    "type": "string",
                    "description": "Field `po_number`.",
                    "maxLength": 100
                  },
                  "letter_of_award_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_letter_of_awards,id`.",
                    "example": 1
                  },
                  "contract_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_contracts,id`.",
                    "example": 1
                  },
                  "vendor_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendors,id`.",
                    "example": 1
                  },
                  "po_date": {
                    "type": "string",
                    "description": "Field `po_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "material_requisition_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_material_requisitions,id`.",
                    "example": 1
                  },
                  "delivery_date": {
                    "type": "string",
                    "description": "Field `delivery_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "total_value": {
                    "type": "number",
                    "description": "Field `total_value`.",
                    "minimum": 0
                  },
                  "currency": {
                    "type": "string",
                    "description": "Field `currency`.",
                    "maxLength": 10
                  },
                  "document_path": {
                    "type": "string",
                    "description": "Field `document_path`."
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "is_submit": {
                    "type": "boolean",
                    "description": "Field `is_submit`."
                  },
                  "items": {
                    "type": "array",
                    "description": "List of nested `items` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "item_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "quantity": {
                          "type": "number",
                          "description": "Field `items.*.quantity`."
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `items.*.unit_price`.",
                          "minimum": 0
                        },
                        "unit_of_measure": {
                          "type": "string",
                          "description": "Field `items.*.unit_of_measure`.",
                          "maxLength": 50
                        },
                        "total_price": {
                          "type": "number",
                          "description": "Field `items.*.total_price`.",
                          "minimum": 0
                        },
                        "specification": {
                          "type": "string",
                          "description": "Field `items.*.specification`.",
                          "maxLength": 1000
                        }
                      },
                      "required": []
                    }
                  }
                },
                "required": [
                  "po_number",
                  "letter_of_award_id",
                  "vendor_id",
                  "po_date"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/purchase-orders/contract/{contractId}": {
      "get": {
        "tags": [
          "Purchase Order"
        ],
        "summary": "Get Purchase Orders Details",
        "description": "Retrieve full detail representation for a single `Purchase Orders` resource by unique identifier.",
        "operationId": "get_api_v1_purchase_orders_contract__contractId_",
        "parameters": [
          {
            "name": "contractId",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `contractId`.",
            "schema": {
              "type": "string",
              "example": "PRJ-001"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/purchase-orders/mr/{mrId}/orders": {
      "get": {
        "tags": [
          "Purchase Order"
        ],
        "summary": "Get Purchase Orders Details",
        "description": "Retrieve full detail representation for a single `Purchase Orders` resource by unique identifier.",
        "operationId": "get_api_v1_purchase_orders_mr__mrId__orders",
        "parameters": [
          {
            "name": "mrId",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `mrId`.",
            "schema": {
              "type": "string",
              "example": "PRJ-001"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/purchase-orders/mr/{mrId}/vendors": {
      "get": {
        "tags": [
          "Purchase Order"
        ],
        "summary": "Get Purchase Orders Details",
        "description": "Retrieve full detail representation for a single `Purchase Orders` resource by unique identifier.",
        "operationId": "get_api_v1_purchase_orders_mr__mrId__vendors",
        "parameters": [
          {
            "name": "mrId",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `mrId`.",
            "schema": {
              "type": "string",
              "example": "PRJ-001"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/purchase-orders/pending-contracts": {
      "get": {
        "tags": [
          "Purchase Order"
        ],
        "summary": "List Pending Purchase Orders",
        "description": "Fetch all pending `Purchase Orders` records awaiting review or authorization.",
        "operationId": "get_api_v1_purchase_orders_pending_contracts",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Filter by PO status enum.",
            "schema": {
              "type": "string",
              "enum": [
                "draft",
                "submitted",
                "approved",
                "cancelled"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/purchase-orders/{id}": {
      "get": {
        "tags": [
          "Purchase Order"
        ],
        "summary": "Get Purchase Orders Details",
        "description": "Retrieve full detail representation for a single `Purchase Orders` resource by unique identifier.",
        "operationId": "get_api_v1_purchase_orders__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Purchase Order"
        ],
        "summary": "Update Purchase Orders",
        "description": "Update and persist changes for an existing `Purchase Orders` record.",
        "operationId": "put_api_v1_purchase_orders__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StorePurchaseOrderRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "po_number": {
                    "type": "string",
                    "description": "Field `po_number`.",
                    "maxLength": 100
                  },
                  "letter_of_award_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_letter_of_awards,id`.",
                    "example": 1
                  },
                  "contract_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_contracts,id`.",
                    "example": 1
                  },
                  "vendor_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendors,id`.",
                    "example": 1
                  },
                  "po_date": {
                    "type": "string",
                    "description": "Field `po_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "material_requisition_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_material_requisitions,id`.",
                    "example": 1
                  },
                  "delivery_date": {
                    "type": "string",
                    "description": "Field `delivery_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "total_value": {
                    "type": "number",
                    "description": "Field `total_value`.",
                    "minimum": 0
                  },
                  "currency": {
                    "type": "string",
                    "description": "Field `currency`.",
                    "maxLength": 10
                  },
                  "document_path": {
                    "type": "string",
                    "description": "Field `document_path`."
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "is_submit": {
                    "type": "boolean",
                    "description": "Field `is_submit`."
                  },
                  "items": {
                    "type": "array",
                    "description": "List of nested `items` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "item_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "quantity": {
                          "type": "number",
                          "description": "Field `items.*.quantity`."
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `items.*.unit_price`.",
                          "minimum": 0
                        },
                        "unit_of_measure": {
                          "type": "string",
                          "description": "Field `items.*.unit_of_measure`.",
                          "maxLength": 50
                        },
                        "total_price": {
                          "type": "number",
                          "description": "Field `items.*.total_price`.",
                          "minimum": 0
                        },
                        "specification": {
                          "type": "string",
                          "description": "Field `items.*.specification`.",
                          "maxLength": 1000
                        }
                      },
                      "required": []
                    }
                  }
                },
                "required": [
                  "po_number",
                  "letter_of_award_id",
                  "vendor_id",
                  "po_date"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/purchase-orders/{id}/approve": {
      "post": {
        "tags": [
          "Purchase Order"
        ],
        "summary": "Approve Purchase Orders",
        "description": "Execute formal approval workflow transition for `Purchase Orders`.",
        "operationId": "post_api_v1_purchase_orders__id__approve",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StorePurchaseOrderRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "po_number": {
                    "type": "string",
                    "description": "Field `po_number`.",
                    "maxLength": 100
                  },
                  "letter_of_award_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_letter_of_awards,id`.",
                    "example": 1
                  },
                  "contract_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_contracts,id`.",
                    "example": 1
                  },
                  "vendor_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendors,id`.",
                    "example": 1
                  },
                  "po_date": {
                    "type": "string",
                    "description": "Field `po_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "material_requisition_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_material_requisitions,id`.",
                    "example": 1
                  },
                  "delivery_date": {
                    "type": "string",
                    "description": "Field `delivery_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "total_value": {
                    "type": "number",
                    "description": "Field `total_value`.",
                    "minimum": 0
                  },
                  "currency": {
                    "type": "string",
                    "description": "Field `currency`.",
                    "maxLength": 10
                  },
                  "document_path": {
                    "type": "string",
                    "description": "Field `document_path`."
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "is_submit": {
                    "type": "boolean",
                    "description": "Field `is_submit`."
                  },
                  "items": {
                    "type": "array",
                    "description": "List of nested `items` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "item_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "quantity": {
                          "type": "number",
                          "description": "Field `items.*.quantity`."
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `items.*.unit_price`.",
                          "minimum": 0
                        },
                        "unit_of_measure": {
                          "type": "string",
                          "description": "Field `items.*.unit_of_measure`.",
                          "maxLength": 50
                        },
                        "total_price": {
                          "type": "number",
                          "description": "Field `items.*.total_price`.",
                          "minimum": 0
                        },
                        "specification": {
                          "type": "string",
                          "description": "Field `items.*.specification`.",
                          "maxLength": 1000
                        }
                      },
                      "required": []
                    }
                  }
                },
                "required": [
                  "po_number",
                  "letter_of_award_id",
                  "vendor_id",
                  "po_date"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/purchase-orders/{id}/pdf": {
      "get": {
        "tags": [
          "Purchase Order"
        ],
        "summary": "Get Purchase Orders Details",
        "description": "Retrieve full detail representation for a single `Purchase Orders` resource by unique identifier.",
        "operationId": "get_api_v1_purchase_orders__id__pdf",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/purchase-orders/{id}/reject": {
      "post": {
        "tags": [
          "Purchase Order"
        ],
        "summary": "Reject Purchase Orders",
        "description": "Reject `Purchase Orders` submission with revision notes.",
        "operationId": "post_api_v1_purchase_orders__id__reject",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `RejectPurchaseOrderRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`.",
                    "maxLength": 1000
                  }
                },
                "required": [
                  "notes"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/quotations": {
      "get": {
        "tags": [
          "Bid Submission"
        ],
        "summary": "List Quotations",
        "description": "/** Display a paginated listing of Quotations. /",
        "operationId": "get_api_v1_quotations",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Bid Submission"
        ],
        "summary": "Create New Quotations",
        "description": "/** Submit a newly created Quotation in storage. /",
        "operationId": "post_api_v1_quotations",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreQuotationRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "vendor_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendors,id`.",
                    "example": 1
                  },
                  "total_price": {
                    "type": "number",
                    "description": "Field `total_price`.",
                    "minimum": 0
                  },
                  "delivery_date": {
                    "type": "string",
                    "description": "Field `delivery_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "incoterm_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_incoterms,id`.",
                    "example": 1
                  },
                  "incoterms": {
                    "type": "string",
                    "description": "Field `incoterms`.",
                    "maxLength": 50
                  },
                  "incoterm_location": {
                    "type": "string",
                    "description": "Field `incoterm_location`.",
                    "maxLength": 255
                  },
                  "term_of_payment": {
                    "type": "string",
                    "description": "Field `term_of_payment`."
                  },
                  "materials": {
                    "type": "array",
                    "description": "List of nested `materials` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "mr_material_id": {
                          "type": "integer",
                          "description": "Field `materials.*.mr_material_id`."
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `materials.*.unit_price`.",
                          "minimum": 0
                        },
                        "subtotal": {
                          "type": "number",
                          "description": "Field `materials.*.subtotal`.",
                          "minimum": 0
                        },
                        "currency_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_currencies,id`.",
                          "example": 1
                        },
                        "remarks": {
                          "type": "string",
                          "description": "Field `materials.*.remarks`."
                        },
                        "documents": {
                          "type": "array",
                          "description": "Field `materials.*.documents`.",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "unit_price"
                      ]
                    }
                  },
                  "payment_terms": {
                    "type": "array",
                    "description": "List of nested `payment_terms` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "term": {
                          "type": "string",
                          "description": "Field `payment_terms.*.term`."
                        },
                        "percentage": {
                          "type": "number",
                          "description": "Field `payment_terms.*.percentage`.",
                          "minimum": 0,
                          "maximum": 100
                        },
                        "remarks": {
                          "type": "string",
                          "description": "Field `payment_terms.*.remarks`."
                        }
                      },
                      "required": [
                        "term",
                        "percentage"
                      ]
                    }
                  }
                },
                "required": [
                  "project_id",
                  "vendor_id",
                  "total_price",
                  "materials"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/quotations/{id}": {
      "get": {
        "tags": [
          "Bid Submission"
        ],
        "summary": "Get Quotations Details",
        "description": "/** Display the specified Quotation detail. /",
        "operationId": "get_api_v1_quotations__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Bid Submission"
        ],
        "summary": "Update Quotations",
        "description": "/** Update the specified Quotation in storage. /",
        "operationId": "put_api_v1_quotations__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `UpdateQuotationRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "total_price": {
                    "type": "number",
                    "description": "Field `total_price`.",
                    "minimum": 0
                  },
                  "delivery_date": {
                    "type": "string",
                    "description": "Field `delivery_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "incoterm_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_incoterms,id`.",
                    "example": 1
                  },
                  "incoterms": {
                    "type": "string",
                    "description": "Field `incoterms`.",
                    "maxLength": 50
                  },
                  "incoterm_location": {
                    "type": "string",
                    "description": "Field `incoterm_location`.",
                    "maxLength": 255
                  },
                  "term_of_payment": {
                    "type": "string",
                    "description": "Field `term_of_payment`."
                  },
                  "materials": {
                    "type": "array",
                    "description": "List of nested `materials` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "mr_material_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `t_material_requisition_materials,id`.",
                          "example": 1
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `materials.*.unit_price`.",
                          "minimum": 0
                        },
                        "subtotal": {
                          "type": "number",
                          "description": "Field `materials.*.subtotal`.",
                          "minimum": 0
                        },
                        "currency_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_currencies,id`.",
                          "example": 1
                        },
                        "remarks": {
                          "type": "string",
                          "description": "Field `materials.*.remarks`."
                        },
                        "documents": {
                          "type": "array",
                          "description": "Field `materials.*.documents`.",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "unit_price",
                        "subtotal"
                      ]
                    }
                  },
                  "payment_terms": {
                    "type": "array",
                    "description": "List of nested `payment_terms` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "term": {
                          "type": "string",
                          "description": "Field `payment_terms.*.term`."
                        },
                        "percentage": {
                          "type": "number",
                          "description": "Field `payment_terms.*.percentage`.",
                          "minimum": 0,
                          "maximum": 100
                        },
                        "remarks": {
                          "type": "string",
                          "description": "Field `payment_terms.*.remarks`."
                        }
                      },
                      "required": [
                        "term",
                        "percentage"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Bid Submission"
        ],
        "summary": "Delete Quotations",
        "description": "/** Remove the specified Quotation from storage. /",
        "operationId": "delete_api_v1_quotations__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/quotations/{id}/withdraw": {
      "post": {
        "tags": [
          "Bid Submission"
        ],
        "summary": "Create New Quotations",
        "description": "/** Withdraw quotation submission. /",
        "operationId": "post_api_v1_quotations__id__withdraw",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreQuotationRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "vendor_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendors,id`.",
                    "example": 1
                  },
                  "total_price": {
                    "type": "number",
                    "description": "Field `total_price`.",
                    "minimum": 0
                  },
                  "delivery_date": {
                    "type": "string",
                    "description": "Field `delivery_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "incoterm_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_incoterms,id`.",
                    "example": 1
                  },
                  "incoterms": {
                    "type": "string",
                    "description": "Field `incoterms`.",
                    "maxLength": 50
                  },
                  "incoterm_location": {
                    "type": "string",
                    "description": "Field `incoterm_location`.",
                    "maxLength": 255
                  },
                  "term_of_payment": {
                    "type": "string",
                    "description": "Field `term_of_payment`."
                  },
                  "materials": {
                    "type": "array",
                    "description": "List of nested `materials` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "mr_material_id": {
                          "type": "integer",
                          "description": "Field `materials.*.mr_material_id`."
                        },
                        "unit_price": {
                          "type": "number",
                          "description": "Field `materials.*.unit_price`.",
                          "minimum": 0
                        },
                        "subtotal": {
                          "type": "number",
                          "description": "Field `materials.*.subtotal`.",
                          "minimum": 0
                        },
                        "currency_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_currencies,id`.",
                          "example": 1
                        },
                        "remarks": {
                          "type": "string",
                          "description": "Field `materials.*.remarks`."
                        },
                        "documents": {
                          "type": "array",
                          "description": "Field `materials.*.documents`.",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "unit_price"
                      ]
                    }
                  },
                  "payment_terms": {
                    "type": "array",
                    "description": "List of nested `payment_terms` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "term": {
                          "type": "string",
                          "description": "Field `payment_terms.*.term`."
                        },
                        "percentage": {
                          "type": "number",
                          "description": "Field `payment_terms.*.percentage`.",
                          "minimum": 0,
                          "maximum": 100
                        },
                        "remarks": {
                          "type": "string",
                          "description": "Field `payment_terms.*.remarks`."
                        }
                      },
                      "required": [
                        "term",
                        "percentage"
                      ]
                    }
                  }
                },
                "required": [
                  "project_id",
                  "vendor_id",
                  "total_price",
                  "materials"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/rfp": {
      "get": {
        "tags": [
          "Invitation to Bid"
        ],
        "summary": "List Rfp",
        "description": "/** Display a paginated listing of Request for Proposals. /",
        "operationId": "get_api_v1_rfp",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Invitation to Bid"
        ],
        "summary": "Create New Rfp",
        "description": "/** Store a newly created Request for Proposal in storage. /",
        "operationId": "post_api_v1_rfp",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreRequestForProposalRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  },
                  "title": {
                    "type": "string",
                    "description": "Field `title`.",
                    "maxLength": 255
                  },
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "material_requisition_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_material_requisitions,id`.",
                    "example": 1
                  },
                  "method_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_procurement_methods,id`.",
                    "example": 1
                  },
                  "bid_type": {
                    "type": "string",
                    "description": "Field `bid_type`.",
                    "enum": [
                      "tender",
                      "direct"
                    ]
                  },
                  "tender_type": {
                    "type": "string",
                    "description": "Field `tender_type`.",
                    "enum": [
                      "purchase_order",
                      "sales_order"
                    ]
                  },
                  "currency": {
                    "type": "string",
                    "description": "Field `currency`.",
                    "maxLength": 10
                  },
                  "is_submit": {
                    "type": "boolean",
                    "description": "Field `is_submit`."
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "delivery_date": {
                    "type": "string",
                    "description": "Field `delivery_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "incoterm_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_incoterms,id`.",
                    "example": 1
                  },
                  "incoterms": {
                    "type": "string",
                    "description": "Field `incoterms`.",
                    "maxLength": 50
                  },
                  "incoterm_location": {
                    "type": "string",
                    "description": "Field `incoterm_location`.",
                    "maxLength": 255
                  },
                  "term_of_payment": {
                    "type": "string",
                    "description": "Field `term_of_payment`."
                  },
                  "cbt_type": {
                    "type": "string",
                    "description": "Field `cbt_type`."
                  },
                  "bid_time": {
                    "type": "string",
                    "description": "Field `bid_time`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "bid_duration": {
                    "type": "integer",
                    "description": "Field `bid_duration`.",
                    "minimum": 1
                  },
                  "show_price_digit": {
                    "type": "integer",
                    "description": "Field `show_price_digit`.",
                    "minimum": 0
                  },
                  "vendor_ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendors,id`.",
                    "example": 1
                  },
                  "category_ids": {
                    "type": "array",
                    "description": "Field `category_ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "category_ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendor_categories,id`.",
                    "example": 1
                  },
                  "items": {
                    "type": "array",
                    "description": "List of nested `items` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "item_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "quantity": {
                          "type": "number",
                          "description": "Field `items.*.quantity`."
                        },
                        "remarks": {
                          "type": "string",
                          "description": "Field `items.*.remarks`."
                        }
                      },
                      "required": [
                        "item_id",
                        "quantity"
                      ]
                    }
                  },
                  "docs": {
                    "type": "string",
                    "description": "Field `docs`."
                  },
                  "docs.*": {
                    "type": "string",
                    "description": "Binary file upload for `docs.*`.",
                    "format": "binary",
                    "maxLength": 51200
                  },
                  "documents": {
                    "type": "array",
                    "description": "List of nested `documents` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "file_name": {
                          "type": "string",
                          "description": "Field `documents.*.file_name`."
                        },
                        "file_path": {
                          "type": "string",
                          "description": "Field `documents.*.file_path`."
                        },
                        "description": {
                          "type": "string",
                          "description": "Field `documents.*.description`."
                        }
                      },
                      "required": []
                    }
                  },
                  "deleted_docs": {
                    "type": "array",
                    "description": "Field `deleted_docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "deleted_docs.*": {
                    "type": "integer",
                    "description": "Field `deleted_docs.*`."
                  }
                },
                "required": [
                  "number",
                  "title",
                  "project_id"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/rfp/{id}": {
      "get": {
        "tags": [
          "Invitation to Bid"
        ],
        "summary": "Get Rfp Details",
        "description": "/** Display the specified Request for Proposal detail. /",
        "operationId": "get_api_v1_rfp__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Invitation to Bid"
        ],
        "summary": "Update Rfp",
        "description": "/** Update the specified Request for Proposal in storage. /",
        "operationId": "put_api_v1_rfp__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `UpdateRequestForProposalRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "description": "Field `title`.",
                    "maxLength": 255
                  },
                  "method_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_procurement_methods,id`.",
                    "example": 1
                  },
                  "bid_type": {
                    "type": "string",
                    "description": "Field `bid_type`.",
                    "enum": [
                      "tender",
                      "direct"
                    ]
                  },
                  "tender_type": {
                    "type": "string",
                    "description": "Field `tender_type`.",
                    "enum": [
                      "purchase_order",
                      "sales_order"
                    ]
                  },
                  "currency": {
                    "type": "string",
                    "description": "Field `currency`.",
                    "maxLength": 10
                  },
                  "is_submit": {
                    "type": "boolean",
                    "description": "Field `is_submit`."
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "delivery_date": {
                    "type": "string",
                    "description": "Field `delivery_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "incoterm_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_incoterms,id`.",
                    "example": 1
                  },
                  "incoterms": {
                    "type": "string",
                    "description": "Field `incoterms`.",
                    "maxLength": 50
                  },
                  "incoterm_location": {
                    "type": "string",
                    "description": "Field `incoterm_location`.",
                    "maxLength": 255
                  },
                  "term_of_payment": {
                    "type": "string",
                    "description": "Field `term_of_payment`."
                  },
                  "cbt_type": {
                    "type": "string",
                    "description": "Field `cbt_type`."
                  },
                  "bid_time": {
                    "type": "string",
                    "description": "Field `bid_time`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "bid_duration": {
                    "type": "integer",
                    "description": "Field `bid_duration`.",
                    "minimum": 1
                  },
                  "show_price_digit": {
                    "type": "integer",
                    "description": "Field `show_price_digit`.",
                    "minimum": 0
                  },
                  "vendor_ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendors,id`.",
                    "example": 1
                  },
                  "category_ids": {
                    "type": "array",
                    "description": "Field `category_ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "category_ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendor_categories,id`.",
                    "example": 1
                  },
                  "items": {
                    "type": "array",
                    "description": "List of nested `items` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "item_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "quantity": {
                          "type": "number",
                          "description": "Field `items.*.quantity`."
                        },
                        "remarks": {
                          "type": "string",
                          "description": "Field `items.*.remarks`."
                        }
                      },
                      "required": [
                        "item_id",
                        "quantity"
                      ]
                    }
                  },
                  "docs": {
                    "type": "string",
                    "description": "Field `docs`."
                  },
                  "docs.*": {
                    "type": "string",
                    "description": "Binary file upload for `docs.*`.",
                    "format": "binary",
                    "maxLength": 51200
                  },
                  "documents": {
                    "type": "array",
                    "description": "List of nested `documents` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "file_name": {
                          "type": "string",
                          "description": "Field `documents.*.file_name`."
                        },
                        "file_path": {
                          "type": "string",
                          "description": "Field `documents.*.file_path`."
                        },
                        "description": {
                          "type": "string",
                          "description": "Field `documents.*.description`."
                        }
                      },
                      "required": []
                    }
                  },
                  "deleted_docs": {
                    "type": "array",
                    "description": "Field `deleted_docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "deleted_docs.*": {
                    "type": "integer",
                    "description": "Field `deleted_docs.*`."
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Invitation to Bid"
        ],
        "summary": "Delete Rfp",
        "description": "/** Remove the specified Request for Proposal from storage. /",
        "operationId": "delete_api_v1_rfp__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/rfp/{id}/extend": {
      "post": {
        "tags": [
          "Invitation to Bid"
        ],
        "summary": "Create New Rfp",
        "description": "/** Request or execute deadline extension. /",
        "operationId": "post_api_v1_rfp__id__extend",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `ExtendRequestForProposalRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "requested_closing_date": {
                    "type": "string",
                    "description": "Field `requested_closing_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  }
                },
                "required": [
                  "requested_closing_date"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/rfp/{id}/publish": {
      "post": {
        "tags": [
          "Invitation to Bid"
        ],
        "summary": "Create New Rfp",
        "description": "/** Publish the specified Request for Proposal to invited vendors. /",
        "operationId": "post_api_v1_rfp__id__publish",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreRequestForProposalRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  },
                  "title": {
                    "type": "string",
                    "description": "Field `title`.",
                    "maxLength": 255
                  },
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "material_requisition_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_material_requisitions,id`.",
                    "example": 1
                  },
                  "method_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_procurement_methods,id`.",
                    "example": 1
                  },
                  "bid_type": {
                    "type": "string",
                    "description": "Field `bid_type`.",
                    "enum": [
                      "tender",
                      "direct"
                    ]
                  },
                  "tender_type": {
                    "type": "string",
                    "description": "Field `tender_type`.",
                    "enum": [
                      "purchase_order",
                      "sales_order"
                    ]
                  },
                  "currency": {
                    "type": "string",
                    "description": "Field `currency`.",
                    "maxLength": 10
                  },
                  "is_submit": {
                    "type": "boolean",
                    "description": "Field `is_submit`."
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "delivery_date": {
                    "type": "string",
                    "description": "Field `delivery_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "incoterm_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_incoterms,id`.",
                    "example": 1
                  },
                  "incoterms": {
                    "type": "string",
                    "description": "Field `incoterms`.",
                    "maxLength": 50
                  },
                  "incoterm_location": {
                    "type": "string",
                    "description": "Field `incoterm_location`.",
                    "maxLength": 255
                  },
                  "term_of_payment": {
                    "type": "string",
                    "description": "Field `term_of_payment`."
                  },
                  "cbt_type": {
                    "type": "string",
                    "description": "Field `cbt_type`."
                  },
                  "bid_time": {
                    "type": "string",
                    "description": "Field `bid_time`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "bid_duration": {
                    "type": "integer",
                    "description": "Field `bid_duration`.",
                    "minimum": 1
                  },
                  "show_price_digit": {
                    "type": "integer",
                    "description": "Field `show_price_digit`.",
                    "minimum": 0
                  },
                  "vendor_ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendors,id`.",
                    "example": 1
                  },
                  "category_ids": {
                    "type": "array",
                    "description": "Field `category_ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "category_ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendor_categories,id`.",
                    "example": 1
                  },
                  "items": {
                    "type": "array",
                    "description": "List of nested `items` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "item_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "quantity": {
                          "type": "number",
                          "description": "Field `items.*.quantity`."
                        },
                        "remarks": {
                          "type": "string",
                          "description": "Field `items.*.remarks`."
                        }
                      },
                      "required": [
                        "item_id",
                        "quantity"
                      ]
                    }
                  },
                  "docs": {
                    "type": "string",
                    "description": "Field `docs`."
                  },
                  "docs.*": {
                    "type": "string",
                    "description": "Binary file upload for `docs.*`.",
                    "format": "binary",
                    "maxLength": 51200
                  },
                  "documents": {
                    "type": "array",
                    "description": "List of nested `documents` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "file_name": {
                          "type": "string",
                          "description": "Field `documents.*.file_name`."
                        },
                        "file_path": {
                          "type": "string",
                          "description": "Field `documents.*.file_path`."
                        },
                        "description": {
                          "type": "string",
                          "description": "Field `documents.*.description`."
                        }
                      },
                      "required": []
                    }
                  },
                  "deleted_docs": {
                    "type": "array",
                    "description": "Field `deleted_docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "deleted_docs.*": {
                    "type": "integer",
                    "description": "Field `deleted_docs.*`."
                  }
                },
                "required": [
                  "number",
                  "title",
                  "project_id"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/rfp/{id}/split": {
      "post": {
        "tags": [
          "Invitation to Bid"
        ],
        "summary": "Create New Rfp",
        "description": "/** Split Request for Proposal package into sub-packages. /",
        "operationId": "post_api_v1_rfp__id__split",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `SplitRequestForProposalRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "packages": {
                    "type": "array",
                    "description": "List of nested `packages` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "number": {
                          "type": "string",
                          "description": "Field `packages.*.number`.",
                          "maxLength": 100
                        },
                        "title": {
                          "type": "string",
                          "description": "Field `packages.*.title`.",
                          "maxLength": 255
                        },
                        "currency": {
                          "type": "string",
                          "description": "Field `packages.*.currency`.",
                          "maxLength": 10
                        },
                        "vendor_ids": {
                          "type": "array",
                          "description": "Field `packages.*.vendor_ids`.",
                          "items": {
                            "type": "string"
                          }
                        },
                        "items": {
                          "type": "array",
                          "description": "Field `packages.*.items`.",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "number",
                        "title",
                        "items"
                      ]
                    }
                  }
                },
                "required": [
                  "packages"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/scrapyard-custodians": {
      "get": {
        "tags": [
          "Scrapyard Custodian"
        ],
        "summary": "List Scrapyard Custodians",
        "description": "Retrieve paginated collection of `Scrapyard Custodians` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_scrapyard_custodians",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Scrapyard Custodian"
        ],
        "summary": "Create New Scrapyard Custodians",
        "description": "Create and persist a new `Scrapyard Custodians` transaction record.",
        "operationId": "post_api_v1_scrapyard_custodians",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreScrapyardCustodianRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "scrapyard_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_scrapyards,id`.",
                    "example": 1
                  },
                  "final_custodian": {
                    "type": "string",
                    "description": "Field `final_custodian`.",
                    "maxLength": 255
                  },
                  "final_location": {
                    "type": "string",
                    "description": "Field `final_location`.",
                    "maxLength": 255
                  },
                  "disposal_status": {
                    "type": "string",
                    "description": "Field `disposal_status`.",
                    "maxLength": 100
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`.",
                    "enum": [
                      "draft",
                      "submitted",
                      "verified",
                      "completed",
                      "rejected"
                    ]
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "docs": {
                    "type": "array",
                    "description": "Field `docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "docs.*": {
                    "type": "string",
                    "description": "Binary file upload for `docs.*`.",
                    "format": "binary",
                    "maxLength": 20480
                  },
                  "deleted_doc_ids": {
                    "type": "array",
                    "description": "Field `deleted_doc_ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "deleted_doc_ids.*": {
                    "type": "integer",
                    "description": "Field `deleted_doc_ids.*`."
                  }
                },
                "required": [
                  "scrapyard_id"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/scrapyard-custodians/{scrapyardId}": {
      "get": {
        "tags": [
          "Scrapyard Custodian"
        ],
        "summary": "Get Scrapyard Custodians Details",
        "description": "Retrieve full detail representation for a single `Scrapyard Custodians` resource by unique identifier.",
        "operationId": "get_api_v1_scrapyard_custodians__scrapyardId_",
        "parameters": [
          {
            "name": "scrapyardId",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `scrapyardId`.",
            "schema": {
              "type": "string",
              "example": "PRJ-001"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/scrapyards": {
      "get": {
        "tags": [
          "Scrapyard Management"
        ],
        "summary": "List Scrapyards",
        "description": "Retrieve paginated collection of `Scrapyards` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_scrapyards",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Scrapyard Management"
        ],
        "summary": "Create New Scrapyards",
        "description": "Create and persist a new `Scrapyards` transaction record.",
        "operationId": "post_api_v1_scrapyards",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreScrapyardRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_scrapyards,id`.",
                    "example": 1
                  },
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  },
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "company_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_companies,id`.",
                    "example": 1
                  },
                  "location_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_locations,id`.",
                    "example": 1
                  },
                  "title": {
                    "type": "string",
                    "description": "Field `title`.",
                    "maxLength": 255
                  },
                  "date": {
                    "type": "string",
                    "description": "Field `date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "is_publish": {
                    "type": "boolean",
                    "description": "Field `is_publish`."
                  },
                  "opening_date": {
                    "type": "string",
                    "description": "Field `opening_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "closing_date": {
                    "type": "string",
                    "description": "Field `closing_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "items": {
                    "type": "array",
                    "description": "List of nested `items` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "Field `items.*.id`."
                        },
                        "material_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "construction_material_request_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `t_construction_material_requests,id`.",
                          "example": 1
                        },
                        "quantity": {
                          "type": "number",
                          "description": "Field `items.*.quantity`."
                        },
                        "unit": {
                          "type": "string",
                          "description": "Field `items.*.unit`.",
                          "maxLength": 50
                        },
                        "condition": {
                          "type": "string",
                          "description": "Field `items.*.condition`.",
                          "maxLength": 100
                        },
                        "status": {
                          "type": "string",
                          "description": "Field `items.*.status`.",
                          "maxLength": 100
                        },
                        "price": {
                          "type": "number",
                          "description": "Field `items.*.price`.",
                          "minimum": 0
                        },
                        "currency_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_currencies,id`.",
                          "example": 1
                        }
                      },
                      "required": []
                    }
                  },
                  "deleted_item_ids": {
                    "type": "array",
                    "description": "Field `deleted_item_ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "deleted_item_ids.*": {
                    "type": "integer",
                    "description": "Field `deleted_item_ids.*`."
                  }
                },
                "required": [
                  "number",
                  "title",
                  "date"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/scrapyards/{id}": {
      "get": {
        "tags": [
          "Scrapyard Management"
        ],
        "summary": "Get Scrapyards Details",
        "description": "Retrieve full detail representation for a single `Scrapyards` resource by unique identifier.",
        "operationId": "get_api_v1_scrapyards__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/shipment-monitorings": {
      "get": {
        "tags": [
          "Shipment Tracking"
        ],
        "summary": "List Shipment Monitorings",
        "description": "Retrieve paginated collection of `Shipment Monitorings` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_shipment_monitorings",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Shipment Tracking"
        ],
        "summary": "Create New Shipment Monitorings",
        "description": "Create and persist a new `Shipment Monitorings` transaction record.",
        "operationId": "post_api_v1_shipment_monitorings",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreShipmentMonitoringRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_shipment_monitorings,id`.",
                    "example": 1
                  },
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "shipment_notification_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_shipment_notifications,id`.",
                    "example": 1
                  },
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  },
                  "location": {
                    "type": "string",
                    "description": "Field `location`.",
                    "maxLength": 255
                  },
                  "status": {
                    "type": "string",
                    "description": "Field `status`.",
                    "maxLength": 100
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "data_date": {
                    "type": "string",
                    "description": "Field `data_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "shipper_forwarder": {
                    "type": "string",
                    "description": "Field `shipper_forwarder`.",
                    "maxLength": 255
                  },
                  "etd": {
                    "type": "string",
                    "description": "Field `etd`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "eta": {
                    "type": "string",
                    "description": "Field `eta`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "images": {
                    "type": "array",
                    "description": "Field `images`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "images.*": {
                    "type": "string",
                    "description": "Binary file upload for `images.*`.",
                    "format": "binary",
                    "maxLength": 20480
                  },
                  "logs": {
                    "type": "array",
                    "description": "List of nested `logs` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "location": {
                          "type": "string",
                          "description": "Field `logs.*.location`.",
                          "maxLength": 255
                        },
                        "status": {
                          "type": "string",
                          "description": "Field `logs.*.status`.",
                          "maxLength": 100
                        },
                        "notes": {
                          "type": "string",
                          "description": "Field `logs.*.notes`."
                        },
                        "data_date": {
                          "type": "string",
                          "description": "Field `logs.*.data_date`.",
                          "format": "date",
                          "example": "2026-03-25"
                        },
                        "shipper_forwarder": {
                          "type": "string",
                          "description": "Field `logs.*.shipper_forwarder`.",
                          "maxLength": 255
                        },
                        "etd": {
                          "type": "string",
                          "description": "Field `logs.*.etd`.",
                          "format": "date",
                          "example": "2026-03-25"
                        },
                        "eta": {
                          "type": "string",
                          "description": "Field `logs.*.eta`.",
                          "format": "date",
                          "example": "2026-03-25"
                        }
                      },
                      "required": []
                    }
                  }
                },
                "required": [
                  "number"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/shipment-monitorings/{id}": {
      "get": {
        "tags": [
          "Shipment Tracking"
        ],
        "summary": "Get Shipment Monitorings Details",
        "description": "Retrieve full detail representation for a single `Shipment Monitorings` resource by unique identifier.",
        "operationId": "get_api_v1_shipment_monitorings__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/shipment-notifications": {
      "get": {
        "tags": [
          "Shipment Notification"
        ],
        "summary": "List Shipment Notifications",
        "description": "Retrieve paginated collection of `Shipment Notifications` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_shipment_notifications",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Shipment Notification"
        ],
        "summary": "Create New Shipment Notifications",
        "description": "Create and persist a new `Shipment Notifications` transaction record.",
        "operationId": "post_api_v1_shipment_notifications",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreShipmentNotificationRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_shipment_notifications,id`.",
                    "example": 1
                  },
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "inspection_release_note_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_inspection_release_notes,id`.",
                    "example": 1
                  },
                  "mrn_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_material_release_notes,id`.",
                    "example": 1
                  },
                  "destination_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_locations,id`.",
                    "example": 1
                  },
                  "forwarder_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendors,id`.",
                    "example": 1
                  },
                  "incoterm_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_incoterms,id`.",
                    "example": 1
                  },
                  "cargo_description": {
                    "type": "string",
                    "description": "Field `cargo_description`."
                  },
                  "item_numbers": {
                    "type": "string",
                    "description": "Field `item_numbers`."
                  },
                  "shipment_number": {
                    "type": "string",
                    "description": "Field `shipment_number`.",
                    "maxLength": 100
                  },
                  "shipping_mode": {
                    "type": "string",
                    "description": "Field `shipping_mode`.",
                    "maxLength": 100
                  },
                  "shipment_type": {
                    "type": "string",
                    "description": "Field `shipment_type`.",
                    "maxLength": 100
                  },
                  "pickup_address": {
                    "type": "string",
                    "description": "Field `pickup_address`."
                  },
                  "delivery_address": {
                    "type": "string",
                    "description": "Field `delivery_address`."
                  },
                  "issue_date": {
                    "type": "string",
                    "description": "Field `issue_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "estimated_arrival": {
                    "type": "string",
                    "description": "Field `estimated_arrival`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "is_submit": {
                    "type": "boolean",
                    "description": "Field `is_submit`."
                  },
                  "materials": {
                    "type": "array",
                    "description": "List of nested `materials` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "material_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "item_code": {
                          "type": "string",
                          "description": "Field `materials.*.item_code`.",
                          "maxLength": 100
                        },
                        "item_name": {
                          "type": "string",
                          "description": "Field `materials.*.item_name`.",
                          "maxLength": 255
                        },
                        "quantity": {
                          "type": "number",
                          "description": "Field `materials.*.quantity`.",
                          "minimum": 0
                        },
                        "unit": {
                          "type": "string",
                          "description": "Field `materials.*.unit`.",
                          "maxLength": 50
                        },
                        "package_type": {
                          "type": "string",
                          "description": "Field `materials.*.package_type`.",
                          "maxLength": 100
                        },
                        "dimensions": {
                          "type": "string",
                          "description": "Field `materials.*.dimensions`.",
                          "maxLength": 100
                        },
                        "weight_kg": {
                          "type": "number",
                          "description": "Field `materials.*.weight_kg`.",
                          "minimum": 0
                        },
                        "volume_cbm": {
                          "type": "number",
                          "description": "Field `materials.*.volume_cbm`.",
                          "minimum": 0
                        }
                      },
                      "required": []
                    }
                  },
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  }
                },
                "required": [
                  "project_id",
                  "number"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/shipment-notifications/pending": {
      "get": {
        "tags": [
          "Shipment Notification"
        ],
        "summary": "List Pending Shipment Notifications",
        "description": "Fetch all pending `Shipment Notifications` records awaiting review or authorization.",
        "operationId": "get_api_v1_shipment_notifications_pending",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/shipment-notifications/{id}": {
      "get": {
        "tags": [
          "Shipment Notification"
        ],
        "summary": "Get Shipment Notifications Details",
        "description": "Retrieve full detail representation for a single `Shipment Notifications` resource by unique identifier.",
        "operationId": "get_api_v1_shipment_notifications__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/shipment-notifications/{id}/accept": {
      "put": {
        "tags": [
          "Shipment Notification"
        ],
        "summary": "Update Shipment Notifications",
        "description": "Update and persist changes for an existing `Shipment Notifications` record.",
        "operationId": "put_api_v1_shipment_notifications__id__accept",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreShipmentNotificationRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_shipment_notifications,id`.",
                    "example": 1
                  },
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "inspection_release_note_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_inspection_release_notes,id`.",
                    "example": 1
                  },
                  "mrn_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_material_release_notes,id`.",
                    "example": 1
                  },
                  "destination_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_locations,id`.",
                    "example": 1
                  },
                  "forwarder_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendors,id`.",
                    "example": 1
                  },
                  "incoterm_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_incoterms,id`.",
                    "example": 1
                  },
                  "cargo_description": {
                    "type": "string",
                    "description": "Field `cargo_description`."
                  },
                  "item_numbers": {
                    "type": "string",
                    "description": "Field `item_numbers`."
                  },
                  "shipment_number": {
                    "type": "string",
                    "description": "Field `shipment_number`.",
                    "maxLength": 100
                  },
                  "shipping_mode": {
                    "type": "string",
                    "description": "Field `shipping_mode`.",
                    "maxLength": 100
                  },
                  "shipment_type": {
                    "type": "string",
                    "description": "Field `shipment_type`.",
                    "maxLength": 100
                  },
                  "pickup_address": {
                    "type": "string",
                    "description": "Field `pickup_address`."
                  },
                  "delivery_address": {
                    "type": "string",
                    "description": "Field `delivery_address`."
                  },
                  "issue_date": {
                    "type": "string",
                    "description": "Field `issue_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "estimated_arrival": {
                    "type": "string",
                    "description": "Field `estimated_arrival`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "is_submit": {
                    "type": "boolean",
                    "description": "Field `is_submit`."
                  },
                  "materials": {
                    "type": "array",
                    "description": "List of nested `materials` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "material_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `m_materials,id`.",
                          "example": 1
                        },
                        "item_code": {
                          "type": "string",
                          "description": "Field `materials.*.item_code`.",
                          "maxLength": 100
                        },
                        "item_name": {
                          "type": "string",
                          "description": "Field `materials.*.item_name`.",
                          "maxLength": 255
                        },
                        "quantity": {
                          "type": "number",
                          "description": "Field `materials.*.quantity`.",
                          "minimum": 0
                        },
                        "unit": {
                          "type": "string",
                          "description": "Field `materials.*.unit`.",
                          "maxLength": 50
                        },
                        "package_type": {
                          "type": "string",
                          "description": "Field `materials.*.package_type`.",
                          "maxLength": 100
                        },
                        "dimensions": {
                          "type": "string",
                          "description": "Field `materials.*.dimensions`.",
                          "maxLength": 100
                        },
                        "weight_kg": {
                          "type": "number",
                          "description": "Field `materials.*.weight_kg`.",
                          "minimum": 0
                        },
                        "volume_cbm": {
                          "type": "number",
                          "description": "Field `materials.*.volume_cbm`.",
                          "minimum": 0
                        }
                      },
                      "required": []
                    }
                  },
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  }
                },
                "required": [
                  "project_id",
                  "number"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/shipment-notifications/{id}/download": {
      "get": {
        "tags": [
          "Shipment Notification"
        ],
        "summary": "Get Shipment Notifications Details",
        "description": "Retrieve full detail representation for a single `Shipment Notifications` resource by unique identifier.",
        "operationId": "get_api_v1_shipment_notifications__id__download",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/shipment-notifications/{id}/reject": {
      "put": {
        "tags": [
          "Shipment Notification"
        ],
        "summary": "Reject Shipment Notifications",
        "description": "Reject `Shipment Notifications` submission with explanatory remarks.",
        "operationId": "put_api_v1_shipment_notifications__id__reject",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `RejectShipmentNotificationRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`.",
                    "maxLength": 1000
                  }
                },
                "required": [
                  "notes"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/shipment-trackings": {
      "get": {
        "tags": [
          "Shipment Tracking"
        ],
        "summary": "List Shipment Trackings",
        "description": "Retrieve paginated collection of `Shipment Trackings` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_shipment_trackings",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Shipment Tracking"
        ],
        "summary": "Create New Shipment Trackings",
        "description": "Create and persist a new `Shipment Trackings` transaction record.",
        "operationId": "post_api_v1_shipment_trackings",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreShipmentTrackingRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_shipment_trackings,id`.",
                    "example": 1
                  },
                  "tracking_type": {
                    "type": "string",
                    "description": "Field `tracking_type`.",
                    "maxLength": 100
                  },
                  "reference_id": {
                    "type": "integer",
                    "description": "Field `reference_id`."
                  },
                  "tracking_date": {
                    "type": "string",
                    "description": "Field `tracking_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "tracking_time": {
                    "type": "string",
                    "description": "Field `tracking_time`.",
                    "maxLength": 20
                  },
                  "location": {
                    "type": "string",
                    "description": "Field `location`.",
                    "maxLength": 255
                  },
                  "etd": {
                    "type": "string",
                    "description": "Field `etd`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "eta": {
                    "type": "string",
                    "description": "Field `eta`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "shipper_forwarder": {
                    "type": "string",
                    "description": "Field `shipper_forwarder`.",
                    "maxLength": 255
                  },
                  "special_notes": {
                    "type": "string",
                    "description": "Field `special_notes`."
                  }
                },
                "required": [
                  "tracking_type",
                  "reference_id"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/shipment-trackings/{id}": {
      "get": {
        "tags": [
          "Shipment Tracking"
        ],
        "summary": "Get Shipment Trackings Details",
        "description": "Retrieve full detail representation for a single `Shipment Trackings` resource by unique identifier.",
        "operationId": "get_api_v1_shipment_trackings__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/tbe": {
      "get": {
        "tags": [
          "Technical Bid Evaluation"
        ],
        "summary": "List Tbe",
        "description": "/** Display a paginated listing of Technical Bid Evaluations. /",
        "operationId": "get_api_v1_tbe",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/tbe/init": {
      "post": {
        "tags": [
          "Technical Bid Evaluation"
        ],
        "summary": "Create New Tbe",
        "description": "/** Initialize Technical Bid Evaluation records from project quotations. /",
        "operationId": "post_api_v1_tbe_init",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `InitTBERequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  }
                },
                "required": [
                  "project_id"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/tbe/{id}": {
      "get": {
        "tags": [
          "Technical Bid Evaluation"
        ],
        "summary": "Get Tbe Details",
        "description": "/** Display the specified Technical Bid Evaluation detail. /",
        "operationId": "get_api_v1_tbe__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/tbe/{id}/review": {
      "put": {
        "tags": [
          "Technical Bid Evaluation"
        ],
        "summary": "Update Tbe",
        "description": "/** Review and score a technical bid evaluation. /",
        "operationId": "put_api_v1_tbe__id__review",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `ReviewTBERequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "description": "Field `status`."
                  },
                  "docs": {
                    "type": "array",
                    "description": "Field `docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "docs.*": {
                    "type": "string",
                    "description": "File attachment (pdf,doc,docx,xls,xlsx,zip,rar,jpg,jpeg,png).",
                    "format": "binary",
                    "maxLength": 20480
                  }
                },
                "required": [
                  "status"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/tbe/{id}/submit-docs": {
      "post": {
        "tags": [
          "Technical Bid Evaluation"
        ],
        "summary": "Create New Tbe",
        "description": "/** Submit evaluation documents for a technical bid evaluation. /",
        "operationId": "post_api_v1_tbe__id__submit_docs",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `SubmitTBEDocsRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "docs": {
                    "type": "array",
                    "description": "Field `docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "docs.*": {
                    "type": "string",
                    "description": "File attachment (pdf,doc,docx,xls,xlsx,zip,rar,jpg,jpeg,png).",
                    "format": "binary",
                    "maxLength": 20480
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`.",
                    "maxLength": 1000
                  }
                },
                "required": [
                  "docs"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/users": {
      "get": {
        "tags": [
          "User Management"
        ],
        "summary": "List Users",
        "description": "Retrieve paginated collection of `Users` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_users",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "User Management"
        ],
        "summary": "Create New Users",
        "description": "Create and persist a new `Users` transaction record.",
        "operationId": "post_api_v1_users",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload for `Create New Users`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/users/delete-many": {
      "post": {
        "tags": [
          "User Management"
        ],
        "summary": "Batch Delete Users",
        "description": "Atomically delete multiple `Users` records specified by list of identifiers.",
        "operationId": "post_api_v1_users_delete_many",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload for `Batch Delete Users`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/users/{id}": {
      "get": {
        "tags": [
          "User Management"
        ],
        "summary": "Get Users Details",
        "description": "Retrieve full detail representation for a single `Users` resource by unique identifier.",
        "operationId": "get_api_v1_users__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "User Management"
        ],
        "summary": "Update Users",
        "description": "Update and persist changes for an existing `Users` record.",
        "operationId": "put_api_v1_users__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload for `Update Users`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "User Management"
        ],
        "summary": "Delete Users",
        "description": "Permanently or soft-delete the specified `Users` record.",
        "operationId": "delete_api_v1_users__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/vdrl-submits": {
      "get": {
        "tags": [
          "Vendor Document"
        ],
        "summary": "List Vdrl Submits",
        "description": "Retrieve paginated collection of `Vdrl Submits` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_vdrl_submits",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Vendor Document"
        ],
        "summary": "Create New Vdrl Submits",
        "description": "Create and persist a new `Vdrl Submits` transaction record.",
        "operationId": "post_api_v1_vdrl_submits",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreVdrlSubmitRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "vendor_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendors,id`.",
                    "example": 1
                  },
                  "mr_material_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_material_requisition_materials,id`.",
                    "example": 1
                  },
                  "purchase_order_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_purchase_orders,id`.",
                    "example": 1
                  },
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  },
                  "is_submit": {
                    "type": "boolean",
                    "description": "Field `is_submit`."
                  },
                  "deleted_docs": {
                    "type": "array",
                    "description": "Field `deleted_docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "deleted_docs.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_vendor_document_requirement_list_submission_docs,id`."
                  },
                  "docs": {
                    "type": "array",
                    "description": "List of nested `docs` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "mr_document_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `t_material_requisition_documents,id`.",
                          "example": 1
                        },
                        "file": {
                          "type": "string",
                          "description": "Binary file upload for `docs.*.file`.",
                          "format": "binary",
                          "maxLength": 20480
                        }
                      },
                      "required": []
                    }
                  }
                },
                "required": [
                  "project_id",
                  "vendor_id"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/vdrl-submits/by-po": {
      "get": {
        "tags": [
          "Vendor Document"
        ],
        "summary": "List Vdrl Submits by Reference",
        "description": "Filter `Vdrl Submits` collection associated with a parent reference entity.",
        "operationId": "get_api_v1_vdrl_submits_by_po",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/vdrl-submits/docs/{id}/approve": {
      "put": {
        "tags": [
          "Vendor Document"
        ],
        "summary": "Approve Vdrl Submits",
        "description": "Approve `Vdrl Submits` state transition.",
        "operationId": "put_api_v1_vdrl_submits_docs__id__approve",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreVdrlSubmitRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "project_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_projects,id`.",
                    "example": 1
                  },
                  "vendor_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendors,id`.",
                    "example": 1
                  },
                  "mr_material_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_material_requisition_materials,id`.",
                    "example": 1
                  },
                  "purchase_order_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_purchase_orders,id`.",
                    "example": 1
                  },
                  "number": {
                    "type": "string",
                    "description": "Field `number`.",
                    "maxLength": 100
                  },
                  "is_submit": {
                    "type": "boolean",
                    "description": "Field `is_submit`."
                  },
                  "deleted_docs": {
                    "type": "array",
                    "description": "Field `deleted_docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "deleted_docs.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_vendor_document_requirement_list_submission_docs,id`."
                  },
                  "docs": {
                    "type": "array",
                    "description": "List of nested `docs` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "mr_document_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `t_material_requisition_documents,id`.",
                          "example": 1
                        },
                        "file": {
                          "type": "string",
                          "description": "Binary file upload for `docs.*.file`.",
                          "format": "binary",
                          "maxLength": 20480
                        }
                      },
                      "required": []
                    }
                  }
                },
                "required": [
                  "project_id",
                  "vendor_id"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/vdrl-submits/docs/{id}/clarify": {
      "put": {
        "tags": [
          "Vendor Document"
        ],
        "summary": "Update Vdrl Submits",
        "description": "Update and persist changes for an existing `Vdrl Submits` record.",
        "operationId": "put_api_v1_vdrl_submits_docs__id__clarify",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `ReviewVdrlDocRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "file": {
                    "type": "string",
                    "description": "Binary file upload for `file`.",
                    "format": "binary",
                    "maxLength": 20480
                  }
                },
                "required": [
                  "notes"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/vdrl-submits/pending": {
      "get": {
        "tags": [
          "Vendor Document"
        ],
        "summary": "List Pending Vdrl Submits",
        "description": "Fetch all pending `Vdrl Submits` records awaiting review or authorization.",
        "operationId": "get_api_v1_vdrl_submits_pending",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/vdrl-submits/{id}": {
      "get": {
        "tags": [
          "Vendor Document"
        ],
        "summary": "Get Vdrl Submits Details",
        "description": "Retrieve full detail representation for a single `Vdrl Submits` resource by unique identifier.",
        "operationId": "get_api_v1_vdrl_submits__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/vendor-categories": {
      "get": {
        "tags": [
          "Vendor Categories"
        ],
        "summary": "List Vendor Categories",
        "description": "Retrieve paginated collection of `Vendor Categories` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_vendor_categories",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Vendor Categories"
        ],
        "summary": "Create New Vendor Categories",
        "description": "Create and persist a new `Vendor Categories` transaction record.",
        "operationId": "post_api_v1_vendor_categories",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `VendorCategoryRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendor_categories,id`.",
                    "example": 1
                  },
                  "name": {
                    "type": "string",
                    "description": "Field `name`.",
                    "maxLength": 255
                  },
                  "description": {
                    "type": "string",
                    "description": "Field `description`."
                  },
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendor_categories,id`.",
                    "example": 1
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/vendor-categories/delete-many": {
      "post": {
        "tags": [
          "Vendor Categories"
        ],
        "summary": "Batch Delete Vendor Categories",
        "description": "Atomically delete multiple `Vendor Categories` records specified by list of identifiers.",
        "operationId": "post_api_v1_vendor_categories_delete_many",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `VendorCategoryRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendor_categories,id`.",
                    "example": 1
                  },
                  "name": {
                    "type": "string",
                    "description": "Field `name`.",
                    "maxLength": 255
                  },
                  "description": {
                    "type": "string",
                    "description": "Field `description`."
                  },
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendor_categories,id`.",
                    "example": 1
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/vendor-categories/{id}": {
      "get": {
        "tags": [
          "Vendor Categories"
        ],
        "summary": "Get Vendor Categories Details",
        "description": "Retrieve full detail representation for a single `Vendor Categories` resource by unique identifier.",
        "operationId": "get_api_v1_vendor_categories__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Vendor Categories"
        ],
        "summary": "Update Vendor Categories",
        "description": "Update and persist changes for an existing `Vendor Categories` record.",
        "operationId": "put_api_v1_vendor_categories__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `VendorCategoryRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendor_categories,id`.",
                    "example": 1
                  },
                  "name": {
                    "type": "string",
                    "description": "Field `name`.",
                    "maxLength": 255
                  },
                  "description": {
                    "type": "string",
                    "description": "Field `description`."
                  },
                  "ids": {
                    "type": "array",
                    "description": "Field `ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendor_categories,id`.",
                    "example": 1
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Vendor Categories"
        ],
        "summary": "Delete Vendor Categories",
        "description": "Permanently or soft-delete the specified `Vendor Categories` record.",
        "operationId": "delete_api_v1_vendor_categories__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/vendor-progress-reports": {
      "get": {
        "tags": [
          "Vendor Progress Report"
        ],
        "summary": "List Vendor Progress Reports",
        "description": "Retrieve paginated collection of `Vendor Progress Reports` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_vendor_progress_reports",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Vendor Progress Report"
        ],
        "summary": "Create New Vendor Progress Reports",
        "description": "Create and persist a new `Vendor Progress Reports` transaction record.",
        "operationId": "post_api_v1_vendor_progress_reports",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `StoreVendorProgressReportRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_vendor_progress_reports,id`.",
                    "example": 1
                  },
                  "report_number": {
                    "type": "string",
                    "description": "Field `report_number`.",
                    "maxLength": 100
                  },
                  "purchase_order_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_purchase_orders,id`.",
                    "example": 1
                  },
                  "contract_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `t_contracts,id`.",
                    "example": 1
                  },
                  "report_date": {
                    "type": "string",
                    "description": "Field `report_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "report_period_start": {
                    "type": "string",
                    "description": "Field `report_period_start`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "report_period_end": {
                    "type": "string",
                    "description": "Field `report_period_end`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "overall_progress_percent": {
                    "type": "number",
                    "description": "Field `overall_progress_percent`.",
                    "minimum": 0,
                    "maximum": 100
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  },
                  "report_document": {
                    "type": "string",
                    "description": "File attachment (pdf,docx,xlsx,zip).",
                    "format": "binary",
                    "maxLength": 51200
                  },
                  "photo_video": {
                    "type": "string",
                    "description": "Binary file upload for `photo_video`.",
                    "format": "binary",
                    "maxLength": 102400
                  },
                  "details": {
                    "type": "array",
                    "description": "List of nested `details` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "purchase_order_detail_id": {
                          "type": "integer",
                          "description": "Foreign key referencing `t_purchase_order_details,id`.",
                          "example": 1
                        },
                        "quantity_produced": {
                          "type": "number",
                          "description": "Field `details.*.quantity_produced`.",
                          "minimum": 0
                        },
                        "quantity_ready_to_ship": {
                          "type": "number",
                          "description": "Field `details.*.quantity_ready_to_ship`.",
                          "minimum": 0
                        },
                        "progress_percent": {
                          "type": "number",
                          "description": "Field `details.*.progress_percent`.",
                          "minimum": 0,
                          "maximum": 100
                        },
                        "notes": {
                          "type": "string",
                          "description": "Field `details.*.notes`."
                        }
                      },
                      "required": []
                    }
                  },
                  "docs": {
                    "type": "array",
                    "description": "Field `docs`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "docs.*": {
                    "type": "string",
                    "description": "Binary file upload for `docs.*`.",
                    "format": "binary",
                    "maxLength": 51200
                  }
                },
                "required": [
                  "report_number",
                  "purchase_order_id"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/vendor-progress-reports/pending": {
      "get": {
        "tags": [
          "Vendor Progress Report"
        ],
        "summary": "List Pending Vendor Progress Reports",
        "description": "Fetch all pending `Vendor Progress Reports` records awaiting review or authorization.",
        "operationId": "get_api_v1_vendor_progress_reports_pending",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/vendor-progress-reports/{id}": {
      "get": {
        "tags": [
          "Vendor Progress Report"
        ],
        "summary": "Get Vendor Progress Reports Details",
        "description": "Retrieve full detail representation for a single `Vendor Progress Reports` resource by unique identifier.",
        "operationId": "get_api_v1_vendor_progress_reports__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/vendors": {
      "get": {
        "tags": [
          "Vendor Management"
        ],
        "summary": "List Vendors",
        "description": "Retrieve paginated collection of `Vendors` records with filtering, searching, and sorting capabilities.",
        "operationId": "get_api_v1_vendors",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for paginated results (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Number of records per page (default: 10).",
            "schema": {
              "type": "integer",
              "default": 10,
              "example": 10
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Full-text search keyword query across title, code, and remarks.",
            "schema": {
              "type": "string",
              "example": "Steel Plates"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Column name to sort results by.",
            "schema": {
              "type": "string",
              "default": "created_at",
              "example": "created_at"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "Sorting direction (`asc` or `desc`).",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Vendor Management"
        ],
        "summary": "Update Vendors",
        "description": "Update and persist changes for an existing `Vendors` record.",
        "operationId": "put_api_v1_vendors",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `VendorUpdateRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendors,id`.",
                    "example": 1
                  },
                  "company_name": {
                    "type": "string",
                    "description": "Field `company_name`.",
                    "maxLength": 255
                  },
                  "email": {
                    "type": "string",
                    "description": "Field `email`.",
                    "format": "email",
                    "maxLength": 255
                  },
                  "phone": {
                    "type": "string",
                    "description": "Field `phone`.",
                    "maxLength": 50
                  },
                  "business_entity_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_business_entity_types,id`.",
                    "example": 1
                  },
                  "kbli_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_kbli,id`.",
                    "example": 1
                  },
                  "npwp": {
                    "type": "string",
                    "description": "Field `npwp`.",
                    "maxLength": 50
                  },
                  "tax_type": {
                    "type": "string",
                    "description": "Field `tax_type`.",
                    "enum": [
                      "PKP",
                      "NON_PKP"
                    ]
                  },
                  "address": {
                    "type": "string",
                    "description": "Field `address`."
                  },
                  "postal_code": {
                    "type": "string",
                    "description": "Field `postal_code`.",
                    "maxLength": 20
                  },
                  "city": {
                    "type": "string",
                    "description": "Field `city`.",
                    "maxLength": 100
                  },
                  "website": {
                    "type": "string",
                    "description": "Field `website`.",
                    "maxLength": 255
                  },
                  "is_branch": {
                    "type": "boolean",
                    "description": "Field `is_branch`."
                  },
                  "establishment_number": {
                    "type": "string",
                    "description": "Field `establishment_number`.",
                    "maxLength": 100
                  },
                  "establishment_date": {
                    "type": "string",
                    "description": "Field `establishment_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "establishment_notary": {
                    "type": "string",
                    "description": "Field `establishment_notary`.",
                    "maxLength": 255
                  },
                  "establishment_doc": {
                    "type": "string",
                    "description": "Binary file upload for `establishment_doc`.",
                    "format": "binary",
                    "maxLength": 20480
                  },
                  "signature": {
                    "type": "string",
                    "description": "Binary file upload for `signature`.",
                    "format": "binary",
                    "maxLength": 20480
                  },
                  "delete_establishment_doc": {
                    "type": "boolean",
                    "description": "Field `delete_establishment_doc`."
                  },
                  "category_ids": {
                    "type": "array",
                    "description": "Field `category_ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "category_ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendor_categories,id`.",
                    "example": 1
                  },
                  "sub_category_ids": {
                    "type": "array",
                    "description": "Field `sub_category_ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "sub_category_ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendor_sub_categories,id`.",
                    "example": 1
                  },
                  "business_licenses": {
                    "type": "array",
                    "description": "List of nested `business_licenses` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "Field `business_licenses.*.id`."
                        },
                        "business_license": {
                          "type": "string",
                          "description": "Field `business_licenses.*.business_license`.",
                          "maxLength": 100
                        },
                        "number": {
                          "type": "string",
                          "description": "Field `business_licenses.*.number`.",
                          "maxLength": 100
                        },
                        "issuing_date": {
                          "type": "string",
                          "description": "Field `business_licenses.*.issuing_date`.",
                          "format": "date",
                          "example": "2026-03-25"
                        },
                        "validity_date": {
                          "type": "string",
                          "description": "Field `business_licenses.*.validity_date`.",
                          "format": "date",
                          "example": "2026-03-25"
                        },
                        "issuer_institution": {
                          "type": "string",
                          "description": "Field `business_licenses.*.issuer_institution`.",
                          "maxLength": 255
                        },
                        "doc": {
                          "type": "string",
                          "description": "Binary file upload for `business_licenses.*.doc`.",
                          "format": "binary",
                          "maxLength": 20480
                        },
                        "delete_doc": {
                          "type": "boolean",
                          "description": "Field `business_licenses.*.delete_doc`."
                        }
                      },
                      "required": []
                    }
                  },
                  "delete_business_licenses": {
                    "type": "array",
                    "description": "Field `delete_business_licenses`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "delete_business_licenses.*": {
                    "type": "integer",
                    "description": "Field `delete_business_licenses.*`."
                  },
                  "taxes": {
                    "type": "array",
                    "description": "List of nested `taxes` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "Field `taxes.*.id`."
                        },
                        "description": {
                          "type": "string",
                          "description": "Field `taxes.*.description`.",
                          "maxLength": 255
                        },
                        "date": {
                          "type": "string",
                          "description": "Field `taxes.*.date`.",
                          "format": "date",
                          "example": "2026-03-25"
                        },
                        "reference_number": {
                          "type": "string",
                          "description": "Field `taxes.*.reference_number`.",
                          "maxLength": 100
                        },
                        "doc": {
                          "type": "string",
                          "description": "Binary file upload for `taxes.*.doc`.",
                          "format": "binary",
                          "maxLength": 20480
                        },
                        "delete_doc": {
                          "type": "boolean",
                          "description": "Field `taxes.*.delete_doc`."
                        }
                      },
                      "required": []
                    }
                  },
                  "delete_taxes": {
                    "type": "array",
                    "description": "Field `delete_taxes`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "delete_taxes.*": {
                    "type": "integer",
                    "description": "Field `delete_taxes.*`."
                  },
                  "experiences": {
                    "type": "array",
                    "description": "List of nested `experiences` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "Field `experiences.*.id`."
                        },
                        "description": {
                          "type": "string",
                          "description": "Field `experiences.*.description`.",
                          "maxLength": 255
                        },
                        "institution": {
                          "type": "string",
                          "description": "Field `experiences.*.institution`.",
                          "maxLength": 255
                        },
                        "address": {
                          "type": "string",
                          "description": "Field `experiences.*.address`."
                        },
                        "value": {
                          "type": "number",
                          "description": "Field `experiences.*.value`.",
                          "minimum": 0
                        },
                        "start_date": {
                          "type": "string",
                          "description": "Field `experiences.*.start_date`.",
                          "format": "date",
                          "example": "2026-03-25"
                        },
                        "end_date": {
                          "type": "string",
                          "description": "Field `experiences.*.end_date`.",
                          "format": "date",
                          "example": "2026-03-25"
                        },
                        "doc": {
                          "type": "string",
                          "description": "Binary file upload for `experiences.*.doc`.",
                          "format": "binary",
                          "maxLength": 20480
                        },
                        "delete_doc": {
                          "type": "boolean",
                          "description": "Field `experiences.*.delete_doc`."
                        }
                      },
                      "required": []
                    }
                  },
                  "delete_experiences": {
                    "type": "array",
                    "description": "Field `delete_experiences`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "delete_experiences.*": {
                    "type": "integer",
                    "description": "Field `delete_experiences.*`."
                  },
                  "banks": {
                    "type": "array",
                    "description": "List of nested `banks` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "Field `banks.*.id`."
                        },
                        "bank_name": {
                          "type": "string",
                          "description": "Field `banks.*.bank_name`.",
                          "maxLength": 100
                        },
                        "branch": {
                          "type": "string",
                          "description": "Field `banks.*.branch`.",
                          "maxLength": 100
                        },
                        "account_number": {
                          "type": "string",
                          "description": "Field `banks.*.account_number`.",
                          "maxLength": 100
                        },
                        "account_name": {
                          "type": "string",
                          "description": "Field `banks.*.account_name`.",
                          "maxLength": 255
                        }
                      },
                      "required": []
                    }
                  },
                  "delete_banks": {
                    "type": "array",
                    "description": "Field `delete_banks`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "delete_banks.*": {
                    "type": "integer",
                    "description": "Field `delete_banks.*`."
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/vendors/register": {
      "post": {
        "tags": [
          "Vendor Management"
        ],
        "summary": "Register New Vendors",
        "description": "Register and create new account profile for `Vendors`.",
        "operationId": "post_api_v1_vendors_register",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "201": {
            "description": "Resource created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Request payload validated by `VendorRegisterRequest`.",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "company_name": {
                    "type": "string",
                    "description": "Field `company_name`.",
                    "maxLength": 255
                  },
                  "email": {
                    "type": "string",
                    "description": "Field `email`.",
                    "format": "email",
                    "maxLength": 255
                  },
                  "phone": {
                    "type": "string",
                    "description": "Field `phone`.",
                    "maxLength": 50
                  },
                  "business_entity_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_business_entity_types,id`.",
                    "example": 1
                  },
                  "kbli_id": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_kbli,id`.",
                    "example": 1
                  },
                  "npwp": {
                    "type": "string",
                    "description": "Field `npwp`.",
                    "maxLength": 50
                  },
                  "tax_type": {
                    "type": "string",
                    "description": "Field `tax_type`.",
                    "enum": [
                      "PKP",
                      "NON_PKP"
                    ]
                  },
                  "address": {
                    "type": "string",
                    "description": "Field `address`."
                  },
                  "postal_code": {
                    "type": "string",
                    "description": "Field `postal_code`.",
                    "maxLength": 20
                  },
                  "city": {
                    "type": "string",
                    "description": "Field `city`.",
                    "maxLength": 100
                  },
                  "website": {
                    "type": "string",
                    "description": "Field `website`.",
                    "maxLength": 255
                  },
                  "is_branch": {
                    "type": "boolean",
                    "description": "Field `is_branch`."
                  },
                  "establishment_number": {
                    "type": "string",
                    "description": "Field `establishment_number`.",
                    "maxLength": 100
                  },
                  "establishment_date": {
                    "type": "string",
                    "description": "Field `establishment_date`.",
                    "format": "date",
                    "example": "2026-03-25"
                  },
                  "establishment_notary": {
                    "type": "string",
                    "description": "Field `establishment_notary`.",
                    "maxLength": 255
                  },
                  "establishment_doc": {
                    "type": "string",
                    "description": "Binary file upload for `establishment_doc`.",
                    "format": "binary",
                    "maxLength": 20480
                  },
                  "signature": {
                    "type": "string",
                    "description": "Binary file upload for `signature`.",
                    "format": "binary",
                    "maxLength": 20480
                  },
                  "category_ids": {
                    "type": "array",
                    "description": "Field `category_ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "category_ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendor_categories,id`.",
                    "example": 1
                  },
                  "sub_category_ids": {
                    "type": "array",
                    "description": "Field `sub_category_ids`.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "sub_category_ids.*": {
                    "type": "integer",
                    "description": "Foreign key referencing `m_vendor_sub_categories,id`.",
                    "example": 1
                  },
                  "business_licenses": {
                    "type": "array",
                    "description": "List of nested `business_licenses` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "business_license": {
                          "type": "string",
                          "description": "Field `business_licenses.*.business_license`.",
                          "maxLength": 100
                        },
                        "number": {
                          "type": "string",
                          "description": "Field `business_licenses.*.number`.",
                          "maxLength": 100
                        },
                        "issuing_date": {
                          "type": "string",
                          "description": "Field `business_licenses.*.issuing_date`.",
                          "format": "date",
                          "example": "2026-03-25"
                        },
                        "validity_date": {
                          "type": "string",
                          "description": "Field `business_licenses.*.validity_date`.",
                          "format": "date",
                          "example": "2026-03-25"
                        },
                        "issuer_institution": {
                          "type": "string",
                          "description": "Field `business_licenses.*.issuer_institution`.",
                          "maxLength": 255
                        },
                        "doc": {
                          "type": "string",
                          "description": "Binary file upload for `business_licenses.*.doc`.",
                          "format": "binary",
                          "maxLength": 20480
                        }
                      },
                      "required": []
                    }
                  },
                  "taxes": {
                    "type": "array",
                    "description": "List of nested `taxes` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "description": {
                          "type": "string",
                          "description": "Field `taxes.*.description`.",
                          "maxLength": 255
                        },
                        "date": {
                          "type": "string",
                          "description": "Field `taxes.*.date`.",
                          "format": "date",
                          "example": "2026-03-25"
                        },
                        "reference_number": {
                          "type": "string",
                          "description": "Field `taxes.*.reference_number`.",
                          "maxLength": 100
                        },
                        "doc": {
                          "type": "string",
                          "description": "Binary file upload for `taxes.*.doc`.",
                          "format": "binary",
                          "maxLength": 20480
                        }
                      },
                      "required": []
                    }
                  },
                  "experiences": {
                    "type": "array",
                    "description": "List of nested `experiences` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "description": {
                          "type": "string",
                          "description": "Field `experiences.*.description`.",
                          "maxLength": 255
                        },
                        "institution": {
                          "type": "string",
                          "description": "Field `experiences.*.institution`.",
                          "maxLength": 255
                        },
                        "address": {
                          "type": "string",
                          "description": "Field `experiences.*.address`."
                        },
                        "value": {
                          "type": "number",
                          "description": "Field `experiences.*.value`.",
                          "minimum": 0
                        },
                        "start_date": {
                          "type": "string",
                          "description": "Field `experiences.*.start_date`.",
                          "format": "date",
                          "example": "2026-03-25"
                        },
                        "end_date": {
                          "type": "string",
                          "description": "Field `experiences.*.end_date`.",
                          "format": "date",
                          "example": "2026-03-25"
                        },
                        "doc": {
                          "type": "string",
                          "description": "Binary file upload for `experiences.*.doc`.",
                          "format": "binary",
                          "maxLength": 20480
                        }
                      },
                      "required": []
                    }
                  },
                  "banks": {
                    "type": "array",
                    "description": "List of nested `banks` items.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "bank_name": {
                          "type": "string",
                          "description": "Field `banks.*.bank_name`.",
                          "maxLength": 100
                        },
                        "branch": {
                          "type": "string",
                          "description": "Field `banks.*.branch`.",
                          "maxLength": 100
                        },
                        "account_number": {
                          "type": "string",
                          "description": "Field `banks.*.account_number`.",
                          "maxLength": 100
                        },
                        "account_name": {
                          "type": "string",
                          "description": "Field `banks.*.account_name`.",
                          "maxLength": 255
                        }
                      },
                      "required": []
                    }
                  }
                },
                "required": [
                  "company_name",
                  "email",
                  "business_entity_id",
                  "address",
                  "postal_code",
                  "city",
                  "website",
                  "establishment_number",
                  "establishment_notary"
                ]
              }
            }
          }
        }
      }
    },
    "/api/v1/vendors/{id}": {
      "get": {
        "tags": [
          "Vendor Management"
        ],
        "summary": "Get Vendors Details",
        "description": "Retrieve full detail representation for a single `Vendors` resource by unique identifier.",
        "operationId": "get_api_v1_vendors__id_",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/vendors/{id}/activate": {
      "put": {
        "tags": [
          "Vendor Management"
        ],
        "summary": "Verify / Activate Vendors",
        "description": "Perform verification or activation status update for `Vendors`.",
        "operationId": "put_api_v1_vendors__id__activate",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `VendorActivateRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "description": "Field `url`."
                  }
                },
                "required": [
                  "url"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/vendors/{id}/blacklist": {
      "put": {
        "tags": [
          "Vendor Management"
        ],
        "summary": "Blacklist Vendors",
        "description": "Place vendor onto restricted blacklist.",
        "operationId": "put_api_v1_vendors__id__blacklist",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `VendorBlacklistRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "description": "Field `reason`."
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/vendors/{id}/restore-blacklist": {
      "put": {
        "tags": [
          "Vendor Management"
        ],
        "summary": "Blacklist Vendors",
        "description": "Place vendor onto restricted blacklist.",
        "operationId": "put_api_v1_vendors__id__restore_blacklist",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload for `Blacklist Vendors`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remarks": {
                    "type": "string",
                    "example": "Operational notes"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    },
    "/api/v1/vendors/{id}/verify": {
      "put": {
        "tags": [
          "Vendor Management"
        ],
        "summary": "Verify / Activate Vendors",
        "description": "Perform verification or activation status update for `Vendors`.",
        "operationId": "put_api_v1_vendors__id__verify",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Unique identifier or code for `id`.",
            "schema": {
              "type": "integer",
              "example": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation result.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/ValidationError"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "description": "Request payload validated by `VendorVerifyRequest`.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "section": {
                    "type": "string",
                    "description": "Field `section`."
                  },
                  "notes": {
                    "type": "string",
                    "description": "Field `notes`."
                  }
                },
                "required": [
                  "section"
                ]
              }
            }
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "Sanctum Token",
        "description": "Enter Sanctum Bearer token obtained from `/api/v1/auth/login`."
      },
      "CompanyContext": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Company-Context",
        "description": "Active subsidiary company ID or code context for multi-tenant isolation."
      }
    },
    "schemas": {
      "ApiResponse": {
        "type": "object",
        "required": [
          "success",
          "message"
        ],
        "properties": {
          "success": {
            "type": "boolean",
            "example": true
          },
          "message": {
            "type": "string",
            "example": "Operation executed successfully."
          },
          "data": {
            "type": "object",
            "description": "Payload data or entity representation.",
            "additionalProperties": true
          }
        }
      },
      "PaginatedResponse": {
        "type": "object",
        "required": [
          "success",
          "data",
          "meta"
        ],
        "properties": {
          "success": {
            "type": "boolean",
            "example": true
          },
          "message": {
            "type": "string",
            "example": "Collection retrieved."
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "current_page": {
                "type": "integer",
                "example": 1
              },
              "from": {
                "type": "integer",
                "example": 1
              },
              "last_page": {
                "type": "integer",
                "example": 5
              },
              "per_page": {
                "type": "integer",
                "example": 10
              },
              "to": {
                "type": "integer",
                "example": 10
              },
              "total": {
                "type": "integer",
                "example": 48
              }
            }
          }
        }
      },
      "ValidationErrorResponse": {
        "type": "object",
        "required": [
          "success",
          "message",
          "errors"
        ],
        "properties": {
          "success": {
            "type": "boolean",
            "example": false
          },
          "message": {
            "type": "string",
            "example": "The given data was invalid."
          },
          "errors": {
            "type": "object",
            "description": "Key-value map of field validation error messages.",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "example": {
              "code": [
                "The code field is required."
              ],
              "project_id": [
                "The selected project id is invalid."
              ]
            }
          }
        }
      },
      "User": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 1
          },
          "name": {
            "type": "string",
            "example": "John Doe"
          },
          "username": {
            "type": "string",
            "example": "johndoe"
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "john.doe@soechi.com"
          },
          "department_id": {
            "type": "integer",
            "example": 1
          },
          "is_active": {
            "type": "boolean",
            "example": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "Company": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 1
          },
          "code": {
            "type": "string",
            "example": "MOS"
          },
          "name": {
            "type": "string",
            "example": "PT Multi Ocean Shipyard"
          },
          "address": {
            "type": "string",
            "example": "Tanjung Balai Karimun, Riau Islands"
          }
        }
      },
      "Project": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 1
          },
          "code": {
            "type": "string",
            "example": "PRJ-2026-001"
          },
          "name": {
            "type": "string",
            "example": "Newbuild 17500 DWT Chemical Tanker"
          },
          "client_name": {
            "type": "string",
            "example": "PT Soechi Lines Tbk"
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "active",
              "completed",
              "cancelled"
            ],
            "example": "active"
          },
          "start_date": {
            "type": "string",
            "format": "date",
            "example": "2026-01-15"
          },
          "end_date": {
            "type": "string",
            "format": "date",
            "example": "2026-12-31"
          }
        }
      },
      "MaterialRequisition": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 1
          },
          "mr_number": {
            "type": "string",
            "example": "MR-MOS-2026-0012"
          },
          "project_id": {
            "type": "integer",
            "example": 1
          },
          "department_id": {
            "type": "integer",
            "example": 2
          },
          "status": {
            "type": "string",
            "enum": [
              "created",
              "draft",
              "submitted",
              "pending_approval",
              "pending_review",
              "approved",
              "rejected",
              "pending_management_approval"
            ],
            "example": "submitted"
          },
          "remarks": {
            "type": "string",
            "example": "Urgent procurement for Hull Construction"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PurchaseOrder": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 1
          },
          "po_number": {
            "type": "string",
            "example": "PO-MOS-2026-0089"
          },
          "vendor_id": {
            "type": "integer",
            "example": 5
          },
          "project_id": {
            "type": "integer",
            "example": 1
          },
          "total_amount": {
            "type": "number",
            "example": 125000.0
          },
          "currency": {
            "type": "string",
            "example": "USD"
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "submitted",
              "approved",
              "cancelled"
            ],
            "example": "approved"
          }
        }
      },
      "Contract": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 1
          },
          "contract_number": {
            "type": "string",
            "example": "CTR-MOS-2026-0004"
          },
          "vendor_id": {
            "type": "integer",
            "example": 5
          },
          "project_id": {
            "type": "integer",
            "example": 1
          },
          "contract_value": {
            "type": "number",
            "example": 450000.0
          },
          "currency": {
            "type": "string",
            "example": "USD"
          },
          "status": {
            "type": "string",
            "enum": [
              "created",
              "draft",
              "pending_approval_1",
              "pending_approval_2",
              "rejected",
              "active",
              "completed",
              "terminated"
            ],
            "example": "active"
          }
        }
      },
      "Vendor": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 1
          },
          "vendor_code": {
            "type": "string",
            "example": "VND-005"
          },
          "name": {
            "type": "string",
            "example": "PT Steel Dynamics Indonesia"
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "sales@steeldynamics.co.id"
          },
          "is_verified": {
            "type": "boolean",
            "example": true
          },
          "is_blacklisted": {
            "type": "boolean",
            "example": false
          }
        }
      },
      "AwardRecStatus": {
        "type": "string",
        "enum": [
          "draft",
          "pending",
          "submitted",
          "approved",
          "rejected",
          "completed"
        ],
        "description": "Domain enumeration for AwardRecStatus."
      },
      "BudgetStatus": {
        "type": "string",
        "enum": [
          "draft",
          "submitted",
          "approved"
        ],
        "description": "Domain enumeration for BudgetStatus."
      },
      "CBTBidStatus": {
        "type": "string",
        "enum": [
          "draft",
          "active",
          "completed"
        ],
        "description": "Domain enumeration for CBTBidStatus."
      },
      "CBTNegoStatus": {
        "type": "string",
        "enum": [
          "draft",
          "submitted",
          "negotiating",
          "accepted",
          "rejected",
          "closed"
        ],
        "description": "Domain enumeration for CBTNegoStatus."
      },
      "CBTStatus": {
        "type": "string",
        "enum": [
          "draft",
          "negotiating",
          "accepted",
          "rejected",
          "closed"
        ],
        "description": "Domain enumeration for CBTStatus."
      },
      "CBTType": {
        "type": "string",
        "enum": [
          "negotiation",
          "bid_realtime"
        ],
        "description": "Domain enumeration for CBTType."
      },
      "CMRStatus": {
        "type": "string",
        "enum": [
          "draft",
          "submitted",
          "approved",
          "completed",
          "released",
          "rejected"
        ],
        "description": "Domain enumeration for CMRStatus."
      },
      "ConstructionProgressStatus": {
        "type": "string",
        "enum": [
          "draft",
          "submitted",
          "approved",
          "rejected"
        ],
        "description": "Domain enumeration for ConstructionProgressStatus."
      },
      "ContractStatus": {
        "type": "string",
        "enum": [
          "created",
          "draft",
          "pending_approval_1",
          "pending_approval_2",
          "rejected",
          "active",
          "completed",
          "terminated"
        ],
        "description": "Domain enumeration for ContractStatus."
      },
      "InventoryTransactionType": {
        "type": "string",
        "enum": [
          "in",
          "out"
        ],
        "description": "Domain enumeration for InventoryTransactionType."
      },
      "InvoiceStatus": {
        "type": "string",
        "enum": [
          "draft",
          "submitted",
          "approved",
          "rejected",
          "partially_paid",
          "paid",
          "cancelled"
        ],
        "description": "Domain enumeration for InvoiceStatus."
      },
      "IRNStatus": {
        "type": "string",
        "enum": [
          "draft",
          "rejected",
          "accepted"
        ],
        "description": "Domain enumeration for IRNStatus."
      },
      "KickoffStatus": {
        "type": "string",
        "enum": [
          "draft",
          "scheduled",
          "submitted"
        ],
        "description": "Domain enumeration for KickoffStatus."
      },
      "LetterAwardStatus": {
        "type": "string",
        "enum": [
          "draft",
          "issued",
          "accepted",
          "rejected",
          "completed"
        ],
        "description": "Domain enumeration for LetterAwardStatus."
      },
      "MRNStatus": {
        "type": "string",
        "enum": [
          "draft",
          "submitted"
        ],
        "description": "Domain enumeration for MRNStatus."
      },
      "MRRStatus": {
        "type": "string",
        "enum": [
          "draft",
          "submitted"
        ],
        "description": "Domain enumeration for MRRStatus."
      },
      "MRStatus": {
        "type": "string",
        "enum": [
          "created",
          "draft",
          "submitted",
          "pending_approval",
          "pending_review",
          "approved",
          "rejected",
          "pending_management_approval"
        ],
        "description": "Domain enumeration for MRStatus."
      },
      "NFIStatus": {
        "type": "string",
        "enum": [
          "draft",
          "sent",
          "scheduled",
          "submitted",
          "completed",
          "cancelled"
        ],
        "description": "Domain enumeration for NFIStatus."
      },
      "OEStatus": {
        "type": "string",
        "enum": [
          "draft",
          "pending_approval",
          "pending_review",
          "approved",
          "rejected",
          "pending_management_approval"
        ],
        "description": "Domain enumeration for OEStatus."
      },
      "OSDRStatus": {
        "type": "string",
        "enum": [
          "open",
          "under_review",
          "resolved",
          "closed"
        ],
        "description": "Domain enumeration for OSDRStatus."
      },
      "PackingListHubToSiteStatus": {
        "type": "string",
        "enum": [
          "draft",
          "dispatched",
          "arrived"
        ],
        "description": "Domain enumeration for PackingListHubToSiteStatus."
      },
      "PackingListStatus": {
        "type": "string",
        "enum": [
          "draft",
          "complete",
          "revise"
        ],
        "description": "Domain enumeration for PackingListStatus."
      },
      "PaymentStatus": {
        "type": "string",
        "enum": [
          "pending",
          "completed",
          "failed",
          "reversed"
        ],
        "description": "Domain enumeration for PaymentStatus."
      },
      "ProcurementMethodType": {
        "type": "string",
        "enum": [
          "tender",
          "direct_selection",
          "direct_appointment"
        ],
        "description": "Domain enumeration for ProcurementMethodType."
      },
      "ProcurementStage": {
        "type": "integer",
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21
        ],
        "description": "Domain enumeration for ProcurementStage."
      },
      "ProcurementStatus": {
        "type": "string",
        "enum": [
          "in_progress",
          "completed",
          "cancelled"
        ],
        "description": "Domain enumeration for ProcurementStatus."
      },
      "ProjectStatus": {
        "type": "string",
        "enum": [
          "draft",
          "active",
          "completed",
          "cancelled"
        ],
        "description": "Domain enumeration for ProjectStatus."
      },
      "PurchaseOrderStatus": {
        "type": "string",
        "enum": [
          "draft",
          "pending_approval_1",
          "pending_approval_2",
          "rejected",
          "issued",
          "partial",
          "completed",
          "cancelled"
        ],
        "description": "Domain enumeration for PurchaseOrderStatus."
      },
      "QuotationStatus": {
        "type": "string",
        "enum": [
          "draft",
          "submitted",
          "evaluated",
          "accepted",
          "rejected"
        ],
        "description": "Domain enumeration for QuotationStatus."
      },
      "RegistrationSection": {
        "type": "string",
        "enum": [
          "identity",
          "business_license",
          "establishment",
          "project_experience",
          "tax"
        ],
        "description": "Domain enumeration for RegistrationSection."
      },
      "RFPStatus": {
        "type": "string",
        "enum": [
          "draft",
          "submitted",
          "approved",
          "published",
          "closed",
          "cancelled",
          "extended"
        ],
        "description": "Domain enumeration for RFPStatus."
      },
      "RFPVendorStatus": {
        "type": "string",
        "enum": [
          "invited",
          "viewed",
          "submitted",
          "declined",
          "rejected"
        ],
        "description": "Domain enumeration for RFPVendorStatus."
      },
      "ScrapyardStatus": {
        "type": "string",
        "enum": [
          "draft",
          "approved",
          "submitted"
        ],
        "description": "Domain enumeration for ScrapyardStatus."
      },
      "ShipmentMonitoringStatus": {
        "type": "string",
        "enum": [
          "Draft",
          "In Transit",
          "At Port",
          "Customs Clearance",
          "Delivered"
        ],
        "description": "Domain enumeration for ShipmentMonitoringStatus."
      },
      "ShipmentStatus": {
        "type": "string",
        "enum": [
          "draft",
          "submitted",
          "accepted",
          "rejected",
          "delivered"
        ],
        "description": "Domain enumeration for ShipmentStatus."
      },
      "StockStatus": {
        "type": "string",
        "enum": [
          "in_stock",
          "low_stock",
          "out_of_stock"
        ],
        "description": "Domain enumeration for StockStatus."
      },
      "TBEStatus": {
        "type": "string",
        "enum": [
          "draft",
          "pending",
          "accepted",
          "rejected",
          "clarification"
        ],
        "description": "Domain enumeration for TBEStatus."
      },
      "TenderType": {
        "type": "string",
        "enum": [
          "purchase_order",
          "sales_order"
        ],
        "description": "Domain enumeration for TenderType."
      },
      "VDRLStatus": {
        "type": "string",
        "enum": [
          "draft",
          "published"
        ],
        "description": "Domain enumeration for VDRLStatus."
      },
      "VdrlSubmitDocStatus": {
        "type": "string",
        "enum": [
          "pending",
          "approved",
          "clarification"
        ],
        "description": "Domain enumeration for VdrlSubmitDocStatus."
      },
      "VdrlSubmitStatus": {
        "type": "string",
        "enum": [
          "draft",
          "submitted",
          "approved",
          "clarification"
        ],
        "description": "Domain enumeration for VdrlSubmitStatus."
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Invalid input syntax or malformed query payload.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "success": {
                  "type": "boolean",
                  "example": false
                },
                "message": {
                  "type": "string",
                  "example": "Bad request parameter or invariant violation."
                }
              }
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Authentication token missing, expired, or invalid.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "message": {
                  "type": "string",
                  "example": "Unauthenticated."
                }
              }
            }
          }
        }
      },
      "Forbidden": {
        "description": "Insufficient RBAC permissions or company context restriction.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "success": {
                  "type": "boolean",
                  "example": false
                },
                "message": {
                  "type": "string",
                  "example": "This action is unauthorized for your role/department."
                }
              }
            }
          }
        }
      },
      "NotFound": {
        "description": "Target entity or resource was not found in the active database context.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "success": {
                  "type": "boolean",
                  "example": false
                },
                "message": {
                  "type": "string",
                  "example": "Resource not found."
                }
              }
            }
          }
        }
      },
      "ValidationError": {
        "description": "Validation invariant failure (422 Unprocessable Entity).",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ValidationErrorResponse"
            }
          }
        }
      },
      "ServerError": {
        "description": "Internal server fault or unhandled exception.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "success": {
                  "type": "boolean",
                  "example": false
                },
                "message": {
                  "type": "string",
                  "example": "Internal Server Error."
                }
              }
            }
          }
        }
      }
    }
  }
}