{
  "version": "1.0",
  "modules": [
    {
      "name": "Operations",
      "prefix": "/trucks",
      "endpoints": [
        {
          "method": "POST",
          "path": "/",
          "summary": "Create Truck Entry",
          "description": "Creates a new truck entry record with ASN, container number, truck number, driver name, and optional purpose. Validates that the submenu and purpose exist. Returns 400 if validation fails.",
          "request_body": {
            "schema_name": "TruckCreate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "asn",
                "type": "str",
                "required": true
              },
              {
                "name": "container_number",
                "type": "str",
                "required": true
              },
              {
                "name": "truck_number",
                "type": "str",
                "required": true
              },
              {
                "name": "driver_name",
                "type": "str",
                "required": true
              },
              {
                "name": "purpose_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "TruckResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "asn",
                "type": "str",
                "required": true
              },
              {
                "name": "container_number",
                "type": "str",
                "required": true
              },
              {
                "name": "truck_number",
                "type": "str",
                "required": true
              },
              {
                "name": "driver_name",
                "type": "str",
                "required": true
              },
              {
                "name": "purpose_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/{truck_id}",
          "summary": "Get Truck By ID",
          "description": "Retrieves a single truck entry by its ID. Returns 404 if the truck does not exist or has been soft-deleted.",
          "path_params": [
            {
              "name": "truck_id",
              "type": "int"
            }
          ],
          "response": {
            "schema_name": "TruckResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "asn",
                "type": "str",
                "required": true
              },
              {
                "name": "container_number",
                "type": "str",
                "required": true
              },
              {
                "name": "truck_number",
                "type": "str",
                "required": true
              },
              {
                "name": "driver_name",
                "type": "str",
                "required": true
              },
              {
                "name": "purpose_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/",
          "summary": "List Trucks",
          "description": "Returns a paginated list of truck entries. Supports optional filters for ASN, truck number, and container number. Excludes soft-deleted records.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "asn",
              "type": "str",
              "required": false
            },
            {
              "name": "truck_number",
              "type": "str",
              "required": false
            },
            {
              "name": "container_number",
              "type": "str",
              "required": false
            }
          ],
          "response": {
            "schema_name": "TruckResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "asn",
                "type": "str",
                "required": true
              },
              {
                "name": "container_number",
                "type": "str",
                "required": true
              },
              {
                "name": "truck_number",
                "type": "str",
                "required": true
              },
              {
                "name": "driver_name",
                "type": "str",
                "required": true
              },
              {
                "name": "purpose_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/{truck_id}",
          "summary": "Update Truck Entry",
          "description": "Updates an existing truck entry. Only provided fields are updated. Increments the version counter for optimistic concurrency. Returns 404 if the truck does not exist.",
          "path_params": [
            {
              "name": "truck_id",
              "type": "int"
            }
          ],
          "request_body": {
            "schema_name": "TruckUpdate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "asn",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "container_number",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "truck_number",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "driver_name",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "purpose_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "TruckResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "asn",
                "type": "str",
                "required": true
              },
              {
                "name": "container_number",
                "type": "str",
                "required": true
              },
              {
                "name": "truck_number",
                "type": "str",
                "required": true
              },
              {
                "name": "driver_name",
                "type": "str",
                "required": true
              },
              {
                "name": "purpose_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/{truck_id}",
          "summary": "Soft-Delete Truck Entry",
          "description": "Soft-deletes a truck entry by setting the deleted_at timestamp. The record remains in the database but is excluded from normal queries. Returns 404 if the truck does not exist.",
          "path_params": [
            {
              "name": "truck_id",
              "type": "int"
            }
          ],
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/{truck_id}/details",
          "summary": "Get Truck Details With Purpose",
          "description": "Retrieves a truck entry with its associated truck purpose configuration eagerly loaded. Returns 404 if the truck does not exist or has been soft-deleted.",
          "path_params": [
            {
              "name": "truck_id",
              "type": "int"
            }
          ],
          "response": {
            "schema_name": "TruckDetailResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "asn",
                "type": "str",
                "required": true
              },
              {
                "name": "container_number",
                "type": "str",
                "required": true
              },
              {
                "name": "truck_number",
                "type": "str",
                "required": true
              },
              {
                "name": "driver_name",
                "type": "str",
                "required": true
              },
              {
                "name": "purpose_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "purpose",
                "type": "TruckPurposeResponse",
                "required": false,
                "nullable": true,
                "fields": [
                  {
                    "name": "cfg_truck_purpose_id",
                    "type": "int",
                    "required": true
                  },
                  {
                    "name": "code",
                    "type": "str",
                    "required": true
                  },
                  {
                    "name": "label",
                    "type": "str",
                    "required": true
                  },
                  {
                    "name": "description",
                    "type": "str",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "is_active",
                    "type": "bool",
                    "required": true
                  }
                ]
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/{truck_id}/archive",
          "summary": "Archive Truck With History",
          "description": "Soft-deletes a truck and creates a history record for audit trail. Returns 404 if the truck does not exist, or 409 if the truck is already archived.",
          "path_params": [
            {
              "name": "truck_id",
              "type": "int"
            }
          ],
          "query_params": [
            {
              "name": "changed_by",
              "type": "int",
              "required": false
            }
          ],
          "response": {
            "schema_name": "TruckResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "asn",
                "type": "str",
                "required": true
              },
              {
                "name": "container_number",
                "type": "str",
                "required": true
              },
              {
                "name": "truck_number",
                "type": "str",
                "required": true
              },
              {
                "name": "driver_name",
                "type": "str",
                "required": true
              },
              {
                "name": "purpose_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/history",
          "summary": "Create Truck History Record",
          "description": "Creates a new truck history record for audit purposes. Validates that the submenu, truck, and user exist. Returns 400 if validation fails.",
          "request_body": {
            "schema_name": "TruckhistoryCreate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "truck_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              }
            ]
          },
          "response": {
            "schema_name": "TruckhistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "truck_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/history/{history_id}",
          "summary": "Get Truck History By ID",
          "description": "Retrieves a single truck history record by its ID. Returns 404 if the history record does not exist.",
          "path_params": [
            {
              "name": "history_id",
              "type": "int"
            }
          ],
          "response": {
            "schema_name": "TruckhistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "truck_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/history",
          "summary": "List Truck History Records",
          "description": "Returns a paginated list of truck history records. Supports optional filters for truck ID and change type. Ordered by change date descending.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "truck_id",
              "type": "int",
              "required": false
            },
            {
              "name": "change_type",
              "type": "str",
              "required": false
            }
          ],
          "response": {
            "schema_name": "TruckhistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "truck_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/history/{history_id}",
          "summary": "Update Truck History Record",
          "description": "Updates an existing truck history record. Only provided fields are updated. Returns 404 if the history record does not exist.",
          "path_params": [
            {
              "name": "history_id",
              "type": "int"
            }
          ],
          "request_body": {
            "schema_name": "TruckhistoryUpdate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "truck_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "TruckhistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "truck_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/history/{history_id}",
          "summary": "Delete Truck History Record",
          "description": "Permanently deletes a truck history record from the database. Returns 404 if the history record does not exist.",
          "path_params": [
            {
              "name": "history_id",
              "type": "int"
            }
          ],
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/history/{history_id}/details",
          "summary": "Get Truck History Details",
          "description": "Retrieves a truck history record with its associated truck and user who made the change eagerly loaded. Returns 404 if the history record does not exist.",
          "path_params": [
            {
              "name": "history_id",
              "type": "int"
            }
          ],
          "response": {
            "schema_name": "TruckhistoryDetailResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "truck_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "truck",
                "type": "TruckResponse",
                "required": false,
                "nullable": true,
                "fields": [
                  {
                    "name": "submenu_id",
                    "type": "int",
                    "required": true
                  },
                  {
                    "name": "asn",
                    "type": "str",
                    "required": true
                  },
                  {
                    "name": "container_number",
                    "type": "str",
                    "required": true
                  },
                  {
                    "name": "truck_number",
                    "type": "str",
                    "required": true
                  },
                  {
                    "name": "driver_name",
                    "type": "str",
                    "required": true
                  },
                  {
                    "name": "purpose_id",
                    "type": "int",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "notes",
                    "type": "str",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "metadata",
                    "type": "str",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "id",
                    "type": "int",
                    "required": true
                  },
                  {
                    "name": "version",
                    "type": "int",
                    "required": true
                  },
                  {
                    "name": "deleted_at",
                    "type": "datetime",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "created_at",
                    "type": "datetime",
                    "required": true
                  },
                  {
                    "name": "updated_at",
                    "type": "datetime",
                    "required": true
                  }
                ]
              },
              {
                "name": "changed_by_user",
                "type": "TruckUserResponse",
                "required": false,
                "nullable": true,
                "fields": [
                  {
                    "name": "id",
                    "type": "int",
                    "required": true
                  },
                  {
                    "name": "username",
                    "type": "str",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "email",
                    "type": "str",
                    "required": false,
                    "nullable": true
                  }
                ]
              }
            ],
            "is_list": false
          },
          "status_code": 200
        }
      ]
    },
    {
      "name": "Master Data",
      "prefix": "/master-data",
      "endpoints": [
        {
          "method": "POST",
          "path": "/orders",
          "summary": "Create Purchase Order",
          "description": "Creates a new purchase order record with PO number and supplier vendor information. Returns 409 if the PO number already exists. Automatically creates a history record for audit trail.",
          "request_body": {
            "schema_name": "OrderCreate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "po_number",
                "type": "str",
                "required": true
              },
              {
                "name": "supplier_vendor",
                "type": "str",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "OrderResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "po_number",
                "type": "str",
                "required": true
              },
              {
                "name": "supplier_vendor",
                "type": "str",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/orders/{order_id}",
          "summary": "Get Purchase Order",
          "description": "Retrieves a single purchase order by its unique ID. Returns 404 if the order does not exist or has been soft-deleted.",
          "path_params": [
            {
              "name": "order_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "OrderResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "po_number",
                "type": "str",
                "required": true
              },
              {
                "name": "supplier_vendor",
                "type": "str",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/orders",
          "summary": "List Purchase Orders",
          "description": "Returns a paginated list of purchase orders. Supports optional search filter on PO number and supplier vendor fields. Excludes soft-deleted records.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "search",
              "type": "str",
              "required": false
            }
          ],
          "response": {
            "schema_name": "OrderResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "po_number",
                "type": "str",
                "required": true
              },
              {
                "name": "supplier_vendor",
                "type": "str",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/orders/{order_id}",
          "summary": "Update Purchase Order",
          "description": "Updates an existing purchase order. Returns 404 if the order does not exist. Returns 409 if the new PO number conflicts with an existing order. Automatically creates a history record for audit trail.",
          "path_params": [
            {
              "name": "order_id",
              "type": "str"
            }
          ],
          "request_body": {
            "schema_name": "OrderUpdate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "po_number",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "supplier_vendor",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "OrderResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "po_number",
                "type": "str",
                "required": true
              },
              {
                "name": "supplier_vendor",
                "type": "str",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/orders/{order_id}",
          "summary": "Delete Purchase Order",
          "description": "Soft-deletes a purchase order by setting the deleted_at timestamp. Returns 404 if the order does not exist. Automatically creates a history record for audit trail.",
          "path_params": [
            {
              "name": "order_id",
              "type": "str"
            }
          ],
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/vendors",
          "summary": "Create Vendor",
          "description": "Creates a new vendor record with a unique vendor number. Returns 409 if the vendor number already exists. Automatically creates a history record for audit trail.",
          "request_body": {
            "schema_name": "VendorCreate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "vendor_number",
                "type": "str",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "VendorResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "vendor_number",
                "type": "str",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/vendors/{vendor_id}",
          "summary": "Get Vendor",
          "description": "Retrieves a single vendor by its unique ID. Returns 404 if the vendor does not exist or has been soft-deleted.",
          "path_params": [
            {
              "name": "vendor_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "VendorResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "vendor_number",
                "type": "str",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/vendors",
          "summary": "List Vendors",
          "description": "Returns a paginated list of vendors. Supports optional search filter on vendor number field. Excludes soft-deleted records.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "search",
              "type": "str",
              "required": false
            }
          ],
          "response": {
            "schema_name": "VendorResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "vendor_number",
                "type": "str",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/vendors/{vendor_id}",
          "summary": "Update Vendor",
          "description": "Updates an existing vendor record. Returns 404 if the vendor does not exist. Returns 409 if the new vendor number conflicts with an existing vendor. Automatically creates a history record for audit trail.",
          "path_params": [
            {
              "name": "vendor_id",
              "type": "str"
            }
          ],
          "request_body": {
            "schema_name": "VendorUpdate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "vendor_number",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "VendorResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "vendor_number",
                "type": "str",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/vendors/{vendor_id}",
          "summary": "Delete Vendor",
          "description": "Soft-deletes a vendor by setting the deleted_at timestamp. Returns 404 if the vendor does not exist. Automatically creates a history record for audit trail.",
          "path_params": [
            {
              "name": "vendor_id",
              "type": "str"
            }
          ],
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/order-histories",
          "summary": "Create Order History",
          "description": "Creates a new order history record for audit trail. Returns 404 if the referenced order does not exist.",
          "request_body": {
            "schema_name": "OrderhistoryCreate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "order_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              }
            ]
          },
          "response": {
            "schema_name": "OrderhistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "order_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/order-histories/{history_id}",
          "summary": "Get Order History",
          "description": "Retrieves a single order history record by its unique ID. Returns 404 if the history record does not exist.",
          "path_params": [
            {
              "name": "history_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "OrderhistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "order_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/order-histories",
          "summary": "List Order Histories",
          "description": "Returns a paginated list of order history records. Supports optional filter by order ID to retrieve all history for a specific order.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "order_id",
              "type": "str",
              "required": false
            }
          ],
          "response": {
            "schema_name": "OrderhistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "order_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/order-histories/{history_id}",
          "summary": "Update Order History",
          "description": "Updates an existing order history record. Returns 404 if the history record or referenced order does not exist.",
          "path_params": [
            {
              "name": "history_id",
              "type": "str"
            }
          ],
          "request_body": {
            "schema_name": "OrderhistoryUpdate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "order_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "OrderhistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "order_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/order-histories/{history_id}",
          "summary": "Delete Order History",
          "description": "Permanently deletes an order history record. Returns 404 if the history record does not exist.",
          "path_params": [
            {
              "name": "history_id",
              "type": "str"
            }
          ],
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/vendor-histories",
          "summary": "Create Vendor History",
          "description": "Creates a new vendor history record for audit trail. Returns 404 if the referenced vendor does not exist.",
          "request_body": {
            "schema_name": "VendorhistoryCreate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "vendor_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              }
            ]
          },
          "response": {
            "schema_name": "VendorhistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "vendor_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/vendor-histories/{history_id}",
          "summary": "Get Vendor History",
          "description": "Retrieves a single vendor history record by its unique ID. Returns 404 if the history record does not exist.",
          "path_params": [
            {
              "name": "history_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "VendorhistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "vendor_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/vendor-histories",
          "summary": "List Vendor Histories",
          "description": "Returns a paginated list of vendor history records. Supports optional filter by vendor ID to retrieve all history for a specific vendor.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "vendor_id",
              "type": "str",
              "required": false
            }
          ],
          "response": {
            "schema_name": "VendorhistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "vendor_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/vendor-histories/{history_id}",
          "summary": "Update Vendor History",
          "description": "Updates an existing vendor history record. Returns 404 if the history record or referenced vendor does not exist.",
          "path_params": [
            {
              "name": "history_id",
              "type": "str"
            }
          ],
          "request_body": {
            "schema_name": "VendorhistoryUpdate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "vendor_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "VendorhistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "vendor_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/vendor-histories/{history_id}",
          "summary": "Delete Vendor History",
          "description": "Permanently deletes a vendor history record. Returns 404 if the history record does not exist.",
          "path_params": [
            {
              "name": "history_id",
              "type": "str"
            }
          ],
          "status_code": 200
        }
      ]
    },
    {
      "name": "ASN Management",
      "prefix": "/asns",
      "endpoints": [
        {
          "method": "POST",
          "path": "/",
          "summary": "Create ASN",
          "description": "Creates a new Advanced Shipment Notice record. Returns 409 if an ASN with the same inbound shipment number already exists.",
          "request_body": {
            "schema_name": "AsnCreate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "inbound_shipment_no",
                "type": "str",
                "required": true
              },
              {
                "name": "total_skus",
                "type": "int",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "AsnResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "inbound_shipment_no",
                "type": "str",
                "required": true
              },
              {
                "name": "total_skus",
                "type": "int",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/{asn_id}",
          "summary": "Get ASN by ID",
          "description": "Retrieves a single ASN record by its unique identifier. Returns 404 if the ASN does not exist or has been soft-deleted.",
          "path_params": [
            {
              "name": "asn_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "AsnResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "inbound_shipment_no",
                "type": "str",
                "required": true
              },
              {
                "name": "total_skus",
                "type": "int",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/",
          "summary": "List ASNs",
          "description": "Returns a paginated list of ASN records. Supports optional search filter on inbound shipment number. Excludes soft-deleted records.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "search",
              "type": "str",
              "required": false
            }
          ],
          "response": {
            "schema_name": "AsnResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "inbound_shipment_no",
                "type": "str",
                "required": true
              },
              {
                "name": "total_skus",
                "type": "int",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/{asn_id}",
          "summary": "Update ASN",
          "description": "Updates an existing ASN record. Increments the version counter for optimistic concurrency control. Returns 404 if the ASN does not exist, 409 if the updated inbound shipment number conflicts with another ASN.",
          "path_params": [
            {
              "name": "asn_id",
              "type": "str"
            }
          ],
          "request_body": {
            "schema_name": "AsnUpdate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "inbound_shipment_no",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "total_skus",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "AsnResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "inbound_shipment_no",
                "type": "str",
                "required": true
              },
              {
                "name": "total_skus",
                "type": "int",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/{asn_id}",
          "summary": "Delete ASN",
          "description": "Soft-deletes an ASN record by setting the deleted_at timestamp. Returns 404 if the ASN does not exist.",
          "path_params": [
            {
              "name": "asn_id",
              "type": "str"
            }
          ],
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/{asn_id}/details",
          "summary": "Get ASN Details",
          "description": "Retrieves an ASN record with all associated line items eagerly loaded. Returns 404 if the ASN does not exist or has been soft-deleted.",
          "path_params": [
            {
              "name": "asn_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "AsnDetailResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "inbound_shipment_no",
                "type": "str",
                "required": true
              },
              {
                "name": "total_skus",
                "type": "int",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "line_items",
                "type": "List[AsnlineitemResponse]",
                "required": false,
                "is_list": true,
                "item_fields": [
                  {
                    "name": "submenu_id",
                    "type": "int",
                    "required": true
                  },
                  {
                    "name": "sku",
                    "type": "str",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "cases",
                    "type": "int",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "asn_id",
                    "type": "str",
                    "required": true
                  },
                  {
                    "name": "notes",
                    "type": "str",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "metadata",
                    "type": "str",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "id",
                    "type": "str",
                    "required": true
                  },
                  {
                    "name": "version",
                    "type": "int",
                    "required": true
                  },
                  {
                    "name": "deleted_at",
                    "type": "datetime",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "created_at",
                    "type": "datetime",
                    "required": true
                  },
                  {
                    "name": "updated_at",
                    "type": "datetime",
                    "required": true
                  }
                ]
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/{asn_id}/close",
          "summary": "Close ASN",
          "description": "Marks an ASN as closed by creating a history record with change type UPDATE. Returns 404 if the ASN does not exist.",
          "path_params": [
            {
              "name": "asn_id",
              "type": "str"
            }
          ],
          "query_params": [
            {
              "name": "changed_by",
              "type": "str",
              "required": false
            }
          ],
          "response": {
            "schema_name": "AsnResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "inbound_shipment_no",
                "type": "str",
                "required": true
              },
              {
                "name": "total_skus",
                "type": "int",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/histories",
          "summary": "Create ASN History",
          "description": "Creates a new ASN history record for audit trail purposes. Returns 400 if the referenced ASN does not exist.",
          "request_body": {
            "schema_name": "AsnhistoryCreate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "asn_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              }
            ]
          },
          "response": {
            "schema_name": "AsnhistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "asn_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/histories/{history_id}",
          "summary": "Get ASN History by ID",
          "description": "Retrieves a single ASN history record by its unique identifier. Returns 404 if the history record does not exist.",
          "path_params": [
            {
              "name": "history_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "AsnhistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "asn_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/histories",
          "summary": "List ASN Histories",
          "description": "Returns a paginated list of ASN history records. Supports optional filter by ASN ID to retrieve history for a specific ASN.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "asn_id",
              "type": "str",
              "required": false
            }
          ],
          "response": {
            "schema_name": "AsnhistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "asn_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/histories/{history_id}",
          "summary": "Update ASN History",
          "description": "Updates an existing ASN history record. Returns 404 if the history record does not exist, 400 if the referenced ASN does not exist.",
          "path_params": [
            {
              "name": "history_id",
              "type": "str"
            }
          ],
          "request_body": {
            "schema_name": "AsnhistoryUpdate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "asn_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "AsnhistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "asn_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/histories/{history_id}",
          "summary": "Delete ASN History",
          "description": "Permanently deletes an ASN history record. Returns 404 if the history record does not exist.",
          "path_params": [
            {
              "name": "history_id",
              "type": "str"
            }
          ],
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/line-items",
          "summary": "Create ASN Line Item",
          "description": "Creates a new ASN line item record. Returns 400 if the referenced ASN does not exist.",
          "request_body": {
            "schema_name": "AsnlineitemCreate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "sku",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "cases",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "asn_id",
                "type": "str",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "AsnlineitemResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "sku",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "cases",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "asn_id",
                "type": "str",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/line-items/{lineitem_id}",
          "summary": "Get ASN Line Item by ID",
          "description": "Retrieves a single ASN line item record by its unique identifier. Returns 404 if the line item does not exist or has been soft-deleted.",
          "path_params": [
            {
              "name": "lineitem_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "AsnlineitemResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "sku",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "cases",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "asn_id",
                "type": "str",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/line-items",
          "summary": "List ASN Line Items",
          "description": "Returns a paginated list of ASN line item records. Supports optional filter by ASN ID to retrieve line items for a specific ASN. Excludes soft-deleted records.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "asn_id",
              "type": "str",
              "required": false
            }
          ],
          "response": {
            "schema_name": "AsnlineitemResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "sku",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "cases",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "asn_id",
                "type": "str",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/line-items/{lineitem_id}",
          "summary": "Update ASN Line Item",
          "description": "Updates an existing ASN line item record. Increments the version counter for optimistic concurrency control. Returns 404 if the line item does not exist, 400 if the referenced ASN does not exist.",
          "path_params": [
            {
              "name": "lineitem_id",
              "type": "str"
            }
          ],
          "request_body": {
            "schema_name": "AsnlineitemUpdate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "sku",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "cases",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "asn_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "AsnlineitemResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "sku",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "cases",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "asn_id",
                "type": "str",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/line-items/{lineitem_id}",
          "summary": "Delete ASN Line Item",
          "description": "Soft-deletes an ASN line item record by setting the deleted_at timestamp. Returns 404 if the line item does not exist.",
          "path_params": [
            {
              "name": "lineitem_id",
              "type": "str"
            }
          ],
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/{asn_id}/line-items/batch",
          "summary": "Batch Update ASN Line Items",
          "description": "Replaces all line items for a given ASN with a new set. Deletes existing line items and creates new ones in a single transaction. Returns the updated ASN with all new line items.",
          "path_params": [
            {
              "name": "asn_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "AsnDetailResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "inbound_shipment_no",
                "type": "str",
                "required": true
              },
              {
                "name": "total_skus",
                "type": "int",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "line_items",
                "type": "List[AsnlineitemResponse]",
                "required": false,
                "is_list": true,
                "item_fields": [
                  {
                    "name": "submenu_id",
                    "type": "int",
                    "required": true
                  },
                  {
                    "name": "sku",
                    "type": "str",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "cases",
                    "type": "int",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "asn_id",
                    "type": "str",
                    "required": true
                  },
                  {
                    "name": "notes",
                    "type": "str",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "metadata",
                    "type": "str",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "id",
                    "type": "str",
                    "required": true
                  },
                  {
                    "name": "version",
                    "type": "int",
                    "required": true
                  },
                  {
                    "name": "deleted_at",
                    "type": "datetime",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "created_at",
                    "type": "datetime",
                    "required": true
                  },
                  {
                    "name": "updated_at",
                    "type": "datetime",
                    "required": true
                  }
                ]
              }
            ],
            "is_list": false
          },
          "status_code": 200
        }
      ]
    },
    {
      "name": "Pallet Configuration",
      "prefix": "/pallet-configs",
      "endpoints": [
        {
          "method": "POST",
          "path": "/",
          "summary": "Create Pallet Configuration",
          "description": "Creates a new pallet configuration record with cases per pallet settings. Validates that the submenu exists before creation. Returns 400 if the submenu does not exist.",
          "request_body": {
            "schema_name": "PalletconfigCreate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "cases_per_pallet",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "PalletconfigResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "cases_per_pallet",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/{entity_id}",
          "summary": "Get Pallet Configuration",
          "description": "Retrieves a single pallet configuration by ID. Returns 404 if the configuration does not exist or has been soft-deleted.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "PalletconfigResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "cases_per_pallet",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/",
          "summary": "List Pallet Configurations",
          "description": "Returns a paginated list of pallet configurations. Supports optional filtering by submenu_id. Excludes soft-deleted records.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "submenu_id",
              "type": "int",
              "required": false
            }
          ],
          "response": {
            "schema_name": "PalletconfigResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "cases_per_pallet",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/{entity_id}",
          "summary": "Update Pallet Configuration",
          "description": "Updates an existing pallet configuration. Increments the version counter for optimistic concurrency control. Returns 404 if the configuration does not exist.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "str"
            }
          ],
          "request_body": {
            "schema_name": "PalletconfigUpdate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "cases_per_pallet",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "PalletconfigResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "cases_per_pallet",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/{entity_id}",
          "summary": "Delete Pallet Configuration",
          "description": "Soft-deletes a pallet configuration by setting the deleted_at timestamp. Returns 404 if the configuration does not exist.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "str"
            }
          ],
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/history",
          "summary": "Create Pallet Configuration History",
          "description": "Creates a new history record for pallet configuration changes. Validates that the submenu, pallet config, and user exist before creation. Returns 400 if any referenced entity does not exist.",
          "request_body": {
            "schema_name": "PalletconfighistoryCreate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "pallet_config_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              }
            ]
          },
          "response": {
            "schema_name": "PalletconfighistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "pallet_config_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/history/{entity_id}",
          "summary": "Get Pallet Configuration History",
          "description": "Retrieves a single pallet configuration history record by ID. Returns 404 if the history record does not exist.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "PalletconfighistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "pallet_config_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/history",
          "summary": "List Pallet Configuration Histories",
          "description": "Returns a paginated list of pallet configuration history records. Supports optional filtering by pallet_config_id and submenu_id. Ordered by change_date descending.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "pallet_config_id",
              "type": "str",
              "required": false
            },
            {
              "name": "submenu_id",
              "type": "int",
              "required": false
            }
          ],
          "response": {
            "schema_name": "PalletconfighistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "pallet_config_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/history/{entity_id}",
          "summary": "Update Pallet Configuration History",
          "description": "Updates an existing pallet configuration history record. Validates that any referenced entities exist. Returns 404 if the history record does not exist.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "str"
            }
          ],
          "request_body": {
            "schema_name": "PalletconfighistoryUpdate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "pallet_config_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "PalletconfighistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "pallet_config_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/history/{entity_id}",
          "summary": "Delete Pallet Configuration History",
          "description": "Permanently deletes a pallet configuration history record. Returns 404 if the history record does not exist.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "str"
            }
          ],
          "status_code": 200
        }
      ]
    },
    {
      "name": "Driver Licenses",
      "prefix": "/driver-licenses",
      "endpoints": [
        {
          "method": "POST",
          "path": "/",
          "summary": "Create Driver License",
          "description": "Creates a new driver license record with expiration date tracking. Validates that the expiration date is a valid date. Automatically creates a history record for audit trail.",
          "request_body": {
            "schema_name": "DriverlicenseCreate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "expiration_date",
                "type": "date",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "DriverlicenseResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "expiration_date",
                "type": "date",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/",
          "summary": "List Driver Licenses",
          "description": "Returns a paginated list of driver licenses. Supports optional filtering by submenu_id. Excludes soft-deleted records.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "submenu_id",
              "type": "int",
              "required": false
            }
          ],
          "response": {
            "schema_name": "DriverlicenseResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "expiration_date",
                "type": "date",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/{entity_id}",
          "summary": "Get Driver License",
          "description": "Retrieves a single driver license by ID. Returns 404 if the driver license does not exist or has been soft-deleted.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "DriverlicenseResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "expiration_date",
                "type": "date",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/{entity_id}",
          "summary": "Update Driver License",
          "description": "Updates an existing driver license record. Only provided fields are updated. Increments the version counter for optimistic concurrency control. Creates a history record documenting the change.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "str"
            }
          ],
          "request_body": {
            "schema_name": "DriverlicenseUpdate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "expiration_date",
                "type": "date",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "DriverlicenseResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "expiration_date",
                "type": "date",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/{entity_id}",
          "summary": "Delete Driver License",
          "description": "Soft-deletes a driver license by setting the deleted_at timestamp. Creates a history record for audit trail. Returns 404 if the driver license does not exist.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "str"
            }
          ],
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/{entity_id}/details",
          "summary": "Get Driver License Details",
          "description": "Retrieves a driver license with all associated history records pre-loaded. Returns 404 if the driver license does not exist or has been soft-deleted.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "DriverlicenseDetailResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "expiration_date",
                "type": "date",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "history_records",
                "type": "list[DriverlicensehistoryResponse]",
                "required": false
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/history",
          "summary": "Create Driver License History",
          "description": "Creates a new driver license history record. Validates that the referenced driver license exists if driver_license_id is provided. Returns 400 if the driver license does not exist.",
          "request_body": {
            "schema_name": "DriverlicensehistoryCreate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "driver_license_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              }
            ]
          },
          "response": {
            "schema_name": "DriverlicensehistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "driver_license_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/history/list",
          "summary": "List Driver License Histories",
          "description": "Returns a paginated list of driver license history records. Supports optional filtering by driver_license_id and submenu_id. Ordered by change_date descending.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "driver_license_id",
              "type": "str",
              "required": false
            },
            {
              "name": "submenu_id",
              "type": "int",
              "required": false
            }
          ],
          "response": {
            "schema_name": "DriverlicensehistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "driver_license_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/history/{entity_id}",
          "summary": "Get Driver License History",
          "description": "Retrieves a single driver license history record by ID. Returns 404 if the history record does not exist.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "DriverlicensehistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "driver_license_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/history/{entity_id}",
          "summary": "Update Driver License History",
          "description": "Updates an existing driver license history record. Only provided fields are updated. Validates that the referenced driver license exists if driver_license_id is updated.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "str"
            }
          ],
          "request_body": {
            "schema_name": "DriverlicensehistoryUpdate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "driver_license_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "DriverlicensehistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "driver_license_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/history/{entity_id}",
          "summary": "Delete Driver License History",
          "description": "Permanently deletes a driver license history record. Returns 404 if the history record does not exist.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "str"
            }
          ],
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/history/{entity_id}/details",
          "summary": "Get Driver License History Details",
          "description": "Retrieves a driver license history record with the associated driver license and changed_by user pre-loaded. Returns 404 if the history record does not exist.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "DriverlicensehistoryDetailResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "driver_license_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "change_description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "driver_license",
                "type": "DriverlicenseResponse",
                "required": false,
                "nullable": true,
                "fields": [
                  {
                    "name": "submenu_id",
                    "type": "int",
                    "required": true
                  },
                  {
                    "name": "expiration_date",
                    "type": "date",
                    "required": true
                  },
                  {
                    "name": "notes",
                    "type": "str",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "metadata",
                    "type": "str",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "id",
                    "type": "str",
                    "required": true
                  },
                  {
                    "name": "version",
                    "type": "int",
                    "required": true
                  },
                  {
                    "name": "deleted_at",
                    "type": "datetime",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "created_at",
                    "type": "datetime",
                    "required": true
                  },
                  {
                    "name": "updated_at",
                    "type": "datetime",
                    "required": true
                  }
                ]
              },
              {
                "name": "changed_by_user",
                "type": "dict",
                "required": false,
                "nullable": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        }
      ]
    },
    {
      "name": "User Management",
      "prefix": "/user-management",
      "endpoints": [
        {
          "method": "POST",
          "path": "/users",
          "summary": "Create User",
          "description": "Creates a new user record. Validates that username and email are unique. Returns 409 if username or email already exists. Returns 404 if the specified submenu does not exist.",
          "request_body": {
            "schema_name": "UsersCreate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "username",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "email",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "UsersResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "username",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "email",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/users",
          "summary": "List Users",
          "description": "Returns a paginated list of users. Supports optional search filter on username and email fields. Only returns non-deleted users.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "search",
              "type": "str",
              "required": false
            }
          ],
          "response": {
            "schema_name": "UsersResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "username",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "email",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/users/{user_id}",
          "summary": "Get User By ID",
          "description": "Returns a single user by ID. Returns 404 if the user does not exist or has been deleted.",
          "path_params": [
            {
              "name": "user_id",
              "type": "int"
            }
          ],
          "response": {
            "schema_name": "UsersResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "username",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "email",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/users/{user_id}",
          "summary": "Update User",
          "description": "Updates an existing user record. Validates that username and email remain unique. Returns 404 if the user does not exist. Returns 409 if username or email conflicts with another user.",
          "path_params": [
            {
              "name": "user_id",
              "type": "int"
            }
          ],
          "request_body": {
            "schema_name": "UsersUpdate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "username",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "email",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "UsersResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "username",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "email",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/users/{user_id}",
          "summary": "Delete User",
          "description": "Soft-deletes a user by setting the deleted_at timestamp. Returns 404 if the user does not exist.",
          "path_params": [
            {
              "name": "user_id",
              "type": "int"
            }
          ],
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/roles",
          "summary": "Create Role",
          "description": "Creates a new role record and logs the creation in roles history. Validates that role name is unique. Returns 409 if role name already exists. Returns 404 if the specified submenu does not exist.",
          "query_params": [
            {
              "name": "changed_by",
              "type": "int",
              "required": false
            }
          ],
          "request_body": {
            "schema_name": "RolesCreate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "role_name",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "RolesResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "role_name",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/roles",
          "summary": "List Roles",
          "description": "Returns a paginated list of roles. Supports optional search filter on role name. Only returns non-deleted roles.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "search",
              "type": "str",
              "required": false
            }
          ],
          "response": {
            "schema_name": "RolesResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "role_name",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/roles/{role_id}",
          "summary": "Get Role By ID",
          "description": "Returns a single role by ID. Returns 404 if the role does not exist or has been deleted.",
          "path_params": [
            {
              "name": "role_id",
              "type": "int"
            }
          ],
          "response": {
            "schema_name": "RolesResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "role_name",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/roles/{role_id}",
          "summary": "Update Role",
          "description": "Updates an existing role record and logs the change in roles history. Validates that role name remains unique. Returns 404 if the role does not exist. Returns 409 if role name conflicts with another role.",
          "path_params": [
            {
              "name": "role_id",
              "type": "int"
            }
          ],
          "query_params": [
            {
              "name": "changed_by",
              "type": "int",
              "required": false
            }
          ],
          "request_body": {
            "schema_name": "RolesUpdate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "role_name",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "RolesResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "role_name",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/roles/{role_id}",
          "summary": "Delete Role",
          "description": "Soft-deletes a role by setting the deleted_at timestamp and logs the deletion in roles history. Returns 404 if the role does not exist.",
          "path_params": [
            {
              "name": "role_id",
              "type": "int"
            }
          ],
          "query_params": [
            {
              "name": "changed_by",
              "type": "int",
              "required": false
            }
          ],
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/permissions",
          "summary": "Create Permission",
          "description": "Creates a new permission record and logs the creation in permissions history. Validates that permission name is unique. Returns 409 if permission name already exists. Returns 404 if the specified submenu does not exist.",
          "query_params": [
            {
              "name": "changed_by",
              "type": "int",
              "required": false
            }
          ],
          "request_body": {
            "schema_name": "PermissionsCreate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "permission_name",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "PermissionsResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "permission_name",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/permissions",
          "summary": "List Permissions",
          "description": "Returns a paginated list of permissions. Supports optional search filter on permission name. Only returns non-deleted permissions.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "search",
              "type": "str",
              "required": false
            }
          ],
          "response": {
            "schema_name": "PermissionsResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "permission_name",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/permissions/{permission_id}",
          "summary": "Get Permission By ID",
          "description": "Returns a single permission by ID. Returns 404 if the permission does not exist or has been deleted.",
          "path_params": [
            {
              "name": "permission_id",
              "type": "int"
            }
          ],
          "response": {
            "schema_name": "PermissionsResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "permission_name",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/permissions/{permission_id}",
          "summary": "Update Permission",
          "description": "Updates an existing permission record and logs the change in permissions history. Validates that permission name remains unique. Returns 404 if the permission does not exist. Returns 409 if permission name conflicts with another permission.",
          "path_params": [
            {
              "name": "permission_id",
              "type": "int"
            }
          ],
          "query_params": [
            {
              "name": "changed_by",
              "type": "int",
              "required": false
            }
          ],
          "request_body": {
            "schema_name": "PermissionsUpdate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "permission_name",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "PermissionsResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "permission_name",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/permissions/{permission_id}",
          "summary": "Delete Permission",
          "description": "Soft-deletes a permission by setting the deleted_at timestamp and logs the deletion in permissions history. Returns 404 if the permission does not exist.",
          "path_params": [
            {
              "name": "permission_id",
              "type": "int"
            }
          ],
          "query_params": [
            {
              "name": "changed_by",
              "type": "int",
              "required": false
            }
          ],
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/user-preferences",
          "summary": "Create User Preference",
          "description": "Creates a new user preference record. Validates that the specified user and submenu exist. Returns 404 if user or submenu does not exist.",
          "request_body": {
            "schema_name": "UserpreferencesCreate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "user_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "preference_key",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "preference_value",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "UserpreferencesResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "user_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "preference_key",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "preference_value",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/user-preferences",
          "summary": "List User Preferences",
          "description": "Returns a paginated list of user preferences. Supports optional filter by user_id. Only returns non-deleted preferences.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "user_id",
              "type": "int",
              "required": false
            }
          ],
          "response": {
            "schema_name": "UserpreferencesResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "user_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "preference_key",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "preference_value",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/user-preferences/{preference_id}",
          "summary": "Get User Preference By ID",
          "description": "Returns a single user preference by ID. Returns 404 if the preference does not exist or has been deleted.",
          "path_params": [
            {
              "name": "preference_id",
              "type": "int"
            }
          ],
          "response": {
            "schema_name": "UserpreferencesResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "user_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "preference_key",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "preference_value",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/user-preferences/{preference_id}/details",
          "summary": "Get User Preference Details",
          "description": "Returns a user preference with related user information pre-loaded. Returns 404 if the preference does not exist or has been deleted.",
          "path_params": [
            {
              "name": "preference_id",
              "type": "int"
            }
          ],
          "response": {
            "schema_name": "UserpreferencesDetailResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "user_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "preference_key",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "preference_value",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "user",
                "type": "UsersResponse",
                "required": false,
                "nullable": true,
                "fields": [
                  {
                    "name": "submenu_id",
                    "type": "int",
                    "required": true
                  },
                  {
                    "name": "username",
                    "type": "str",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "email",
                    "type": "str",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "notes",
                    "type": "str",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "metadata",
                    "type": "dict",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "id",
                    "type": "int",
                    "required": true
                  },
                  {
                    "name": "version",
                    "type": "int",
                    "required": true
                  },
                  {
                    "name": "deleted_at",
                    "type": "datetime",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "created_at",
                    "type": "datetime",
                    "required": true
                  },
                  {
                    "name": "updated_at",
                    "type": "datetime",
                    "required": true
                  }
                ]
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/user-preferences/{preference_id}",
          "summary": "Update User Preference",
          "description": "Updates an existing user preference record. Validates that the specified user and submenu exist if changed. Returns 404 if preference, user, or submenu does not exist.",
          "path_params": [
            {
              "name": "preference_id",
              "type": "int"
            }
          ],
          "request_body": {
            "schema_name": "UserpreferencesUpdate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "user_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "preference_key",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "preference_value",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "UserpreferencesResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "user_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "preference_key",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "preference_value",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "dict",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/user-preferences/{preference_id}",
          "summary": "Delete User Preference",
          "description": "Soft-deletes a user preference by setting the deleted_at timestamp. Returns 404 if the preference does not exist.",
          "path_params": [
            {
              "name": "preference_id",
              "type": "int"
            }
          ],
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/roles-history",
          "summary": "List Roles History",
          "description": "Returns a paginated list of roles history records. Supports optional filter by roles_id to view history for a specific role.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "roles_id",
              "type": "int",
              "required": false
            }
          ],
          "response": {
            "schema_name": "RoleshistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "roles_id",
                "type": "int",
                "required": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "change_details",
                "type": "dict",
                "required": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "ip_address",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/roles-history/{history_id}",
          "summary": "Get Roles History By ID",
          "description": "Returns a single roles history record by ID. Returns 404 if the history record does not exist.",
          "path_params": [
            {
              "name": "history_id",
              "type": "int"
            }
          ],
          "response": {
            "schema_name": "RoleshistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "roles_id",
                "type": "int",
                "required": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "change_details",
                "type": "dict",
                "required": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "ip_address",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/permissions-history",
          "summary": "List Permissions History",
          "description": "Returns a paginated list of permissions history records. Supports optional filter by permissions_id to view history for a specific permission.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "permissions_id",
              "type": "int",
              "required": false
            }
          ],
          "response": {
            "schema_name": "PermissionshistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "permissions_id",
                "type": "int",
                "required": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "change_details",
                "type": "dict",
                "required": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "ip_address",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/permissions-history/{history_id}",
          "summary": "Get Permissions History By ID",
          "description": "Returns a single permissions history record by ID. Returns 404 if the history record does not exist.",
          "path_params": [
            {
              "name": "history_id",
              "type": "int"
            }
          ],
          "response": {
            "schema_name": "PermissionshistoryResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "permissions_id",
                "type": "int",
                "required": true
              },
              {
                "name": "change_type",
                "type": "str",
                "required": true
              },
              {
                "name": "change_details",
                "type": "dict",
                "required": true
              },
              {
                "name": "changed_by",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "change_date",
                "type": "datetime",
                "required": true
              },
              {
                "name": "ip_address",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        }
      ]
    },
    {
      "name": "Notifications",
      "prefix": "/notifications",
      "endpoints": [
        {
          "method": "POST",
          "path": "/",
          "summary": "Create Notification",
          "description": "Creates a new notification record. Validates that the submenu_id and user_id (if provided) exist. Returns 400 if validation fails.",
          "request_body": {
            "schema_name": "NotificationsCreate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "message",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "user_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "NotificationsResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "message",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "user_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/",
          "summary": "List Notifications",
          "description": "Returns a paginated list of notifications. Supports optional filtering by user_id and submenu_id. Results are ordered by creation date descending.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "user_id",
              "type": "int",
              "required": false
            },
            {
              "name": "submenu_id",
              "type": "int",
              "required": false
            }
          ],
          "response": {
            "schema_name": "NotificationsResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "message",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "user_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/{notification_id}",
          "summary": "Get Notification by ID",
          "description": "Retrieves a single notification by its unique identifier. Returns 404 if the notification does not exist.",
          "path_params": [
            {
              "name": "notification_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "NotificationsResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "message",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "user_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/{notification_id}",
          "summary": "Update Notification",
          "description": "Updates an existing notification. Only provided fields are updated. Validates that submenu_id and user_id (if provided) exist. Returns 404 if notification not found, 400 if validation fails.",
          "path_params": [
            {
              "name": "notification_id",
              "type": "str"
            }
          ],
          "request_body": {
            "schema_name": "NotificationsUpdate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "message",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "user_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "version",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "NotificationsResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "message",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "user_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/{notification_id}",
          "summary": "Delete Notification",
          "description": "Permanently deletes a notification record. Returns 404 if the notification does not exist.",
          "path_params": [
            {
              "name": "notification_id",
              "type": "str"
            }
          ],
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/audit-logs",
          "summary": "Create Audit Log",
          "description": "Creates a new audit log entry recording a user action. Validates that submenu_id exists and that actor_id, action, entity_name, and entity_id are not empty. Returns 400 if validation fails.",
          "request_body": {
            "schema_name": "AuditlogCreate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "actor_id",
                "type": "str",
                "required": true
              },
              {
                "name": "action",
                "type": "str",
                "required": true
              },
              {
                "name": "entity_name",
                "type": "str",
                "required": true
              },
              {
                "name": "entity_id",
                "type": "str",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "AuditlogResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "actor_id",
                "type": "str",
                "required": true
              },
              {
                "name": "action",
                "type": "str",
                "required": true
              },
              {
                "name": "entity_name",
                "type": "str",
                "required": true
              },
              {
                "name": "entity_id",
                "type": "str",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/audit-logs",
          "summary": "List Audit Logs",
          "description": "Returns a paginated list of audit log entries. Supports optional filtering by actor_id, entity_name, entity_id, action, and submenu_id. Results are ordered by creation date descending.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "actor_id",
              "type": "str",
              "required": false
            },
            {
              "name": "entity_name",
              "type": "str",
              "required": false
            },
            {
              "name": "entity_id",
              "type": "str",
              "required": false
            },
            {
              "name": "action",
              "type": "str",
              "required": false
            },
            {
              "name": "submenu_id",
              "type": "int",
              "required": false
            }
          ],
          "response": {
            "schema_name": "AuditlogResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "actor_id",
                "type": "str",
                "required": true
              },
              {
                "name": "action",
                "type": "str",
                "required": true
              },
              {
                "name": "entity_name",
                "type": "str",
                "required": true
              },
              {
                "name": "entity_id",
                "type": "str",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/audit-logs/{auditlog_id}",
          "summary": "Get Audit Log by ID",
          "description": "Retrieves a single audit log entry by its unique identifier. Returns 404 if the audit log does not exist.",
          "path_params": [
            {
              "name": "auditlog_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "AuditlogResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "actor_id",
                "type": "str",
                "required": true
              },
              {
                "name": "action",
                "type": "str",
                "required": true
              },
              {
                "name": "entity_name",
                "type": "str",
                "required": true
              },
              {
                "name": "entity_id",
                "type": "str",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/audit-logs/{auditlog_id}",
          "summary": "Update Audit Log",
          "description": "Updates an existing audit log entry. Only provided fields are updated. Validates that submenu_id exists and that actor_id, action, entity_name, and entity_id (if provided) are not empty. Returns 404 if audit log not found, 400 if validation fails.",
          "path_params": [
            {
              "name": "auditlog_id",
              "type": "str"
            }
          ],
          "request_body": {
            "schema_name": "AuditlogUpdate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "actor_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "action",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "entity_name",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "entity_id",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "version",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "AuditlogResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "actor_id",
                "type": "str",
                "required": true
              },
              {
                "name": "action",
                "type": "str",
                "required": true
              },
              {
                "name": "entity_name",
                "type": "str",
                "required": true
              },
              {
                "name": "entity_id",
                "type": "str",
                "required": true
              },
              {
                "name": "notes",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "metadata",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "version",
                "type": "int",
                "required": true
              },
              {
                "name": "deleted_at",
                "type": "datetime",
                "required": false,
                "nullable": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/audit-logs/{auditlog_id}",
          "summary": "Delete Audit Log",
          "description": "Permanently deletes an audit log entry. Returns 404 if the audit log does not exist.",
          "path_params": [
            {
              "name": "auditlog_id",
              "type": "str"
            }
          ],
          "status_code": 200
        }
      ]
    },
    {
      "name": "Configuration",
      "prefix": "/configuration",
      "endpoints": [
        {
          "method": "POST",
          "path": "/truck-purposes",
          "summary": "Create Truck Purpose Configuration",
          "description": "Creates a new truck purpose configuration entry. Validates that the submenu exists and that the code is unique. Returns 400 if submenu is invalid, 409 if code already exists.",
          "request_body": {
            "schema_name": "CfgtruckpurposeCreate",
            "fields": [
              {
                "name": "cfg_truck_purpose_id",
                "type": "int",
                "required": true
              },
              {
                "name": "code",
                "type": "str",
                "required": true
              },
              {
                "name": "label",
                "type": "str",
                "required": true
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "is_active",
                "type": "bool",
                "required": true
              },
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              }
            ]
          },
          "response": {
            "schema_name": "CfgtruckpurposeResponse",
            "fields": [
              {
                "name": "cfg_truck_purpose_id",
                "type": "int",
                "required": true
              },
              {
                "name": "code",
                "type": "str",
                "required": true
              },
              {
                "name": "label",
                "type": "str",
                "required": true
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "is_active",
                "type": "bool",
                "required": true
              },
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/truck-purposes/{entity_id}",
          "summary": "Get Truck Purpose Configuration",
          "description": "Retrieves a single truck purpose configuration by ID. Returns 404 if not found.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "CfgtruckpurposeResponse",
            "fields": [
              {
                "name": "cfg_truck_purpose_id",
                "type": "int",
                "required": true
              },
              {
                "name": "code",
                "type": "str",
                "required": true
              },
              {
                "name": "label",
                "type": "str",
                "required": true
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "is_active",
                "type": "bool",
                "required": true
              },
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/truck-purposes",
          "summary": "List Truck Purpose Configurations",
          "description": "Returns a paginated list of truck purpose configurations. Supports optional filtering by active status and code search.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "is_active",
              "type": "bool",
              "required": false
            },
            {
              "name": "code",
              "type": "str",
              "required": false
            }
          ],
          "response": {
            "schema_name": "CfgtruckpurposeResponse",
            "fields": [
              {
                "name": "cfg_truck_purpose_id",
                "type": "int",
                "required": true
              },
              {
                "name": "code",
                "type": "str",
                "required": true
              },
              {
                "name": "label",
                "type": "str",
                "required": true
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "is_active",
                "type": "bool",
                "required": true
              },
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/truck-purposes/{entity_id}",
          "summary": "Update Truck Purpose Configuration",
          "description": "Updates an existing truck purpose configuration. Validates submenu existence and code uniqueness. Returns 404 if not found, 400 if submenu invalid, 409 if code conflict.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "str"
            }
          ],
          "request_body": {
            "schema_name": "CfgtruckpurposeUpdate",
            "fields": [
              {
                "name": "cfg_truck_purpose_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "code",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "label",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "is_active",
                "type": "bool",
                "required": false,
                "nullable": true
              },
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "CfgtruckpurposeResponse",
            "fields": [
              {
                "name": "cfg_truck_purpose_id",
                "type": "int",
                "required": true
              },
              {
                "name": "code",
                "type": "str",
                "required": true
              },
              {
                "name": "label",
                "type": "str",
                "required": true
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "is_active",
                "type": "bool",
                "required": true
              },
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/truck-purposes/{entity_id}",
          "summary": "Delete Truck Purpose Configuration",
          "description": "Deletes a truck purpose configuration by ID. Returns 404 if not found.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "str"
            }
          ],
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/asn-statuses",
          "summary": "Create ASN Status Configuration",
          "description": "Creates a new ASN status configuration entry. Validates that the submenu exists and that the code is unique. Returns 400 if submenu is invalid, 409 if code already exists.",
          "request_body": {
            "schema_name": "CfgasnstatusCreate",
            "fields": [
              {
                "name": "cfg_asn_status_id",
                "type": "int",
                "required": true
              },
              {
                "name": "code",
                "type": "str",
                "required": true
              },
              {
                "name": "label",
                "type": "str",
                "required": true
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "is_active",
                "type": "bool",
                "required": true
              },
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              }
            ]
          },
          "response": {
            "schema_name": "CfgasnstatusResponse",
            "fields": [
              {
                "name": "cfg_asn_status_id",
                "type": "int",
                "required": true
              },
              {
                "name": "code",
                "type": "str",
                "required": true
              },
              {
                "name": "label",
                "type": "str",
                "required": true
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "is_active",
                "type": "bool",
                "required": true
              },
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/asn-statuses/{entity_id}",
          "summary": "Get ASN Status Configuration",
          "description": "Retrieves a single ASN status configuration by ID. Returns 404 if not found.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "CfgasnstatusResponse",
            "fields": [
              {
                "name": "cfg_asn_status_id",
                "type": "int",
                "required": true
              },
              {
                "name": "code",
                "type": "str",
                "required": true
              },
              {
                "name": "label",
                "type": "str",
                "required": true
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "is_active",
                "type": "bool",
                "required": true
              },
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/asn-statuses",
          "summary": "List ASN Status Configurations",
          "description": "Returns a paginated list of ASN status configurations. Supports optional filtering by active status and code search.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "is_active",
              "type": "bool",
              "required": false
            },
            {
              "name": "code",
              "type": "str",
              "required": false
            }
          ],
          "response": {
            "schema_name": "CfgasnstatusResponse",
            "fields": [
              {
                "name": "cfg_asn_status_id",
                "type": "int",
                "required": true
              },
              {
                "name": "code",
                "type": "str",
                "required": true
              },
              {
                "name": "label",
                "type": "str",
                "required": true
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "is_active",
                "type": "bool",
                "required": true
              },
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/asn-statuses/{entity_id}",
          "summary": "Update ASN Status Configuration",
          "description": "Updates an existing ASN status configuration. Validates submenu existence and code uniqueness. Returns 404 if not found, 400 if submenu invalid, 409 if code conflict.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "str"
            }
          ],
          "request_body": {
            "schema_name": "CfgasnstatusUpdate",
            "fields": [
              {
                "name": "cfg_asn_status_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "code",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "label",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "is_active",
                "type": "bool",
                "required": false,
                "nullable": true
              },
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "CfgasnstatusResponse",
            "fields": [
              {
                "name": "cfg_asn_status_id",
                "type": "int",
                "required": true
              },
              {
                "name": "code",
                "type": "str",
                "required": true
              },
              {
                "name": "label",
                "type": "str",
                "required": true
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "is_active",
                "type": "bool",
                "required": true
              },
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/asn-statuses/{entity_id}",
          "summary": "Delete ASN Status Configuration",
          "description": "Deletes an ASN status configuration by ID. Returns 404 if not found.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "str"
            }
          ],
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/system-settings",
          "summary": "Create System Setting",
          "description": "Creates a new system setting entry. Validates that the submenu exists and that the setting key is unique. Returns 400 if submenu is invalid, 409 if key already exists.",
          "request_body": {
            "schema_name": "SystemsettingsCreate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "setting_key",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "setting_value",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "is_active",
                "type": "bool",
                "required": true
              }
            ]
          },
          "response": {
            "schema_name": "SystemsettingsResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "setting_key",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "setting_value",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "is_active",
                "type": "bool",
                "required": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/system-settings/{entity_id}",
          "summary": "Get System Setting",
          "description": "Retrieves a single system setting by ID. Returns 404 if not found.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "int"
            }
          ],
          "response": {
            "schema_name": "SystemsettingsResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "setting_key",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "setting_value",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "is_active",
                "type": "bool",
                "required": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/system-settings",
          "summary": "List System Settings",
          "description": "Returns a paginated list of system settings. Supports optional filtering by active status and setting key search.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "is_active",
              "type": "bool",
              "required": false
            },
            {
              "name": "setting_key",
              "type": "str",
              "required": false
            }
          ],
          "response": {
            "schema_name": "SystemsettingsResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "setting_key",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "setting_value",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "is_active",
                "type": "bool",
                "required": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/system-settings/{entity_id}",
          "summary": "Update System Setting",
          "description": "Updates an existing system setting. Validates submenu existence and setting key uniqueness. Returns 404 if not found, 400 if submenu invalid, 409 if key conflict.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "int"
            }
          ],
          "request_body": {
            "schema_name": "SystemsettingsUpdate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "setting_key",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "setting_value",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "is_active",
                "type": "bool",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "SystemsettingsResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": true
              },
              {
                "name": "setting_key",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "setting_value",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "is_active",
                "type": "bool",
                "required": true
              },
              {
                "name": "id",
                "type": "int",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/system-settings/{entity_id}",
          "summary": "Delete System Setting",
          "description": "Deletes a system setting by ID. Returns 404 if not found.",
          "path_params": [
            {
              "name": "entity_id",
              "type": "int"
            }
          ],
          "status_code": 200
        }
      ]
    },
    {
      "name": "Navigation",
      "prefix": "/navigation",
      "endpoints": [
        {
          "method": "POST",
          "path": "/menus",
          "summary": "Create Menu",
          "description": "Creates a new top-level navigation menu. Returns 409 if a menu with the same menu_id already exists.",
          "request_body": {
            "schema_name": "MenuCreate",
            "fields": [
              {
                "name": "menu_id",
                "type": "int",
                "required": false
              },
              {
                "name": "menu_name",
                "type": "str",
                "required": false
              },
              {
                "name": "sequence_number",
                "type": "int",
                "required": false
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "MenuResponse",
            "fields": [
              {
                "name": "menu_id",
                "type": "int",
                "required": false
              },
              {
                "name": "menu_name",
                "type": "str",
                "required": false
              },
              {
                "name": "sequence_number",
                "type": "int",
                "required": false
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/menus/{menu_id}",
          "summary": "Get Menu by ID",
          "description": "Retrieves a single menu by its unique identifier. Returns 404 if the menu does not exist.",
          "path_params": [
            {
              "name": "menu_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "MenuResponse",
            "fields": [
              {
                "name": "menu_id",
                "type": "int",
                "required": false
              },
              {
                "name": "menu_name",
                "type": "str",
                "required": false
              },
              {
                "name": "sequence_number",
                "type": "int",
                "required": false
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/menus",
          "summary": "List Menus",
          "description": "Returns a paginated list of all menus ordered by sequence number. Supports limit and offset for pagination.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            }
          ],
          "response": {
            "schema_name": "MenuResponse",
            "fields": [
              {
                "name": "menu_id",
                "type": "int",
                "required": false
              },
              {
                "name": "menu_name",
                "type": "str",
                "required": false
              },
              {
                "name": "sequence_number",
                "type": "int",
                "required": false
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/menus/{menu_id}",
          "summary": "Update Menu",
          "description": "Updates an existing menu. Only provided fields are updated. Returns 404 if the menu does not exist, 409 if the new menu_id conflicts with another menu.",
          "path_params": [
            {
              "name": "menu_id",
              "type": "str"
            }
          ],
          "request_body": {
            "schema_name": "MenuUpdate",
            "fields": [
              {
                "name": "menu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "menu_name",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "sequence_number",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "MenuResponse",
            "fields": [
              {
                "name": "menu_id",
                "type": "int",
                "required": false
              },
              {
                "name": "menu_name",
                "type": "str",
                "required": false
              },
              {
                "name": "sequence_number",
                "type": "int",
                "required": false
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/menus/{menu_id}",
          "summary": "Delete Menu",
          "description": "Deletes a menu and all its associated submenus. Returns 404 if the menu does not exist.",
          "path_params": [
            {
              "name": "menu_id",
              "type": "str"
            }
          ],
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/menus/{menu_id}/details",
          "summary": "Get Menu Details",
          "description": "Retrieves a menu with all its associated submenus pre-loaded. Returns 404 if the menu does not exist.",
          "path_params": [
            {
              "name": "menu_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "MenuDetailResponse",
            "fields": [
              {
                "name": "menu_id",
                "type": "int",
                "required": false
              },
              {
                "name": "menu_name",
                "type": "str",
                "required": false
              },
              {
                "name": "sequence_number",
                "type": "int",
                "required": false
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "submenus",
                "type": "List[SubmenuDetailResponse]",
                "required": false,
                "is_list": true,
                "item_fields": [
                  {
                    "name": "submenu_id",
                    "type": "int",
                    "required": false
                  },
                  {
                    "name": "submenu_name",
                    "type": "str",
                    "required": false
                  },
                  {
                    "name": "menu_id",
                    "type": "int",
                    "required": false
                  },
                  {
                    "name": "sequence_number",
                    "type": "int",
                    "required": false
                  },
                  {
                    "name": "description",
                    "type": "str",
                    "required": false,
                    "nullable": true
                  },
                  {
                    "name": "id",
                    "type": "str",
                    "required": true
                  },
                  {
                    "name": "created_at",
                    "type": "datetime",
                    "required": true
                  },
                  {
                    "name": "updated_at",
                    "type": "datetime",
                    "required": true
                  }
                ]
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "POST",
          "path": "/submenus",
          "summary": "Create Submenu",
          "description": "Creates a new submenu linked to a parent menu. Returns 400 if the parent menu does not exist, 409 if a submenu with the same submenu_id already exists.",
          "request_body": {
            "schema_name": "SubmenuCreate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false
              },
              {
                "name": "submenu_name",
                "type": "str",
                "required": false
              },
              {
                "name": "menu_id",
                "type": "int",
                "required": false
              },
              {
                "name": "sequence_number",
                "type": "int",
                "required": false
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "SubmenuResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false
              },
              {
                "name": "submenu_name",
                "type": "str",
                "required": false
              },
              {
                "name": "menu_id",
                "type": "int",
                "required": false
              },
              {
                "name": "sequence_number",
                "type": "int",
                "required": false
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 201
        },
        {
          "method": "GET",
          "path": "/submenus/{submenu_id}",
          "summary": "Get Submenu by ID",
          "description": "Retrieves a single submenu by its unique identifier. Returns 404 if the submenu does not exist.",
          "path_params": [
            {
              "name": "submenu_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "SubmenuResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false
              },
              {
                "name": "submenu_name",
                "type": "str",
                "required": false
              },
              {
                "name": "menu_id",
                "type": "int",
                "required": false
              },
              {
                "name": "sequence_number",
                "type": "int",
                "required": false
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/submenus",
          "summary": "List Submenus",
          "description": "Returns a paginated list of submenus ordered by sequence number. Optionally filter by parent menu_id.",
          "query_params": [
            {
              "name": "limit",
              "type": "int",
              "required": false,
              "default": 20
            },
            {
              "name": "offset",
              "type": "int",
              "required": false,
              "default": 0
            },
            {
              "name": "menu_id",
              "type": "int",
              "required": false
            }
          ],
          "response": {
            "schema_name": "SubmenuResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false
              },
              {
                "name": "submenu_name",
                "type": "str",
                "required": false
              },
              {
                "name": "menu_id",
                "type": "int",
                "required": false
              },
              {
                "name": "sequence_number",
                "type": "int",
                "required": false
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": true
          },
          "status_code": 200
        },
        {
          "method": "PUT",
          "path": "/submenus/{submenu_id}",
          "summary": "Update Submenu",
          "description": "Updates an existing submenu. Only provided fields are updated. Returns 404 if the submenu does not exist, 400 if the new parent menu_id does not exist, 409 if the new submenu_id conflicts with another submenu.",
          "path_params": [
            {
              "name": "submenu_id",
              "type": "str"
            }
          ],
          "request_body": {
            "schema_name": "SubmenuUpdate",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "submenu_name",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "menu_id",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "sequence_number",
                "type": "int",
                "required": false,
                "nullable": true
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              }
            ]
          },
          "response": {
            "schema_name": "SubmenuResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false
              },
              {
                "name": "submenu_name",
                "type": "str",
                "required": false
              },
              {
                "name": "menu_id",
                "type": "int",
                "required": false
              },
              {
                "name": "sequence_number",
                "type": "int",
                "required": false
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        },
        {
          "method": "DELETE",
          "path": "/submenus/{submenu_id}",
          "summary": "Delete Submenu",
          "description": "Deletes a submenu. Returns 404 if the submenu does not exist.",
          "path_params": [
            {
              "name": "submenu_id",
              "type": "str"
            }
          ],
          "status_code": 200
        },
        {
          "method": "GET",
          "path": "/submenus/{submenu_id}/details",
          "summary": "Get Submenu Details",
          "description": "Retrieves a submenu with its parent menu pre-loaded. Returns 404 if the submenu does not exist.",
          "path_params": [
            {
              "name": "submenu_id",
              "type": "str"
            }
          ],
          "response": {
            "schema_name": "SubmenuDetailResponse",
            "fields": [
              {
                "name": "submenu_id",
                "type": "int",
                "required": false
              },
              {
                "name": "submenu_name",
                "type": "str",
                "required": false
              },
              {
                "name": "menu_id",
                "type": "int",
                "required": false
              },
              {
                "name": "sequence_number",
                "type": "int",
                "required": false
              },
              {
                "name": "description",
                "type": "str",
                "required": false,
                "nullable": true
              },
              {
                "name": "id",
                "type": "str",
                "required": true
              },
              {
                "name": "created_at",
                "type": "datetime",
                "required": true
              },
              {
                "name": "updated_at",
                "type": "datetime",
                "required": true
              }
            ],
            "is_list": false
          },
          "status_code": 200
        }
      ]
    }
  ],
  "enums": {
    "ChangeType": [
      "CREATE",
      "UPDATE",
      "DELETE"
    ]
  }
}
