{
  "components": {
    "schemas": {
      "ErrorEnvelope": {
        "properties": {
          "code": {
            "example": 401,
            "type": "integer"
          },
          "errors": {
            "additionalProperties": true,
            "type": "object"
          },
          "message": {
            "example": "Please authenticate",
            "type": "string"
          },
          "status": {
            "example": "error",
            "type": "string"
          }
        },
        "type": "object"
      },
      "PaginatedEnvelope": {
        "properties": {
          "code": {
            "example": 200,
            "type": "integer"
          },
          "data": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array"
          },
          "message": {
            "example": "Request completed successfully",
            "type": "string"
          },
          "meta": {
            "properties": {
              "limit": {
                "example": 10,
                "type": "integer"
              },
              "page": {
                "example": 1,
                "type": "integer"
              },
              "total_pages": {
                "example": 1,
                "type": "integer"
              },
              "total_results": {
                "example": 0,
                "type": "integer"
              }
            },
            "type": "object"
          },
          "status": {
            "example": "success",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SuccessEnvelope": {
        "properties": {
          "code": {
            "example": 200,
            "type": "integer"
          },
          "data": {
            "additionalProperties": true,
            "type": "object"
          },
          "message": {
            "example": "Request completed successfully",
            "type": "string"
          },
          "status": {
            "example": "success",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "securitySchemes": {
      "ApiKeyAuth": {
        "in": "header",
        "name": "X-API-Key",
        "type": "apiKey"
      },
      "BearerAuth": {
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "Read-only OpenAPI surface for dashboard integrations and GET endpoint exploration.",
    "title": "LTI ERP Read API",
    "version": "v1"
  },
  "openapi": "3.1.0",
  "paths": {
    "/api/approvals/": {
      "get": {
        "description": "Read access to `/api/approvals`.",
        "parameters": [
          {
            "description": "Approval workflow module name.",
            "example": "EXPENSES",
            "in": "query",
            "name": "module_name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Optional approvable module id.",
            "example": 1,
            "in": "query",
            "name": "module_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Group approval records by step number.",
            "example": false,
            "in": "query",
            "name": "group_step_number",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "approval",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort direction by date.",
            "example": "DESC",
            "in": "query",
            "name": "order_by_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / approvals",
        "tags": [
          "API"
        ]
      }
    },
    "/api/closings/": {
      "get": {
        "description": "Read access to `/api/closings`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "kandang",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Project status filter (1 or 2).",
            "example": 1,
            "in": "query",
            "name": "project_status",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Location id filter.",
            "example": 1,
            "in": "query",
            "name": "location_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / closings",
        "tags": [
          "API"
        ]
      }
    },
    "/api/closings/{projectFlockId}": {
      "get": {
        "description": "Read access to `/api/closings/:projectFlockId`.",
        "parameters": [
          {
            "description": "Path parameter `projectFlockId`.",
            "in": "path",
            "name": "projectFlockId",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          },
          {
            "description": "Optional kandang id filter.",
            "example": 1,
            "in": "query",
            "name": "kandang_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / closings / :projectFlockId",
        "tags": [
          "Closings"
        ]
      }
    },
    "/api/closings/{projectFlockId}/keuangan": {
      "get": {
        "description": "Read access to `/api/closings/:projectFlockId/keuangan`.",
        "parameters": [
          {
            "description": "Path parameter `projectFlockId`.",
            "in": "path",
            "name": "projectFlockId",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          },
          {
            "description": "Optional kandang id filter.",
            "example": 1,
            "in": "query",
            "name": "kandang_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / closings / :projectFlockId / keuangan",
        "tags": [
          "Closings"
        ]
      }
    },
    "/api/closings/{projectFlockId}/production-data": {
      "get": {
        "description": "Read access to `/api/closings/:projectFlockId/production-data`.",
        "parameters": [
          {
            "description": "Path parameter `projectFlockId`.",
            "in": "path",
            "name": "projectFlockId",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          },
          {
            "description": "Optional kandang id filter.",
            "example": 1,
            "in": "query",
            "name": "kandang_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / closings / :projectFlockId / production data",
        "tags": [
          "Closings"
        ]
      }
    },
    "/api/closings/{projectFlockId}/sapronak": {
      "get": {
        "description": "Read access to `/api/closings/:projectFlockId/sapronak`.",
        "parameters": [
          {
            "description": "Path parameter `projectFlockId`.",
            "in": "path",
            "name": "projectFlockId",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          },
          {
            "description": "Required sapronak direction.",
            "example": "incoming",
            "in": "query",
            "name": "type",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "pakan",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Optional kandang id filter.",
            "example": 1,
            "in": "query",
            "name": "kandang_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / closings / :projectFlockId / sapronak",
        "tags": [
          "Closings"
        ]
      }
    },
    "/api/closings/{projectFlockId}/sapronak/summary": {
      "get": {
        "description": "Read access to `/api/closings/:projectFlockId/sapronak/summary`.",
        "parameters": [
          {
            "description": "Path parameter `projectFlockId`.",
            "in": "path",
            "name": "projectFlockId",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          },
          {
            "description": "Required sapronak direction.",
            "example": "incoming",
            "in": "query",
            "name": "type",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Search keyword.",
            "example": "pakan",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Optional kandang id filter.",
            "example": 1,
            "in": "query",
            "name": "kandang_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / closings / :projectFlockId / sapronak / summary",
        "tags": [
          "Closings"
        ]
      }
    },
    "/api/closings/{project_flock_id}/expedition-hpp": {
      "get": {
        "description": "Read access to `/api/closings/:project_flock_id/expedition-hpp`.",
        "parameters": [
          {
            "description": "Path parameter `project_flock_id`.",
            "in": "path",
            "name": "project_flock_id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          },
          {
            "description": "Optional project flock kandang id filter.",
            "example": 1,
            "in": "query",
            "name": "project_flock_kandang_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / closings / :project_flock_id / expedition hpp",
        "tags": [
          "Closings"
        ]
      }
    },
    "/api/closings/{project_flock_id}/overhead": {
      "get": {
        "description": "Read access to `/api/closings/:project_flock_id/overhead`.",
        "parameters": [
          {
            "description": "Path parameter `project_flock_id`.",
            "in": "path",
            "name": "project_flock_id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / closings / :project_flock_id / overhead",
        "tags": [
          "Closings"
        ]
      }
    },
    "/api/closings/{project_flock_id}/penjualan": {
      "get": {
        "description": "Read access to `/api/closings/:project_flock_id/penjualan`.",
        "parameters": [
          {
            "description": "Path parameter `project_flock_id`.",
            "in": "path",
            "name": "project_flock_id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / closings / :project_flock_id / penjualan",
        "tags": [
          "Closings"
        ]
      }
    },
    "/api/closings/{project_flock_id}/perhitungan_sapronak": {
      "get": {
        "description": "Read access to `/api/closings/:project_flock_id/perhitungan_sapronak`.",
        "parameters": [
          {
            "description": "Path parameter `project_flock_id`.",
            "in": "path",
            "name": "project_flock_id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          },
          {
            "description": "Product category flag filter (DOC/OVK/PAKAN/PULLET).",
            "example": "DOC",
            "in": "query",
            "name": "flag",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / closings / :project_flock_id / perhitungan_sapronak",
        "tags": [
          "Closings"
        ]
      }
    },
    "/api/closings/{project_flock_id}/{project_flock_kandang_id}/expedition-hpp": {
      "get": {
        "description": "Read access to `/api/closings/:project_flock_id/:project_flock_kandang_id/expedition-hpp`.",
        "parameters": [
          {
            "description": "Path parameter `project_flock_id`.",
            "in": "path",
            "name": "project_flock_id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          },
          {
            "description": "Path parameter `project_flock_kandang_id`.",
            "in": "path",
            "name": "project_flock_kandang_id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / closings / :project_flock_id / :project_flock_kandang_id / expedition hpp",
        "tags": [
          "Closings"
        ]
      }
    },
    "/api/closings/{project_flock_id}/{project_flock_kandang_id}/keuangan": {
      "get": {
        "description": "Read access to `/api/closings/:project_flock_id/:project_flock_kandang_id/keuangan`.",
        "parameters": [
          {
            "description": "Path parameter `project_flock_id`.",
            "in": "path",
            "name": "project_flock_id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          },
          {
            "description": "Path parameter `project_flock_kandang_id`.",
            "in": "path",
            "name": "project_flock_kandang_id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / closings / :project_flock_id / :project_flock_kandang_id / keuangan",
        "tags": [
          "Closings"
        ]
      }
    },
    "/api/closings/{project_flock_id}/{project_flock_kandang_id}/overhead": {
      "get": {
        "description": "Read access to `/api/closings/:project_flock_id/:project_flock_kandang_id/overhead`.",
        "parameters": [
          {
            "description": "Path parameter `project_flock_id`.",
            "in": "path",
            "name": "project_flock_id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          },
          {
            "description": "Path parameter `project_flock_kandang_id`.",
            "in": "path",
            "name": "project_flock_kandang_id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / closings / :project_flock_id / :project_flock_kandang_id / overhead",
        "tags": [
          "Closings"
        ]
      }
    },
    "/api/closings/{project_flock_id}/{project_flock_kandang_id}/penjualan": {
      "get": {
        "description": "Read access to `/api/closings/:project_flock_id/:project_flock_kandang_id/penjualan`.",
        "parameters": [
          {
            "description": "Path parameter `project_flock_id`.",
            "in": "path",
            "name": "project_flock_id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          },
          {
            "description": "Path parameter `project_flock_kandang_id`.",
            "in": "path",
            "name": "project_flock_kandang_id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / closings / :project_flock_id / :project_flock_kandang_id / penjualan",
        "tags": [
          "Closings"
        ]
      }
    },
    "/api/closings/{project_flock_id}/{project_flock_kandang_id}/perhitungan_sapronak": {
      "get": {
        "description": "Read access to `/api/closings/:project_flock_id/:project_flock_kandang_id/perhitungan_sapronak`.",
        "parameters": [
          {
            "description": "Path parameter `project_flock_id`.",
            "in": "path",
            "name": "project_flock_id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          },
          {
            "description": "Path parameter `project_flock_kandang_id`.",
            "in": "path",
            "name": "project_flock_kandang_id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          },
          {
            "description": "Product category flag filter (DOC/OVK/PAKAN/PULLET).",
            "example": "DOC",
            "in": "query",
            "name": "flag",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / closings / :project_flock_id / :project_flock_kandang_id / perhitungan_sapronak",
        "tags": [
          "Closings"
        ]
      }
    },
    "/api/constants/": {
      "get": {
        "description": "Read access to `/api/constants`.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "summary": "GET api / constants",
        "tags": [
          "API"
        ]
      }
    },
    "/api/daily-checklists/": {
      "get": {
        "description": "Read access to `/api/daily-checklists`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "kebersihan",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Start date filter (YYYY-MM-DD).",
            "example": "2026-01-01",
            "in": "query",
            "name": "date_from",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "End date filter (YYYY-MM-DD).",
            "example": "2026-01-31",
            "in": "query",
            "name": "date_to",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Checklist status filter.",
            "example": "done",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Kandang id filter.",
            "example": 1,
            "in": "query",
            "name": "kandang_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / daily checklists",
        "tags": [
          "Daily Checklists"
        ]
      }
    },
    "/api/daily-checklists/phase/{idDailyChecklist}": {
      "get": {
        "description": "Read access to `/api/daily-checklists/phase/:idDailyChecklist`.",
        "parameters": [
          {
            "description": "Path parameter `idDailyChecklist`.",
            "in": "path",
            "name": "idDailyChecklist",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / daily checklists / phase / :idDailyChecklist",
        "tags": [
          "Daily Checklists"
        ]
      }
    },
    "/api/daily-checklists/relation/{idDailyChecklist}": {
      "get": {
        "description": "Read access to `/api/daily-checklists/relation/:idDailyChecklist`.",
        "parameters": [
          {
            "description": "Path parameter `idDailyChecklist`.",
            "in": "path",
            "name": "idDailyChecklist",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / daily checklists / relation / :idDailyChecklist",
        "tags": [
          "Daily Checklists"
        ]
      }
    },
    "/api/daily-checklists/report": {
      "get": {
        "description": "Read access to `/api/daily-checklists/report`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Month number (1-12).",
            "example": 1,
            "in": "query",
            "name": "bulan",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Year.",
            "example": 2026,
            "in": "query",
            "name": "tahun",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Area id filter.",
            "example": 1,
            "in": "query",
            "name": "area_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Location id filter.",
            "example": 1,
            "in": "query",
            "name": "location_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Kandang id filter.",
            "example": 1,
            "in": "query",
            "name": "kandang_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Employee id filter.",
            "example": 1,
            "in": "query",
            "name": "employee_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Phase id filter.",
            "example": 1,
            "in": "query",
            "name": "phase_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / daily checklists / report",
        "tags": [
          "Daily Checklists"
        ]
      }
    },
    "/api/daily-checklists/summary": {
      "get": {
        "description": "Read access to `/api/daily-checklists/summary`.",
        "parameters": [
          {
            "description": "Start date filter (YYYY-MM-DD).",
            "example": "2026-01-01",
            "in": "query",
            "name": "date_from",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "End date filter (YYYY-MM-DD).",
            "example": "2026-01-31",
            "in": "query",
            "name": "date_to",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Checklist category filter.",
            "example": "cleaning",
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Kandang id filter.",
            "example": 1,
            "in": "query",
            "name": "kandang_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / daily checklists / summary",
        "tags": [
          "Daily Checklists"
        ]
      }
    },
    "/api/daily-checklists/tasks": {
      "get": {
        "description": "Read access to `/api/daily-checklists/tasks`.",
        "parameters": [
          {
            "description": "Daily checklist id.",
            "example": 1,
            "in": "query",
            "name": "checklist_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / daily checklists / tasks",
        "tags": [
          "Daily Checklists"
        ]
      }
    },
    "/api/dashboards/": {
      "get": {
        "description": "Read access to `/api/dashboards`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "farm",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Period start date (YYYY-MM-DD).",
            "example": "2026-01-01",
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Period end date (YYYY-MM-DD).",
            "example": "2026-01-31",
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Dashboard analysis mode.",
            "example": "OVERVIEW",
            "in": "query",
            "name": "analysis_mode",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Required when analysis_mode is COMPARISON.",
            "example": "PREVIOUS_PERIOD",
            "in": "query",
            "name": "comparison_type",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Metric to compare.",
            "example": "egg_mass",
            "in": "query",
            "name": "metric",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated location ids.",
            "example": "1,2",
            "in": "query",
            "name": "location_ids",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated flock ids.",
            "example": "1,2",
            "in": "query",
            "name": "flock_ids",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated kandang ids.",
            "example": "1,2",
            "in": "query",
            "name": "kandang_ids",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated dashboard sections to include.",
            "example": "performance,summary",
            "in": "query",
            "name": "include",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / dashboards",
        "tags": [
          "Dashboards"
        ]
      }
    },
    "/api/expenses/": {
      "get": {
        "description": "Read access to `/api/expenses`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "operasional",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / expenses",
        "tags": [
          "Expenses"
        ]
      }
    },
    "/api/expenses/{id}": {
      "get": {
        "description": "Read access to `/api/expenses/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / expenses / :id",
        "tags": [
          "Expenses"
        ]
      }
    },
    "/api/finance/initial-balances/{id}": {
      "get": {
        "description": "Read access to `/api/finance/initial-balances/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / finance / initial balances / :id",
        "tags": [
          "Finance"
        ]
      }
    },
    "/api/finance/injections/{id}": {
      "get": {
        "description": "Read access to `/api/finance/injections/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / finance / injections / :id",
        "tags": [
          "Finance"
        ]
      }
    },
    "/api/finance/payments/{id}": {
      "get": {
        "description": "Read access to `/api/finance/payments/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / finance / payments / :id",
        "tags": [
          "Finance"
        ]
      }
    },
    "/api/finance/transactions/": {
      "get": {
        "description": "Read access to `/api/finance/transactions`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "invoice",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated bank ids.",
            "example": "1,2",
            "in": "query",
            "name": "bank_ids",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated customer ids.",
            "example": "1,2",
            "in": "query",
            "name": "customer_ids",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated supplier ids.",
            "example": "1,2",
            "in": "query",
            "name": "supplier_ids",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated transaction types.",
            "example": "payment,initial_balance",
            "in": "query",
            "name": "transaction_types",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort date basis.",
            "example": "created_at",
            "in": "query",
            "name": "sort_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Start date (YYYY-MM-DD).",
            "example": "2026-01-01",
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "End date (YYYY-MM-DD).",
            "example": "2026-01-31",
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / finance / transactions",
        "tags": [
          "Finance"
        ]
      }
    },
    "/api/finance/transactions/{id}": {
      "get": {
        "description": "Read access to `/api/finance/transactions/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / finance / transactions / :id",
        "tags": [
          "Finance"
        ]
      }
    },
    "/api/inventory/adjustments/": {
      "get": {
        "description": "Read access to `/api/inventory/adjustments`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Product id filter.",
            "example": 1,
            "in": "query",
            "name": "product_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Warehouse id filter.",
            "example": 1,
            "in": "query",
            "name": "warehouse_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Transaction type filter.",
            "example": "IN",
            "in": "query",
            "name": "transaction_type",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Transaction subtype filter.",
            "example": "ADJUSTMENT",
            "in": "query",
            "name": "transaction_subtype",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Function code filter.",
            "example": "MANUAL_ADJUSTMENT",
            "in": "query",
            "name": "function_code",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / inventory / adjustments",
        "tags": [
          "Inventory"
        ]
      }
    },
    "/api/inventory/adjustments/{id}": {
      "get": {
        "description": "Read access to `/api/inventory/adjustments/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / inventory / adjustments / :id",
        "tags": [
          "Inventory"
        ]
      }
    },
    "/api/inventory/product-stocks/": {
      "get": {
        "description": "Read access to `/api/inventory/product-stocks`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "pakan",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / inventory / product stocks",
        "tags": [
          "Inventory"
        ]
      }
    },
    "/api/inventory/product-stocks/{id}": {
      "get": {
        "description": "Read access to `/api/inventory/product-stocks/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / inventory / product stocks / :id",
        "tags": [
          "Inventory"
        ]
      }
    },
    "/api/inventory/product-warehouses/": {
      "get": {
        "description": "Read access to `/api/inventory/product-warehouses`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "gudang",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product id filter.",
            "example": 1,
            "in": "query",
            "name": "product_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Warehouse id filter.",
            "example": 1,
            "in": "query",
            "name": "warehouse_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Location id filter.",
            "example": 1,
            "in": "query",
            "name": "location_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Stock flags filter.",
            "example": "DOC",
            "in": "query",
            "name": "flags",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Kandang id filter.",
            "example": 1,
            "in": "query",
            "name": "kandang_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Show available stock only.",
            "example": true,
            "in": "query",
            "name": "available_only",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Transfer context filter.",
            "example": "inventory_transfer",
            "in": "query",
            "name": "transfer_context",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Stock mode filter.",
            "example": "exclude_chickin",
            "in": "query",
            "name": "stock_mode",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Warehouse stock type filter.",
            "example": "incoming",
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / inventory / product warehouses",
        "tags": [
          "Inventory"
        ]
      }
    },
    "/api/inventory/product-warehouses/{id}": {
      "get": {
        "description": "Read access to `/api/inventory/product-warehouses/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / inventory / product warehouses / :id",
        "tags": [
          "Inventory"
        ]
      }
    },
    "/api/inventory/transfers/": {
      "get": {
        "description": "Read access to `/api/inventory/transfers`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "TRF",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / inventory / transfers",
        "tags": [
          "Inventory"
        ]
      }
    },
    "/api/inventory/transfers/{id}": {
      "get": {
        "description": "Read access to `/api/inventory/transfers/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / inventory / transfers / :id",
        "tags": [
          "Inventory"
        ]
      }
    },
    "/api/marketing/": {
      "get": {
        "description": "Read access to `/api/marketing`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "delivery",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated product ids.",
            "example": "1,2",
            "in": "query",
            "name": "product_ids",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Delivery status filter.",
            "example": "DRAFT",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Customer id filter.",
            "example": 1,
            "in": "query",
            "name": "customer_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Marketing id filter.",
            "example": 1,
            "in": "query",
            "name": "marketing_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / marketing",
        "tags": [
          "Marketing"
        ]
      }
    },
    "/api/marketing/{id}": {
      "get": {
        "description": "Read access to `/api/marketing/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / marketing / :id",
        "tags": [
          "Marketing"
        ]
      }
    },
    "/api/master-data/areas/": {
      "get": {
        "description": "Read access to `/api/master-data/areas`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "bandung",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / areas",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/areas/{id}": {
      "get": {
        "description": "Read access to `/api/master-data/areas/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / areas / :id",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/banks/": {
      "get": {
        "description": "Read access to `/api/master-data/banks`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "bca",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / banks",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/banks/{id}": {
      "get": {
        "description": "Read access to `/api/master-data/banks/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / banks / :id",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/config-checklists/": {
      "get": {
        "description": "Read access to `/api/master-data/config-checklists`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "harian",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / config checklists",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/config-checklists/{id}": {
      "get": {
        "description": "Read access to `/api/master-data/config-checklists/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / config checklists / :id",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/customers/": {
      "get": {
        "description": "Read access to `/api/master-data/customers`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "pt",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter customer by marketing relation.",
            "example": true,
            "in": "query",
            "name": "has_marketing",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / customers",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/customers/{id}": {
      "get": {
        "description": "Read access to `/api/master-data/customers/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / customers / :id",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/employees/": {
      "get": {
        "description": "Read access to `/api/master-data/employees`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "andi",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Kandang id filter.",
            "example": 1,
            "in": "query",
            "name": "kandang_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Active status filter.",
            "example": true,
            "in": "query",
            "name": "is_active",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / employees",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/employees/{id}": {
      "get": {
        "description": "Read access to `/api/master-data/employees/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / employees / :id",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/fcrs/": {
      "get": {
        "description": "Read access to `/api/master-data/fcrs`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "fcr",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / fcrs",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/fcrs/{id}": {
      "get": {
        "description": "Read access to `/api/master-data/fcrs/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / fcrs / :id",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/flocks/": {
      "get": {
        "description": "Read access to `/api/master-data/flocks`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "layer",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / flocks",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/flocks/{id}": {
      "get": {
        "description": "Read access to `/api/master-data/flocks/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / flocks / :id",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/kandang-groups/": {
      "get": {
        "description": "Read access to `/api/master-data/kandang-groups`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "blok",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Location id filter.",
            "example": 1,
            "in": "query",
            "name": "location_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Person in charge id filter.",
            "example": 1,
            "in": "query",
            "name": "pic_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / kandang groups",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/kandang-groups/{id}": {
      "get": {
        "description": "Read access to `/api/master-data/kandang-groups/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / kandang groups / :id",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/kandangs/": {
      "get": {
        "description": "Read access to `/api/master-data/kandangs`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "kandang",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Location id filter.",
            "example": 1,
            "in": "query",
            "name": "location_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Person in charge id filter.",
            "example": 1,
            "in": "query",
            "name": "pic_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / kandangs",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/kandangs/{id}": {
      "get": {
        "description": "Read access to `/api/master-data/kandangs/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / kandangs / :id",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/locations/": {
      "get": {
        "description": "Read access to `/api/master-data/locations`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "farm",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Area id filter.",
            "example": 1,
            "in": "query",
            "name": "area_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter laying locations only.",
            "example": false,
            "in": "query",
            "name": "has_laying",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / locations",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/locations/{id}": {
      "get": {
        "description": "Read access to `/api/master-data/locations/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / locations / :id",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/nonstocks/": {
      "get": {
        "description": "Read access to `/api/master-data/nonstocks`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "vitamin",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Supplier id filter.",
            "example": 1,
            "in": "query",
            "name": "supplier_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / nonstocks",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/nonstocks/{id}": {
      "get": {
        "description": "Read access to `/api/master-data/nonstocks/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / nonstocks / :id",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/phase-activities/": {
      "get": {
        "description": "Read access to `/api/master-data/phase-activities`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "cek pakan",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated phase ids.",
            "example": "1,2",
            "in": "query",
            "name": "phase_ids",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / phase activities",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/phase-activities/{id}": {
      "get": {
        "description": "Read access to `/api/master-data/phase-activities/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / phase activities / :id",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/phases/": {
      "get": {
        "description": "Read access to `/api/master-data/phases`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "starter",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Phase category filter.",
            "example": "Growing",
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / phases",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/phases/{id}": {
      "get": {
        "description": "Read access to `/api/master-data/phases/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / phases / :id",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/product-categories/": {
      "get": {
        "description": "Read access to `/api/master-data/product-categories`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "pakan",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / product categories",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/product-categories/{id}": {
      "get": {
        "description": "Read access to `/api/master-data/product-categories/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / product categories / :id",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/production-standards/": {
      "get": {
        "description": "Read access to `/api/master-data/production-standards`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "standar",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Project category filter.",
            "example": "GROWING",
            "in": "query",
            "name": "project_category",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / production standards",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/production-standards/{id}": {
      "get": {
        "description": "Read access to `/api/master-data/production-standards/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / production standards / :id",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/products/": {
      "get": {
        "description": "Read access to `/api/master-data/products`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "jagung",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Product category id filter.",
            "example": 1,
            "in": "query",
            "name": "product_category_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter depletion products.",
            "example": false,
            "in": "query",
            "name": "is_depletion",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Include all products regardless of status.",
            "example": false,
            "in": "query",
            "name": "include_all",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / products",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/products/{id}": {
      "get": {
        "description": "Read access to `/api/master-data/products/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / products / :id",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/suppliers/": {
      "get": {
        "description": "Read access to `/api/master-data/suppliers`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "supplier",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Supplier type flag filter.",
            "example": "ACTIVE",
            "in": "query",
            "name": "flag",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Supplier category filter.",
            "example": "PAKAN",
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / suppliers",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/suppliers/{id}": {
      "get": {
        "description": "Read access to `/api/master-data/suppliers/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / suppliers / :id",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/uoms/": {
      "get": {
        "description": "Read access to `/api/master-data/uoms`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "kg",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / uoms",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/uoms/{id}": {
      "get": {
        "description": "Read access to `/api/master-data/uoms/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / uoms / :id",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/warehouses/": {
      "get": {
        "description": "Read access to `/api/master-data/warehouses`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "gudang",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Area id filter.",
            "example": 1,
            "in": "query",
            "name": "area_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Location id filter.",
            "example": 1,
            "in": "query",
            "name": "location_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter only active project flock warehouses.",
            "example": false,
            "in": "query",
            "name": "active_project_flock",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Transfer context filter.",
            "example": "inventory_transfer",
            "in": "query",
            "name": "transfer_context",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / warehouses",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/master-data/warehouses/{id}": {
      "get": {
        "description": "Read access to `/api/master-data/warehouses/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / master data / warehouses / :id",
        "tags": [
          "Master Data"
        ]
      }
    },
    "/api/production/chickins/{id}": {
      "get": {
        "description": "Read access to `/api/production/chickins/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / production / chickins / :id",
        "tags": [
          "Production"
        ]
      }
    },
    "/api/production/project-flock-kandangs/": {
      "get": {
        "description": "Read access to `/api/production/project-flock-kandangs`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "kandang",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return name-with-period projection.",
            "example": false,
            "in": "query",
            "name": "name_with_periode",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Project flock id filter.",
            "example": 1,
            "in": "query",
            "name": "project_flock_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Kandang id filter.",
            "example": 1,
            "in": "query",
            "name": "kandang_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Project category filter.",
            "example": "Growing",
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Area id filter.",
            "example": 1,
            "in": "query",
            "name": "area_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Location id filter.",
            "example": 1,
            "in": "query",
            "name": "location_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Sort field.",
            "example": "created_at",
            "in": "query",
            "name": "sort_by",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order.",
            "example": "ASC",
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Approval step name filter.",
            "example": "Pengajuan",
            "in": "query",
            "name": "step_name",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / production / project flock kandangs",
        "tags": [
          "Production"
        ]
      }
    },
    "/api/production/project-flock-kandangs/{id}": {
      "get": {
        "description": "Read access to `/api/production/project-flock-kandangs/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / production / project flock kandangs / :id",
        "tags": [
          "Production"
        ]
      }
    },
    "/api/production/project-flock-kandangs/{id}/closing/check": {
      "get": {
        "description": "Read access to `/api/production/project-flock-kandangs/:id/closing/check`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / production / project flock kandangs / :id / closing / check",
        "tags": [
          "Production"
        ]
      }
    },
    "/api/production/project-flocks/": {
      "get": {
        "description": "Read access to `/api/production/project-flocks`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "flock",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort field.",
            "example": "created_at",
            "in": "query",
            "name": "sort_by",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order.",
            "example": "asc",
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Area id filter.",
            "example": 1,
            "in": "query",
            "name": "area_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Location id filter.",
            "example": 1,
            "in": "query",
            "name": "location_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Project period filter.",
            "example": 1,
            "in": "query",
            "name": "period",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Project category filter.",
            "example": "Growing",
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Project status filter.",
            "example": "Aktif",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated kandang ids.",
            "example": "1,2",
            "in": "query",
            "name": "kandang_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Transfer context filter.",
            "example": "transfer_to_laying",
            "in": "query",
            "name": "transfer_context",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / production / project flocks",
        "tags": [
          "Production"
        ]
      }
    },
    "/api/production/project-flocks/kandangs/lookup": {
      "get": {
        "description": "Read access to `/api/production/project-flocks/kandangs/lookup`.",
        "parameters": [
          {
            "description": "Project flock id.",
            "example": 1,
            "in": "query",
            "name": "project_flock_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Kandang id.",
            "example": 1,
            "in": "query",
            "name": "kandang_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Include population value in response.",
            "example": false,
            "in": "query",
            "name": "withpopulation",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Reference date (YYYY-MM-DD).",
            "example": "2026-01-01",
            "in": "query",
            "name": "record_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / production / project flocks / kandangs / lookup",
        "tags": [
          "Production"
        ]
      }
    },
    "/api/production/project-flocks/locations/{location_id}/periods": {
      "get": {
        "description": "Read access to `/api/production/project-flocks/locations/:location_id/periods`.",
        "parameters": [
          {
            "description": "Path parameter `location_id`.",
            "in": "path",
            "name": "location_id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / production / project flocks / locations / :location_id / periods",
        "tags": [
          "Production"
        ]
      }
    },
    "/api/production/project-flocks/{id}": {
      "get": {
        "description": "Read access to `/api/production/project-flocks/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / production / project flocks / :id",
        "tags": [
          "Production"
        ]
      }
    },
    "/api/production/recordings/": {
      "get": {
        "description": "Read access to `/api/production/recordings`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Project flock kandang id filter.",
            "example": 1,
            "in": "query",
            "name": "project_flock_kandang_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "record",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Export mode.",
            "example": "excel",
            "in": "query",
            "name": "export",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / production / recordings",
        "tags": [
          "Production"
        ]
      }
    },
    "/api/production/recordings/next-day": {
      "get": {
        "description": "Read access to `/api/production/recordings/next-day`.",
        "parameters": [
          {
            "description": "Project flock kandang id.",
            "example": 1,
            "in": "query",
            "name": "project_flock_kandang_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Recording date (YYYY-MM-DD).",
            "example": "2026-01-01",
            "in": "query",
            "name": "record_date",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / production / recordings / next day",
        "tags": [
          "Production"
        ]
      }
    },
    "/api/production/recordings/{id}": {
      "get": {
        "description": "Read access to `/api/production/recordings/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / production / recordings / :id",
        "tags": [
          "Production"
        ]
      }
    },
    "/api/production/transfer_layings/": {
      "get": {
        "description": "Read access to `/api/production/transfer_layings`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "transfer",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Start date (YYYY-MM-DD).",
            "example": "2026-01-01",
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "End date (YYYY-MM-DD).",
            "example": "2026-01-31",
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated source flock ids.",
            "example": "1,2",
            "in": "query",
            "name": "flock_source",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated destination flock ids.",
            "example": "3,4",
            "in": "query",
            "name": "flock_destination",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated status values.",
            "example": "DRAFT,APPROVED",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / production / transfer_layings",
        "tags": [
          "Production"
        ]
      }
    },
    "/api/production/transfer_layings/project-flocks/{project_flock_id}/available-qty": {
      "get": {
        "description": "Read access to `/api/production/transfer_layings/project-flocks/:project_flock_id/available-qty`.",
        "parameters": [
          {
            "description": "Path parameter `project_flock_id`.",
            "in": "path",
            "name": "project_flock_id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / production / transfer_layings / project flocks / :project_flock_id / available qty",
        "tags": [
          "Production"
        ]
      }
    },
    "/api/production/transfer_layings/project-flocks/{project_flock_id}/max-target-qty": {
      "get": {
        "description": "Read access to `/api/production/transfer_layings/project-flocks/:project_flock_id/max-target-qty`.",
        "parameters": [
          {
            "description": "Path parameter `project_flock_id`.",
            "in": "path",
            "name": "project_flock_id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / production / transfer_layings / project flocks / :project_flock_id / max target qty",
        "tags": [
          "Production"
        ]
      }
    },
    "/api/production/transfer_layings/{id}": {
      "get": {
        "description": "Read access to `/api/production/transfer_layings/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / production / transfer_layings / :id",
        "tags": [
          "Production"
        ]
      }
    },
    "/api/production/uniformities/": {
      "get": {
        "description": "Read access to `/api/production/uniformities`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Project flock kandang id filter.",
            "example": 1,
            "in": "query",
            "name": "project_flock_kandang_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Week number filter.",
            "example": 1,
            "in": "query",
            "name": "week",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Start date (YYYY-MM-DD).",
            "example": "2026-01-01",
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "End date (YYYY-MM-DD).",
            "example": "2026-01-31",
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Include chart payload.",
            "example": false,
            "in": "query",
            "name": "with_chart",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / production / uniformities",
        "tags": [
          "Production"
        ]
      }
    },
    "/api/production/uniformities/{id}": {
      "get": {
        "description": "Read access to `/api/production/uniformities/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / production / uniformities / :id",
        "tags": [
          "Production"
        ]
      }
    },
    "/api/purchases/": {
      "get": {
        "description": "Read access to `/api/purchases`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Supplier id filter.",
            "example": 1,
            "in": "query",
            "name": "supplier_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Area id filter.",
            "example": 1,
            "in": "query",
            "name": "area_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Location id filter.",
            "example": 1,
            "in": "query",
            "name": "location_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Product category id filter.",
            "example": "1",
            "in": "query",
            "name": "product_category_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Approval status filter.",
            "example": "PENDING",
            "in": "query",
            "name": "approval_status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "PO date (YYYY-MM-DD).",
            "example": "2026-01-01",
            "in": "query",
            "name": "po_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "PO date start (YYYY-MM-DD).",
            "example": "2026-01-01",
            "in": "query",
            "name": "po_date_from",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "PO date end (YYYY-MM-DD).",
            "example": "2026-01-31",
            "in": "query",
            "name": "po_date_to",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Search keyword.",
            "example": "PO-",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Created date start (YYYY-MM-DD).",
            "example": "2026-01-01",
            "in": "query",
            "name": "created_from",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Created date end (YYYY-MM-DD).",
            "example": "2026-01-31",
            "in": "query",
            "name": "created_to",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / purchases",
        "tags": [
          "Purchases"
        ]
      }
    },
    "/api/purchases/{id}": {
      "get": {
        "description": "Read access to `/api/purchases/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / purchases / :id",
        "tags": [
          "Purchases"
        ]
      }
    },
    "/api/reports/customer-payment": {
      "get": {
        "description": "Read access to `/api/reports/customer-payment`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Period start date (YYYY-MM-DD).",
            "example": "2026-01-01",
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Period end date (YYYY-MM-DD).",
            "example": "2026-01-31",
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated customer ids.",
            "example": "1,2",
            "in": "query",
            "name": "customer_ids",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Date field filter.",
            "example": "TRANS_DATE",
            "in": "query",
            "name": "filter_by",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / reports / customer payment",
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/reports/debt-supplier": {
      "get": {
        "description": "Read access to `/api/reports/debt-supplier`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Period start date (YYYY-MM-DD).",
            "example": "2026-01-01",
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Period end date (YYYY-MM-DD).",
            "example": "2026-01-31",
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated supplier ids.",
            "example": "1,2",
            "in": "query",
            "name": "supplier_ids",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Date field filter.",
            "example": "received_date",
            "in": "query",
            "name": "filter_by",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order.",
            "example": "asc",
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / reports / debt supplier",
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/reports/expense": {
      "get": {
        "description": "Read access to `/api/reports/expense`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "operasional",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Expense category filter.",
            "example": "BOP",
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Supplier id filter.",
            "example": 1,
            "in": "query",
            "name": "supplier_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Kandang id filter.",
            "example": 1,
            "in": "query",
            "name": "kandang_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Project flock kandang id filter.",
            "example": 1,
            "in": "query",
            "name": "project_flock_kandang_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Nonstock id filter.",
            "example": 1,
            "in": "query",
            "name": "nonstock_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Location id filter.",
            "example": 1,
            "in": "query",
            "name": "location_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Area id filter.",
            "example": 1,
            "in": "query",
            "name": "area_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Realization date filter (YYYY-MM-DD).",
            "example": "2026-01-15",
            "in": "query",
            "name": "realization_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / reports / expense",
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/reports/expense/depreciation": {
      "get": {
        "description": "Read access to `/api/reports/expense/depreciation`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Daily period filter (YYYY-MM-DD).",
            "example": "2026-01-01",
            "in": "query",
            "name": "period",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated project flock ids.",
            "example": "1,2",
            "in": "query",
            "name": "project_flock_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated area ids.",
            "example": "1,2",
            "in": "query",
            "name": "area_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated location ids.",
            "example": "1,2",
            "in": "query",
            "name": "location_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / reports / expense / depreciation",
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/reports/expense/depreciation/manual-inputs": {
      "get": {
        "description": "Read access to `/api/reports/expense/depreciation/manual-inputs`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Comma separated project flock ids.",
            "example": "1,2",
            "in": "query",
            "name": "project_flock_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated area ids.",
            "example": "1,2",
            "in": "query",
            "name": "area_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated location ids.",
            "example": "1,2",
            "in": "query",
            "name": "location_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / reports / expense / depreciation / manual inputs",
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/reports/hpp-per-kandang": {
      "get": {
        "description": "Read access to `/api/reports/hpp-per-kandang`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Daily period filter (YYYY-MM-DD).",
            "example": "2026-01-01",
            "in": "query",
            "name": "period",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Include unrecorded data.",
            "example": false,
            "in": "query",
            "name": "show_unrecorded",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated area ids.",
            "example": "1,2",
            "in": "query",
            "name": "area_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated location ids.",
            "example": "1,2",
            "in": "query",
            "name": "location_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated kandang ids.",
            "example": "1,2",
            "in": "query",
            "name": "kandang_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Minimum body weight filter.",
            "example": "1.2",
            "in": "query",
            "name": "weight_min",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Maximum body weight filter.",
            "example": "1.8",
            "in": "query",
            "name": "weight_max",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / reports / hpp per kandang",
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/reports/marketing": {
      "get": {
        "description": "Read access to `/api/reports/marketing`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "SO-",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Customer id filter.",
            "example": 1,
            "in": "query",
            "name": "customer_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Product id filter.",
            "example": 1,
            "in": "query",
            "name": "product_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Warehouse id filter.",
            "example": 1,
            "in": "query",
            "name": "warehouse_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Sales person id filter.",
            "example": 1,
            "in": "query",
            "name": "sales_person_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Area id filter.",
            "example": 1,
            "in": "query",
            "name": "area_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Location id filter.",
            "example": 1,
            "in": "query",
            "name": "location_id",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Marketing type filter.",
            "example": "ayam",
            "in": "query",
            "name": "marketing_type",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Date field filter.",
            "example": "so_date",
            "in": "query",
            "name": "filter_by",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Period start date (YYYY-MM-DD).",
            "example": "2026-01-01",
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Period end date (YYYY-MM-DD).",
            "example": "2026-01-31",
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort field.",
            "example": "so_date",
            "in": "query",
            "name": "sort_by",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order.",
            "example": "asc",
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / reports / marketing",
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/reports/production-result/{idProjectFlockKandang}": {
      "get": {
        "description": "Read access to `/api/reports/production-result/:idProjectFlockKandang`.",
        "parameters": [
          {
            "description": "Path parameter `idProjectFlockKandang`.",
            "in": "path",
            "name": "idProjectFlockKandang",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          },
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / reports / production result / :idProjectFlockKandang",
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/reports/purchase-supplier": {
      "get": {
        "description": "Read access to `/api/reports/purchase-supplier`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Comma separated area ids.",
            "example": "1,2",
            "in": "query",
            "name": "area_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated supplier ids.",
            "example": "1,2",
            "in": "query",
            "name": "supplier_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated product ids.",
            "example": "1,2",
            "in": "query",
            "name": "product_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Comma separated product category ids.",
            "example": "1,2",
            "in": "query",
            "name": "product_category_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Period start date (YYYY-MM-DD).",
            "example": "2026-01-01",
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Period end date (YYYY-MM-DD).",
            "example": "2026-01-31",
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort field.",
            "example": "created_at",
            "in": "query",
            "name": "sort_by",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter field.",
            "example": "received_date",
            "in": "query",
            "name": "filter_by",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / reports / purchase supplier",
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/sso/callback": {
      "get": {
        "description": "Read access to `/api/sso/callback`.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "summary": "GET api / sso / callback",
        "tags": [
          "SSO"
        ]
      }
    },
    "/api/sso/master/areas": {
      "get": {
        "description": "Read access to `/api/sso/master/areas`.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "summary": "GET api / sso / master / areas",
        "tags": [
          "SSO"
        ]
      }
    },
    "/api/sso/master/locations": {
      "get": {
        "description": "Read access to `/api/sso/master/locations`.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "summary": "GET api / sso / master / locations",
        "tags": [
          "SSO"
        ]
      }
    },
    "/api/sso/start": {
      "get": {
        "description": "Read access to `/api/sso/start`.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "summary": "GET api / sso / start",
        "tags": [
          "SSO"
        ]
      }
    },
    "/api/sso/userinfo": {
      "get": {
        "description": "Read access to `/api/sso/userinfo`.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / sso / userinfo",
        "tags": [
          "SSO"
        ]
      }
    },
    "/api/users/": {
      "get": {
        "description": "Read access to `/api/users`.",
        "parameters": [
          {
            "description": "Page number.",
            "example": 1,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Page size.",
            "example": 10,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Search keyword.",
            "example": "admin",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / users",
        "tags": [
          "Users"
        ]
      }
    },
    "/api/users/{id}": {
      "get": {
        "description": "Read access to `/api/users/:id`.",
        "parameters": [
          {
            "description": "Path parameter `id`.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "example": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          },
          {
            "BearerAuth": []
          }
        ],
        "summary": "GET api / users / :id",
        "tags": [
          "Users"
        ]
      }
    },
    "/healthz": {
      "get": {
        "description": "Simple liveness probe.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "summary": "Health check",
        "tags": [
          "System"
        ]
      }
    },
    "/readyz": {
      "get": {
        "description": "Readiness probe for database and Redis.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessEnvelope"
                }
              }
            },
            "description": "Successful response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                }
              }
            },
            "description": "Forbidden"
          }
        },
        "summary": "Readiness check",
        "tags": [
          "System"
        ]
      }
    }
  },
  "servers": [
    {
      "url": "http://localhost:8081"
    }
  ]
}