{
  "openapi": "3.0.0",
  "info": {
    "title": "educlass-saas-api",
    "version": "1.0.0",
    "description": "EduClass SaaS - Multi-Tenant School ERP Backend (LoopBack 4)",
    "contact": {
      "name": "EduClass"
    }
  },
  "paths": {
    "/api/academic-years/{id}": {
      "patch": {
        "x-controller-name": "AcademicYearController",
        "x-operation-name": "updateById",
        "tags": [
          "AcademicYearController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "AcademicYear PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AcademicYearPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "AcademicYearController.updateById"
      },
      "get": {
        "x-controller-name": "AcademicYearController",
        "x-operation-name": "findById",
        "tags": [
          "AcademicYearController"
        ],
        "responses": {
          "200": {
            "description": "AcademicYear by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AcademicYear"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AcademicYearController.findById"
      },
      "delete": {
        "x-controller-name": "AcademicYearController",
        "x-operation-name": "deleteById",
        "tags": [
          "AcademicYearController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "AcademicYear DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AcademicYearController.deleteById"
      }
    },
    "/api/academic-years": {
      "post": {
        "x-controller-name": "AcademicYearController",
        "x-operation-name": "create",
        "tags": [
          "AcademicYearController"
        ],
        "responses": {
          "200": {
            "description": "Create AcademicYear",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AcademicYear"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewAcademicYear"
              }
            }
          }
        },
        "operationId": "AcademicYearController.create"
      },
      "get": {
        "x-controller-name": "AcademicYearController",
        "x-operation-name": "find",
        "tags": [
          "AcademicYearController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List AcademicYear"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "AcademicYearController.find"
      }
    },
    "/api/admission-types/{id}": {
      "patch": {
        "x-controller-name": "DocumentConfigController",
        "x-operation-name": "updateAdmissionType",
        "tags": [
          "DocumentConfigController"
        ],
        "responses": {
          "200": {
            "description": "Return value of DocumentConfigController.updateAdmissionType"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "DocumentConfigController.updateAdmissionType"
      },
      "delete": {
        "x-controller-name": "DocumentConfigController",
        "x-operation-name": "deleteAdmissionType",
        "tags": [
          "DocumentConfigController"
        ],
        "responses": {
          "200": {
            "description": "Return value of DocumentConfigController.deleteAdmissionType"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "DocumentConfigController.deleteAdmissionType"
      }
    },
    "/api/admission-types": {
      "post": {
        "x-controller-name": "DocumentConfigController",
        "x-operation-name": "createAdmissionType",
        "tags": [
          "DocumentConfigController"
        ],
        "responses": {
          "200": {
            "description": "Return value of DocumentConfigController.createAdmissionType"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdmissionTypeExcluding_id-createdAt-updatedAt-deletedAt-organizationId_"
              }
            }
          }
        },
        "operationId": "DocumentConfigController.createAdmissionType"
      },
      "get": {
        "x-controller-name": "DocumentConfigController",
        "x-operation-name": "listAdmissionTypes",
        "tags": [
          "DocumentConfigController"
        ],
        "responses": {
          "200": {
            "description": "Return value of DocumentConfigController.listAdmissionTypes"
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "DocumentConfigController.listAdmissionTypes"
      }
    },
    "/api/ai/answer-sheet/check": {
      "post": {
        "x-controller-name": "AiController",
        "x-operation-name": "answerSheetCheck",
        "tags": [
          "AiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Check subjective answer sheet"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "multipart/form-data",
          "required": true
        },
        "operationId": "AiController.answerSheetCheck"
      }
    },
    "/api/ai/answer-sheet/{resultId}/review": {
      "patch": {
        "x-controller-name": "AiController",
        "x-operation-name": "reviewAnswer",
        "tags": [
          "AiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Teacher review of AI suggested marks"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "resultId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "finalMarks"
                ],
                "properties": {
                  "finalMarks": {
                    "type": "number"
                  },
                  "remarks": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "AiController.reviewAnswer"
      }
    },
    "/api/ai/attendance-face": {
      "post": {
        "x-controller-name": "AiController",
        "x-operation-name": "attendanceFace",
        "tags": [
          "AiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Classroom face count"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "multipart/form-data with image",
          "required": true
        },
        "operationId": "AiController.attendanceFace"
      }
    },
    "/api/ai/chat": {
      "post": {
        "x-controller-name": "AiController",
        "x-operation-name": "chat",
        "tags": [
          "AiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "EduClass AI assistant chat (dashboard)"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "message"
                ],
                "properties": {
                  "message": {
                    "type": "string"
                  },
                  "context": {
                    "type": "object"
                  }
                }
              }
            }
          }
        },
        "operationId": "AiController.chat"
      }
    },
    "/api/ai/extract-questions": {
      "post": {
        "x-controller-name": "AiController",
        "x-operation-name": "extractQuestions",
        "tags": [
          "AiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Extract questions and persist exam bank"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "multipart/form-data with file",
          "required": true
        },
        "operationId": "AiController.extractQuestions"
      }
    },
    "/api/ai/generate-answer-key": {
      "post": {
        "x-controller-name": "AiController",
        "x-operation-name": "generateAnswerKey",
        "tags": [
          "AiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Generate answer key"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "subject",
                  "chapter"
                ],
                "properties": {
                  "subject": {
                    "type": "string"
                  },
                  "class": {
                    "type": "string"
                  },
                  "chapter": {
                    "type": "string"
                  },
                  "difficulty": {
                    "type": "string"
                  },
                  "numberOfQuestions": {
                    "type": "number"
                  },
                  "includeMcq": {
                    "type": "number"
                  },
                  "includeShort": {
                    "type": "number"
                  },
                  "includeLong": {
                    "type": "number"
                  }
                }
              }
            }
          }
        },
        "operationId": "AiController.generateAnswerKey"
      }
    },
    "/api/ai/generate-question-paper": {
      "post": {
        "x-controller-name": "AiController",
        "x-operation-name": "generatePaper",
        "tags": [
          "AiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Generate question paper"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "subject",
                  "chapter"
                ],
                "properties": {
                  "subject": {
                    "type": "string"
                  },
                  "class": {
                    "type": "string"
                  },
                  "class_name": {
                    "type": "string"
                  },
                  "chapter": {
                    "type": "string"
                  },
                  "difficulty": {
                    "type": "string"
                  },
                  "numberOfQuestions": {
                    "type": "number"
                  },
                  "includeMcq": {
                    "type": "number"
                  },
                  "includeShort": {
                    "type": "number"
                  },
                  "includeLong": {
                    "type": "number"
                  },
                  "persist": {
                    "type": "boolean"
                  },
                  "classId": {
                    "type": "string"
                  },
                  "subjectId": {
                    "type": "string"
                  },
                  "sectionId": {
                    "type": "string"
                  },
                  "academicYearId": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "AiController.generatePaper"
      }
    },
    "/api/ai/generate-summary": {
      "post": {
        "x-controller-name": "AiController",
        "x-operation-name": "generateSummary",
        "tags": [
          "AiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Summarize uploaded notes"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "multipart/form-data with file",
          "required": true
        },
        "operationId": "AiController.generateSummary"
      }
    },
    "/api/ai/grammar-check": {
      "post": {
        "x-controller-name": "AiController",
        "x-operation-name": "grammar",
        "tags": [
          "AiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Grammar check"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "text"
                ],
                "properties": {
                  "text": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "AiController.grammar"
      }
    },
    "/api/ai/health": {
      "get": {
        "x-controller-name": "AiController",
        "x-operation-name": "health",
        "tags": [
          "AiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "AI microservice health (proxied)"
                }
              }
            }
          }
        },
        "operationId": "AiController.health"
      }
    },
    "/api/ai/history/{id}": {
      "get": {
        "x-controller-name": "AiController",
        "x-operation-name": "historyById",
        "tags": [
          "AiController"
        ],
        "responses": {
          "200": {
            "description": "AI job / history by id (progress polling)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AiProcessingHistory"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AiController.historyById"
      }
    },
    "/api/ai/history": {
      "get": {
        "x-controller-name": "AiController",
        "x-operation-name": "history",
        "tags": [
          "AiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "AI processing history"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "operation",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "AiController.history"
      }
    },
    "/api/ai/import-exam": {
      "post": {
        "x-controller-name": "ExamBankController",
        "x-operation-name": "importExam",
        "tags": [
          "ExamBankController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Import edited OCR/exam draft into exam bank"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        },
        "operationId": "ExamBankController.importExam"
      }
    },
    "/api/ai/ocr": {
      "post": {
        "x-controller-name": "AiController",
        "x-operation-name": "ocr",
        "tags": [
          "AiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "OCR via AI service"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "multipart/form-data with file",
          "required": true
        },
        "operationId": "AiController.ocr"
      }
    },
    "/api/ai/omr/evaluate": {
      "post": {
        "x-controller-name": "AiController",
        "x-operation-name": "omrEvaluate",
        "tags": [
          "AiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Evaluate OMR against answer key"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "examId"
                ],
                "properties": {
                  "examId": {
                    "type": "string"
                  },
                  "omrSheetId": {
                    "type": "string"
                  },
                  "studentId": {
                    "type": "string"
                  },
                  "rollNumber": {
                    "type": "string"
                  },
                  "answers": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    }
                  },
                  "answerKey": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "question": {
                          "type": "number"
                        },
                        "answer": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "marksPerQuestion": {
                    "type": "number"
                  },
                  "negativeMarking": {
                    "type": "number"
                  }
                }
              }
            }
          }
        },
        "operationId": "AiController.omrEvaluate"
      }
    },
    "/api/ai/omr/read": {
      "post": {
        "x-controller-name": "AiController",
        "x-operation-name": "omrRead",
        "tags": [
          "AiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "OMR sheet read"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "multipart/form-data with file",
          "required": true
        },
        "operationId": "AiController.omrRead"
      }
    },
    "/api/ai/spell-check": {
      "post": {
        "x-controller-name": "AiController",
        "x-operation-name": "spell",
        "tags": [
          "AiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Spell check"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "text"
                ],
                "properties": {
                  "text": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "AiController.spell"
      }
    },
    "/api/ai/student-performance": {
      "post": {
        "x-controller-name": "AiController",
        "x-operation-name": "studentPerformance",
        "tags": [
          "AiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Student performance analytics"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "studentId"
                ],
                "properties": {
                  "studentId": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "AiController.studentPerformance"
      }
    },
    "/api/ai/translate": {
      "post": {
        "x-controller-name": "AiController",
        "x-operation-name": "translate",
        "tags": [
          "AiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Translate text"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "text",
                  "targetLang"
                ],
                "properties": {
                  "text": {
                    "type": "string"
                  },
                  "sourceLang": {
                    "type": "string"
                  },
                  "targetLang": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "AiController.translate"
      }
    },
    "/api/announcements/{id}": {
      "patch": {
        "x-controller-name": "AnnouncementController",
        "x-operation-name": "updateById",
        "tags": [
          "AnnouncementController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Announcement PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnnouncementPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "AnnouncementController.updateById"
      },
      "get": {
        "x-controller-name": "AnnouncementController",
        "x-operation-name": "findById",
        "tags": [
          "AnnouncementController"
        ],
        "responses": {
          "200": {
            "description": "Announcement by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Announcement"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AnnouncementController.findById"
      },
      "delete": {
        "x-controller-name": "AnnouncementController",
        "x-operation-name": "deleteById",
        "tags": [
          "AnnouncementController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Announcement DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AnnouncementController.deleteById"
      }
    },
    "/api/announcements": {
      "post": {
        "x-controller-name": "AnnouncementController",
        "x-operation-name": "create",
        "tags": [
          "AnnouncementController"
        ],
        "responses": {
          "200": {
            "description": "Create Announcement",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Announcement"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewAnnouncement"
              }
            }
          }
        },
        "operationId": "AnnouncementController.create"
      },
      "get": {
        "x-controller-name": "AnnouncementController",
        "x-operation-name": "find",
        "tags": [
          "AnnouncementController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List Announcement"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "AnnouncementController.find"
      }
    },
    "/api/attendances/bulk": {
      "post": {
        "x-controller-name": "AttendanceBulkController",
        "x-operation-name": "bulk",
        "tags": [
          "AttendanceBulkController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Bulk mark attendance"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "classId",
                  "sectionId",
                  "date",
                  "records"
                ],
                "properties": {
                  "classId": {
                    "type": "string"
                  },
                  "sectionId": {
                    "type": "string"
                  },
                  "academicYearId": {
                    "type": "string"
                  },
                  "date": {
                    "type": "string",
                    "format": "date"
                  },
                  "records": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "studentId",
                        "status"
                      ],
                      "properties": {
                        "studentId": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "PRESENT",
                            "ABSENT",
                            "LATE",
                            "LEAVE",
                            "HALF_DAY"
                          ]
                        },
                        "remarks": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "AttendanceBulkController.bulk"
      }
    },
    "/api/attendances/daily-summary": {
      "get": {
        "x-controller-name": "AttendanceBulkController",
        "x-operation-name": "dailySummary",
        "tags": [
          "AttendanceBulkController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Daily attendance summary"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "date",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "classId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "AttendanceBulkController.dailySummary"
      }
    },
    "/api/attendances/{id}": {
      "patch": {
        "x-controller-name": "AttendanceController",
        "x-operation-name": "updateById",
        "tags": [
          "AttendanceController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Attendance PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AttendancePartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "AttendanceController.updateById"
      },
      "get": {
        "x-controller-name": "AttendanceController",
        "x-operation-name": "findById",
        "tags": [
          "AttendanceController"
        ],
        "responses": {
          "200": {
            "description": "Attendance by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Attendance"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AttendanceController.findById"
      },
      "delete": {
        "x-controller-name": "AttendanceController",
        "x-operation-name": "deleteById",
        "tags": [
          "AttendanceController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Attendance DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AttendanceController.deleteById"
      }
    },
    "/api/attendances": {
      "post": {
        "x-controller-name": "AttendanceController",
        "x-operation-name": "create",
        "tags": [
          "AttendanceController"
        ],
        "responses": {
          "200": {
            "description": "Create Attendance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Attendance"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewAttendance"
              }
            }
          }
        },
        "operationId": "AttendanceController.create"
      },
      "get": {
        "x-controller-name": "AttendanceController",
        "x-operation-name": "find",
        "tags": [
          "AttendanceController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List Attendance"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "AttendanceController.find"
      }
    },
    "/api/audit/activity": {
      "get": {
        "x-controller-name": "AuditController",
        "x-operation-name": "listActivity",
        "tags": [
          "AuditController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Activity log list"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "AuditController.listActivity"
      }
    },
    "/api/audit": {
      "get": {
        "x-controller-name": "AuditController",
        "x-operation-name": "listAudit",
        "tags": [
          "AuditController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Audit log list"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "action",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "AuditController.listAudit"
      }
    },
    "/api/auth/forgot-password": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "forgotPassword",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Send password reset email"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "format": "email"
                  }
                }
              }
            }
          }
        },
        "operationId": "AuthController.forgotPassword"
      }
    },
    "/api/auth/login": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "login",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Login and receive JWT + refresh token"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "email",
                  "password"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "format": "email"
                  },
                  "password": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "AuthController.login"
      }
    },
    "/api/auth/logout": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "logout",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Logout and revoke refresh token"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "refreshToken": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "required": false
        },
        "operationId": "AuthController.logout"
      }
    },
    "/api/auth/me": {
      "get": {
        "x-controller-name": "AuthController",
        "x-operation-name": "me",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Current authenticated profile"
                }
              }
            }
          }
        },
        "operationId": "AuthController.me"
      }
    },
    "/api/auth/refresh": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "refresh",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Refresh access token"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "refreshToken"
                ],
                "properties": {
                  "refreshToken": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "AuthController.refresh"
      }
    },
    "/api/auth/register": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "register",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Organization owner registration"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "organizationName",
                  "schoolName",
                  "ownerName",
                  "email",
                  "password",
                  "confirmPassword"
                ],
                "properties": {
                  "organizationName": {
                    "type": "string"
                  },
                  "schoolName": {
                    "type": "string"
                  },
                  "ownerName": {
                    "type": "string"
                  },
                  "email": {
                    "type": "string",
                    "format": "email"
                  },
                  "phone": {
                    "type": "string"
                  },
                  "password": {
                    "type": "string",
                    "minLength": 8
                  },
                  "confirmPassword": {
                    "type": "string"
                  },
                  "country": {
                    "type": "string"
                  },
                  "state": {
                    "type": "string"
                  },
                  "city": {
                    "type": "string"
                  },
                  "timezone": {
                    "type": "string"
                  },
                  "logo": {
                    "type": "string"
                  },
                  "subscriptionPlan": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "AuthController.register"
      }
    },
    "/api/auth/reset-password": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "resetPassword",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Reset password with token"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "token",
                  "password"
                ],
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "password": {
                    "type": "string",
                    "minLength": 8
                  }
                }
              }
            }
          }
        },
        "operationId": "AuthController.resetPassword"
      }
    },
    "/api/auth/verify-email": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "verifyEmail",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Verify email address"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "token"
                ],
                "properties": {
                  "token": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "AuthController.verifyEmail"
      }
    },
    "/api/billing/config": {
      "get": {
        "x-controller-name": "BillingController",
        "x-operation-name": "config",
        "tags": [
          "BillingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Public Razorpay key + ready flag"
                }
              }
            }
          }
        },
        "operationId": "BillingController.config"
      }
    },
    "/api/billing/coupons/validate": {
      "post": {
        "x-controller-name": "BillingController",
        "x-operation-name": "validateCoupon",
        "tags": [
          "BillingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Validate coupon against plan list price"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "code",
                  "planId",
                  "billingCycle"
                ],
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "planId": {
                    "type": "string"
                  },
                  "billingCycle": {
                    "type": "string",
                    "enum": [
                      "monthly",
                      "yearly"
                    ]
                  }
                }
              }
            }
          }
        },
        "operationId": "BillingController.validateCoupon"
      }
    },
    "/api/billing/entitlement": {
      "get": {
        "x-controller-name": "BillingController",
        "x-operation-name": "entitlement",
        "tags": [
          "BillingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Current plan, trial/expiry, usage meters, access mode"
                }
              }
            }
          }
        },
        "operationId": "BillingController.entitlement"
      }
    },
    "/api/billing/invoices": {
      "get": {
        "x-controller-name": "BillingController",
        "x-operation-name": "listInvoices",
        "tags": [
          "BillingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "SaaS billing invoices for this organization"
                }
              }
            }
          }
        },
        "operationId": "BillingController.listInvoices"
      }
    },
    "/api/billing/orders": {
      "post": {
        "x-controller-name": "BillingController",
        "x-operation-name": "createOrder",
        "tags": [
          "BillingController"
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Create Razorpay checkout order"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "planId",
                  "billingCycle"
                ],
                "properties": {
                  "planId": {
                    "type": "string"
                  },
                  "billingCycle": {
                    "type": "string",
                    "enum": [
                      "monthly",
                      "yearly"
                    ]
                  },
                  "couponCode": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "BillingController.createOrder"
      }
    },
    "/api/billing/plans": {
      "get": {
        "x-controller-name": "BillingController",
        "x-operation-name": "listPlans",
        "tags": [
          "BillingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Active subscription plans for upgrade"
                }
              }
            }
          }
        },
        "operationId": "BillingController.listPlans"
      }
    },
    "/api/billing/quote": {
      "post": {
        "x-controller-name": "BillingController",
        "x-operation-name": "quote",
        "tags": [
          "BillingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Price quote with coupon + GST"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "planId",
                  "billingCycle"
                ],
                "properties": {
                  "planId": {
                    "type": "string"
                  },
                  "billingCycle": {
                    "type": "string",
                    "enum": [
                      "monthly",
                      "yearly"
                    ]
                  },
                  "couponCode": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "BillingController.quote"
      }
    },
    "/api/billing/verify": {
      "post": {
        "x-controller-name": "BillingController",
        "x-operation-name": "verify",
        "tags": [
          "BillingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Verify Razorpay payment and activate subscription"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "paymentOrderId",
                  "razorpayOrderId",
                  "razorpayPaymentId",
                  "razorpaySignature"
                ],
                "properties": {
                  "paymentOrderId": {
                    "type": "string"
                  },
                  "razorpayOrderId": {
                    "type": "string"
                  },
                  "razorpayPaymentId": {
                    "type": "string"
                  },
                  "razorpaySignature": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "BillingController.verify"
      }
    },
    "/api/billing/webhooks/razorpay": {
      "post": {
        "x-controller-name": "BillingController",
        "x-operation-name": "razorpayWebhook",
        "tags": [
          "BillingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Razorpay webhook receiver"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "Raw Razorpay webhook JSON"
        },
        "operationId": "BillingController.razorpayWebhook"
      }
    },
    "/api/book-issues/{id}": {
      "patch": {
        "x-controller-name": "BookIssueController",
        "x-operation-name": "updateById",
        "tags": [
          "BookIssueController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "BookIssue PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BookIssuePartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "BookIssueController.updateById"
      },
      "get": {
        "x-controller-name": "BookIssueController",
        "x-operation-name": "findById",
        "tags": [
          "BookIssueController"
        ],
        "responses": {
          "200": {
            "description": "BookIssue by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BookIssue"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "BookIssueController.findById"
      },
      "delete": {
        "x-controller-name": "BookIssueController",
        "x-operation-name": "deleteById",
        "tags": [
          "BookIssueController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "BookIssue DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "BookIssueController.deleteById"
      }
    },
    "/api/book-issues": {
      "post": {
        "x-controller-name": "BookIssueController",
        "x-operation-name": "create",
        "tags": [
          "BookIssueController"
        ],
        "responses": {
          "200": {
            "description": "Create BookIssue",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BookIssue"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewBookIssue"
              }
            }
          }
        },
        "operationId": "BookIssueController.create"
      },
      "get": {
        "x-controller-name": "BookIssueController",
        "x-operation-name": "find",
        "tags": [
          "BookIssueController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List BookIssue"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "BookIssueController.find"
      }
    },
    "/api/calendar/day": {
      "get": {
        "x-controller-name": "CalendarController",
        "x-operation-name": "day",
        "tags": [
          "CalendarController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Events for a day"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "date",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "CalendarController.day"
      }
    },
    "/api/calendar/month": {
      "get": {
        "x-controller-name": "CalendarController",
        "x-operation-name": "month",
        "tags": [
          "CalendarController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Events for a month"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "month",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "CalendarController.month"
      }
    },
    "/api/calendar/today": {
      "get": {
        "x-controller-name": "CalendarController",
        "x-operation-name": "today",
        "tags": [
          "CalendarController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Events for today"
                }
              }
            }
          }
        },
        "operationId": "CalendarController.today"
      }
    },
    "/api/calendar/upcoming": {
      "get": {
        "x-controller-name": "CalendarController",
        "x-operation-name": "upcoming",
        "tags": [
          "CalendarController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Upcoming events"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "CalendarController.upcoming"
      }
    },
    "/api/calendar/week": {
      "get": {
        "x-controller-name": "CalendarController",
        "x-operation-name": "week",
        "tags": [
          "CalendarController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Events for a week"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "CalendarController.week"
      }
    },
    "/api/calendar/{id}": {
      "patch": {
        "x-controller-name": "CalendarController",
        "x-operation-name": "updateById",
        "tags": [
          "CalendarController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Update calendar event"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "title": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string",
                    "nullable": true
                  },
                  "category": {
                    "type": "string",
                    "nullable": true
                  },
                  "priority": {
                    "type": "string",
                    "nullable": true
                  },
                  "color": {
                    "type": "string",
                    "nullable": true
                  },
                  "startDate": {
                    "type": "string",
                    "nullable": true
                  },
                  "endDate": {
                    "type": "string",
                    "nullable": true
                  },
                  "startTime": {
                    "type": "string",
                    "nullable": true
                  },
                  "endTime": {
                    "type": "string",
                    "nullable": true
                  },
                  "repeatType": {
                    "type": "string",
                    "nullable": true
                  },
                  "reminder": {
                    "type": "string",
                    "nullable": true
                  },
                  "location": {
                    "type": "string",
                    "nullable": true
                  },
                  "meetingLink": {
                    "type": "string",
                    "nullable": true
                  },
                  "teacherId": {
                    "type": "string",
                    "nullable": true
                  },
                  "classId": {
                    "type": "string",
                    "nullable": true
                  },
                  "subjectId": {
                    "type": "string",
                    "nullable": true
                  },
                  "status": {
                    "type": "string",
                    "nullable": true
                  },
                  "notes": {
                    "type": "string",
                    "nullable": true
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "CalendarController.updateById"
      },
      "get": {
        "x-controller-name": "CalendarController",
        "x-operation-name": "findById",
        "tags": [
          "CalendarController"
        ],
        "responses": {
          "200": {
            "description": "Calendar event by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalendarEvent"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "CalendarController.findById"
      },
      "delete": {
        "x-controller-name": "CalendarController",
        "x-operation-name": "deleteById",
        "tags": [
          "CalendarController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Delete calendar event"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "CalendarController.deleteById"
      }
    },
    "/api/calendar": {
      "post": {
        "x-controller-name": "CalendarController",
        "x-operation-name": "create",
        "tags": [
          "CalendarController"
        ],
        "responses": {
          "200": {
            "description": "Create calendar event",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalendarEvent"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "title",
                  "startDate"
                ],
                "additionalProperties": true,
                "properties": {
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255
                  },
                  "description": {
                    "type": "string",
                    "nullable": true
                  },
                  "category": {
                    "type": "string",
                    "nullable": true
                  },
                  "priority": {
                    "type": "string",
                    "nullable": true
                  },
                  "color": {
                    "type": "string",
                    "nullable": true
                  },
                  "startDate": {
                    "type": "string",
                    "minLength": 8
                  },
                  "endDate": {
                    "type": "string",
                    "nullable": true
                  },
                  "startTime": {
                    "type": "string",
                    "nullable": true
                  },
                  "endTime": {
                    "type": "string",
                    "nullable": true
                  },
                  "repeatType": {
                    "type": "string",
                    "nullable": true
                  },
                  "reminder": {
                    "type": "string",
                    "nullable": true
                  },
                  "location": {
                    "type": "string",
                    "nullable": true
                  },
                  "meetingLink": {
                    "type": "string",
                    "nullable": true
                  },
                  "teacherId": {
                    "type": "string",
                    "nullable": true
                  },
                  "classId": {
                    "type": "string",
                    "nullable": true
                  },
                  "subjectId": {
                    "type": "string",
                    "nullable": true
                  },
                  "status": {
                    "type": "string",
                    "nullable": true
                  },
                  "notes": {
                    "type": "string",
                    "nullable": true
                  }
                }
              }
            }
          }
        },
        "operationId": "CalendarController.create"
      },
      "get": {
        "x-controller-name": "CalendarController",
        "x-operation-name": "find",
        "tags": [
          "CalendarController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List calendar events"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "category",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "CalendarController.find"
      }
    },
    "/api/classes/{id}": {
      "patch": {
        "x-controller-name": "SchoolClassController",
        "x-operation-name": "updateById",
        "tags": [
          "SchoolClassController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "SchoolClass PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SchoolClassPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "SchoolClassController.updateById"
      },
      "get": {
        "x-controller-name": "SchoolClassController",
        "x-operation-name": "findById",
        "tags": [
          "SchoolClassController"
        ],
        "responses": {
          "200": {
            "description": "SchoolClass by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchoolClass"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "SchoolClassController.findById"
      },
      "delete": {
        "x-controller-name": "SchoolClassController",
        "x-operation-name": "deleteById",
        "tags": [
          "SchoolClassController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "SchoolClass DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "SchoolClassController.deleteById"
      }
    },
    "/api/classes": {
      "post": {
        "x-controller-name": "SchoolClassController",
        "x-operation-name": "create",
        "tags": [
          "SchoolClassController"
        ],
        "responses": {
          "200": {
            "description": "Create SchoolClass",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchoolClass"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewSchoolClass"
              }
            }
          }
        },
        "operationId": "SchoolClassController.create"
      },
      "get": {
        "x-controller-name": "SchoolClassController",
        "x-operation-name": "find",
        "tags": [
          "SchoolClassController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List SchoolClass"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "SchoolClassController.find"
      }
    },
    "/api/dashboard/summary": {
      "get": {
        "x-controller-name": "DashboardController",
        "x-operation-name": "summary",
        "tags": [
          "DashboardController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Dashboard summary metrics"
                }
              }
            }
          }
        },
        "operationId": "DashboardController.summary"
      }
    },
    "/api/dashboard-notes/{id}/archive": {
      "post": {
        "x-controller-name": "DashboardNotesController",
        "x-operation-name": "archive",
        "tags": [
          "DashboardNotesController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Archive note"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "DashboardNotesController.archive"
      }
    },
    "/api/dashboard-notes/{id}/pin": {
      "post": {
        "x-controller-name": "DashboardNotesController",
        "x-operation-name": "pin",
        "tags": [
          "DashboardNotesController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Toggle pin"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "DashboardNotesController.pin"
      }
    },
    "/api/dashboard-notes/{id}/restore": {
      "post": {
        "x-controller-name": "DashboardNotesController",
        "x-operation-name": "restore",
        "tags": [
          "DashboardNotesController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Restore archived note"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "DashboardNotesController.restore"
      }
    },
    "/api/dashboard-notes/{id}": {
      "patch": {
        "x-controller-name": "DashboardNotesController",
        "x-operation-name": "updateById",
        "tags": [
          "DashboardNotesController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Update / auto-save note"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardNotePartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "DashboardNotesController.updateById"
      },
      "get": {
        "x-controller-name": "DashboardNotesController",
        "x-operation-name": "findById",
        "tags": [
          "DashboardNotesController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Note by id"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "DashboardNotesController.findById"
      },
      "delete": {
        "x-controller-name": "DashboardNotesController",
        "x-operation-name": "deleteById",
        "tags": [
          "DashboardNotesController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Delete note"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "DashboardNotesController.deleteById"
      }
    },
    "/api/dashboard-notes": {
      "post": {
        "x-controller-name": "DashboardNotesController",
        "x-operation-name": "create",
        "tags": [
          "DashboardNotesController"
        ],
        "responses": {
          "200": {
            "description": "Create dashboard note",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DashboardNote"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewDashboardNote"
              }
            }
          }
        },
        "operationId": "DashboardNotesController.create"
      },
      "get": {
        "x-controller-name": "DashboardNotesController",
        "x-operation-name": "find",
        "tags": [
          "DashboardNotesController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List dashboard notes"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "date",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "archived",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "DashboardNotesController.find"
      }
    },
    "/api/document-compliance": {
      "get": {
        "x-controller-name": "StudentDocumentsController",
        "x-operation-name": "compliance",
        "tags": [
          "StudentDocumentsController"
        ],
        "responses": {
          "200": {
            "description": "Return value of StudentDocumentsController.compliance"
          }
        },
        "parameters": [
          {
            "name": "classId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "academicYearId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "admissionTypeId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "studentCategoryId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "moduleContext",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "StudentDocumentsController.compliance"
      }
    },
    "/api/document-reports/expiring": {
      "get": {
        "x-controller-name": "StudentDocumentsController",
        "x-operation-name": "expiringReport",
        "tags": [
          "StudentDocumentsController"
        ],
        "responses": {
          "200": {
            "description": "Return value of StudentDocumentsController.expiringReport"
          }
        },
        "parameters": [
          {
            "name": "withinDays",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "StudentDocumentsController.expiringReport"
      }
    },
    "/api/document-reports/missing": {
      "get": {
        "x-controller-name": "StudentDocumentsController",
        "x-operation-name": "missingReport",
        "tags": [
          "StudentDocumentsController"
        ],
        "responses": {
          "200": {
            "description": "Return value of StudentDocumentsController.missingReport"
          }
        },
        "parameters": [
          {
            "name": "classId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "moduleContext",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "StudentDocumentsController.missingReport"
      }
    },
    "/api/document-requirement-templates/{id}/apply": {
      "post": {
        "x-controller-name": "DocumentConfigController",
        "x-operation-name": "applyTemplate",
        "tags": [
          "DocumentConfigController"
        ],
        "responses": {
          "200": {
            "description": "Return value of DocumentConfigController.applyTemplate"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "academicYearId": {
                    "type": "string",
                    "nullable": true
                  },
                  "admissionTypeId": {
                    "type": "string",
                    "nullable": true
                  },
                  "classId": {
                    "type": "string",
                    "nullable": true
                  },
                  "studentCategoryId": {
                    "type": "string",
                    "nullable": true
                  },
                  "moduleContext": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "DocumentConfigController.applyTemplate"
      }
    },
    "/api/document-requirement-templates/{id}": {
      "get": {
        "x-controller-name": "DocumentConfigController",
        "x-operation-name": "getTemplate",
        "tags": [
          "DocumentConfigController"
        ],
        "responses": {
          "200": {
            "description": "Return value of DocumentConfigController.getTemplate"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "DocumentConfigController.getTemplate"
      }
    },
    "/api/document-requirement-templates": {
      "get": {
        "x-controller-name": "DocumentConfigController",
        "x-operation-name": "listTemplates",
        "tags": [
          "DocumentConfigController"
        ],
        "responses": {
          "200": {
            "description": "Return value of DocumentConfigController.listTemplates"
          }
        },
        "operationId": "DocumentConfigController.listTemplates"
      }
    },
    "/api/document-requirements/resolve": {
      "get": {
        "x-controller-name": "DocumentConfigController",
        "x-operation-name": "resolve",
        "tags": [
          "DocumentConfigController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Applicable requirements for context"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "academicYearId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "admissionTypeId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "classId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "studentCategoryId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "moduleContext",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "DocumentConfigController.resolve"
      }
    },
    "/api/document-requirements/{id}": {
      "patch": {
        "x-controller-name": "DocumentConfigController",
        "x-operation-name": "updateRequirement",
        "tags": [
          "DocumentConfigController"
        ],
        "responses": {
          "200": {
            "description": "Return value of DocumentConfigController.updateRequirement"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "DocumentConfigController.updateRequirement"
      },
      "delete": {
        "x-controller-name": "DocumentConfigController",
        "x-operation-name": "deleteRequirement",
        "tags": [
          "DocumentConfigController"
        ],
        "responses": {
          "200": {
            "description": "Return value of DocumentConfigController.deleteRequirement"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "DocumentConfigController.deleteRequirement"
      }
    },
    "/api/document-requirements": {
      "post": {
        "x-controller-name": "DocumentConfigController",
        "x-operation-name": "createRequirement",
        "tags": [
          "DocumentConfigController"
        ],
        "responses": {
          "200": {
            "description": "Return value of DocumentConfigController.createRequirement"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentRequirementExcluding_id-createdAt-updatedAt-deletedAt-organizationId_"
              }
            }
          }
        },
        "operationId": "DocumentConfigController.createRequirement"
      },
      "get": {
        "x-controller-name": "DocumentConfigController",
        "x-operation-name": "listRequirements",
        "tags": [
          "DocumentConfigController"
        ],
        "responses": {
          "200": {
            "description": "Return value of DocumentConfigController.listRequirements"
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "moduleContext",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "DocumentConfigController.listRequirements"
      }
    },
    "/api/document-types/{id}": {
      "patch": {
        "x-controller-name": "DocumentConfigController",
        "x-operation-name": "updateDocumentType",
        "tags": [
          "DocumentConfigController"
        ],
        "responses": {
          "200": {
            "description": "Return value of DocumentConfigController.updateDocumentType"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "DocumentConfigController.updateDocumentType"
      },
      "get": {
        "x-controller-name": "DocumentConfigController",
        "x-operation-name": "getDocumentType",
        "tags": [
          "DocumentConfigController"
        ],
        "responses": {
          "200": {
            "description": "Return value of DocumentConfigController.getDocumentType"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "DocumentConfigController.getDocumentType"
      },
      "delete": {
        "x-controller-name": "DocumentConfigController",
        "x-operation-name": "deleteDocumentType",
        "tags": [
          "DocumentConfigController"
        ],
        "responses": {
          "200": {
            "description": "Return value of DocumentConfigController.deleteDocumentType"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "DocumentConfigController.deleteDocumentType"
      }
    },
    "/api/document-types": {
      "post": {
        "x-controller-name": "DocumentConfigController",
        "x-operation-name": "createDocumentType",
        "tags": [
          "DocumentConfigController"
        ],
        "responses": {
          "200": {
            "description": "Return value of DocumentConfigController.createDocumentType"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentTypeExcluding_id-createdAt-updatedAt-deletedAt-organizationId_"
              }
            }
          }
        },
        "operationId": "DocumentConfigController.createDocumentType"
      },
      "get": {
        "x-controller-name": "DocumentConfigController",
        "x-operation-name": "listDocumentTypes",
        "tags": [
          "DocumentConfigController"
        ],
        "responses": {
          "200": {
            "description": "Return value of DocumentConfigController.listDocumentTypes"
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "activeOnly",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "operationId": "DocumentConfigController.listDocumentTypes"
      }
    },
    "/api/employees/{id}": {
      "patch": {
        "x-controller-name": "EmployeeController",
        "x-operation-name": "updateById",
        "tags": [
          "EmployeeController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Employee PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeePartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "EmployeeController.updateById"
      },
      "get": {
        "x-controller-name": "EmployeeController",
        "x-operation-name": "findById",
        "tags": [
          "EmployeeController"
        ],
        "responses": {
          "200": {
            "description": "Employee by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Employee"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "EmployeeController.findById"
      },
      "delete": {
        "x-controller-name": "EmployeeController",
        "x-operation-name": "deleteById",
        "tags": [
          "EmployeeController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Employee DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "EmployeeController.deleteById"
      }
    },
    "/api/employees": {
      "post": {
        "x-controller-name": "EmployeeController",
        "x-operation-name": "create",
        "tags": [
          "EmployeeController"
        ],
        "responses": {
          "200": {
            "description": "Create Employee",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Employee"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewEmployee"
              }
            }
          }
        },
        "operationId": "EmployeeController.create"
      },
      "get": {
        "x-controller-name": "EmployeeController",
        "x-operation-name": "find",
        "tags": [
          "EmployeeController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List Employee"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "EmployeeController.find"
      }
    },
    "/api/errors": {
      "get": {
        "x-controller-name": "ErrorLogController",
        "x-operation-name": "list",
        "tags": [
          "ErrorLogController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Recent application errors"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "ErrorLogController.list"
      }
    },
    "/api/exam-bank/stats": {
      "get": {
        "x-controller-name": "ExamBankController",
        "x-operation-name": "stats",
        "tags": [
          "ExamBankController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Exam bank dashboard stats"
                }
              }
            }
          }
        },
        "operationId": "ExamBankController.stats"
      }
    },
    "/api/exam-bank/{id}/duplicate": {
      "post": {
        "x-controller-name": "ExamBankController",
        "x-operation-name": "duplicate",
        "tags": [
          "ExamBankController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Duplicate exam"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ExamBankController.duplicate"
      }
    },
    "/api/exam-bank/{id}/publish": {
      "post": {
        "x-controller-name": "ExamBankController",
        "x-operation-name": "publish",
        "tags": [
          "ExamBankController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Publish exam"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ExamBankController.publish"
      }
    },
    "/api/exam-bank/{id}/results": {
      "get": {
        "x-controller-name": "ExamBankController",
        "x-operation-name": "results",
        "tags": [
          "ExamBankController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Teacher results for an exam"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ExamBankController.results"
      }
    },
    "/api/exam-bank/{id}": {
      "patch": {
        "x-controller-name": "ExamBankController",
        "x-operation-name": "updateMeta",
        "tags": [
          "ExamBankController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Update exam metadata / assign class-section"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ExamBankController.updateMeta"
      },
      "get": {
        "x-controller-name": "ExamBankController",
        "x-operation-name": "getFull",
        "tags": [
          "ExamBankController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Full exam with questions/options/images"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ExamBankController.getFull"
      },
      "delete": {
        "x-controller-name": "ExamBankController",
        "x-operation-name": "remove",
        "tags": [
          "ExamBankController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Soft-delete exam"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ExamBankController.remove"
      }
    },
    "/api/exam-bank": {
      "get": {
        "x-controller-name": "ExamBankController",
        "x-operation-name": "list",
        "tags": [
          "ExamBankController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List exam bank"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subjectId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "classId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "chapter",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "teacherId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fromDate",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "toDate",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "ExamBankController.list"
      }
    },
    "/api/exam-results/{id}": {
      "patch": {
        "x-controller-name": "ExamResultController",
        "x-operation-name": "updateById",
        "tags": [
          "ExamResultController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "ExamResult PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExamResultPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ExamResultController.updateById"
      },
      "get": {
        "x-controller-name": "ExamResultController",
        "x-operation-name": "findById",
        "tags": [
          "ExamResultController"
        ],
        "responses": {
          "200": {
            "description": "ExamResult by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExamResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ExamResultController.findById"
      },
      "delete": {
        "x-controller-name": "ExamResultController",
        "x-operation-name": "deleteById",
        "tags": [
          "ExamResultController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "ExamResult DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ExamResultController.deleteById"
      }
    },
    "/api/exam-results": {
      "post": {
        "x-controller-name": "ExamResultController",
        "x-operation-name": "create",
        "tags": [
          "ExamResultController"
        ],
        "responses": {
          "200": {
            "description": "Create ExamResult",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExamResult"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewExamResult"
              }
            }
          }
        },
        "operationId": "ExamResultController.create"
      },
      "get": {
        "x-controller-name": "ExamResultController",
        "x-operation-name": "find",
        "tags": [
          "ExamResultController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List ExamResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "ExamResultController.find"
      }
    },
    "/api/exams/{id}": {
      "patch": {
        "x-controller-name": "ExamController",
        "x-operation-name": "updateById",
        "tags": [
          "ExamController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Exam PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExamPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ExamController.updateById"
      },
      "get": {
        "x-controller-name": "ExamController",
        "x-operation-name": "findById",
        "tags": [
          "ExamController"
        ],
        "responses": {
          "200": {
            "description": "Exam by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Exam"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ExamController.findById"
      },
      "delete": {
        "x-controller-name": "ExamController",
        "x-operation-name": "deleteById",
        "tags": [
          "ExamController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Exam DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ExamController.deleteById"
      }
    },
    "/api/exams": {
      "post": {
        "x-controller-name": "ExamController",
        "x-operation-name": "create",
        "tags": [
          "ExamController"
        ],
        "responses": {
          "200": {
            "description": "Create Exam",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Exam"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewExam"
              }
            }
          }
        },
        "operationId": "ExamController.create"
      },
      "get": {
        "x-controller-name": "ExamController",
        "x-operation-name": "find",
        "tags": [
          "ExamController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List Exam"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "ExamController.find"
      }
    },
    "/api/fee-categories/{id}": {
      "patch": {
        "x-controller-name": "FeeCategoryController",
        "x-operation-name": "updateById",
        "tags": [
          "FeeCategoryController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "FeeCategory PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FeeCategoryPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "FeeCategoryController.updateById"
      },
      "get": {
        "x-controller-name": "FeeCategoryController",
        "x-operation-name": "findById",
        "tags": [
          "FeeCategoryController"
        ],
        "responses": {
          "200": {
            "description": "FeeCategory by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeeCategory"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "FeeCategoryController.findById"
      },
      "delete": {
        "x-controller-name": "FeeCategoryController",
        "x-operation-name": "deleteById",
        "tags": [
          "FeeCategoryController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "FeeCategory DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "FeeCategoryController.deleteById"
      }
    },
    "/api/fee-categories": {
      "post": {
        "x-controller-name": "FeeCategoryController",
        "x-operation-name": "create",
        "tags": [
          "FeeCategoryController"
        ],
        "responses": {
          "200": {
            "description": "Create FeeCategory",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeeCategory"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewFeeCategory"
              }
            }
          }
        },
        "operationId": "FeeCategoryController.create"
      },
      "get": {
        "x-controller-name": "FeeCategoryController",
        "x-operation-name": "find",
        "tags": [
          "FeeCategoryController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List FeeCategory"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "FeeCategoryController.find"
      }
    },
    "/api/fee-collections/{id}": {
      "patch": {
        "x-controller-name": "FeeCollectionController",
        "x-operation-name": "updateById",
        "tags": [
          "FeeCollectionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "FeeCollection PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FeeCollectionPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "FeeCollectionController.updateById"
      },
      "get": {
        "x-controller-name": "FeeCollectionController",
        "x-operation-name": "findById",
        "tags": [
          "FeeCollectionController"
        ],
        "responses": {
          "200": {
            "description": "FeeCollection by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeeCollection"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "FeeCollectionController.findById"
      },
      "delete": {
        "x-controller-name": "FeeCollectionController",
        "x-operation-name": "deleteById",
        "tags": [
          "FeeCollectionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "FeeCollection DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "FeeCollectionController.deleteById"
      }
    },
    "/api/fee-collections": {
      "post": {
        "x-controller-name": "FeeCollectionController",
        "x-operation-name": "create",
        "tags": [
          "FeeCollectionController"
        ],
        "responses": {
          "200": {
            "description": "Create FeeCollection",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeeCollection"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewFeeCollection"
              }
            }
          }
        },
        "operationId": "FeeCollectionController.create"
      },
      "get": {
        "x-controller-name": "FeeCollectionController",
        "x-operation-name": "find",
        "tags": [
          "FeeCollectionController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List FeeCollection"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "FeeCollectionController.find"
      }
    },
    "/api/fee-structures/{id}": {
      "patch": {
        "x-controller-name": "FeeStructureController",
        "x-operation-name": "updateById",
        "tags": [
          "FeeStructureController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "FeeStructure PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FeeStructurePartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "FeeStructureController.updateById"
      },
      "get": {
        "x-controller-name": "FeeStructureController",
        "x-operation-name": "findById",
        "tags": [
          "FeeStructureController"
        ],
        "responses": {
          "200": {
            "description": "FeeStructure by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeeStructure"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "FeeStructureController.findById"
      },
      "delete": {
        "x-controller-name": "FeeStructureController",
        "x-operation-name": "deleteById",
        "tags": [
          "FeeStructureController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "FeeStructure DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "FeeStructureController.deleteById"
      }
    },
    "/api/fee-structures": {
      "post": {
        "x-controller-name": "FeeStructureController",
        "x-operation-name": "create",
        "tags": [
          "FeeStructureController"
        ],
        "responses": {
          "200": {
            "description": "Create FeeStructure",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeeStructure"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewFeeStructure"
              }
            }
          }
        },
        "operationId": "FeeStructureController.create"
      },
      "get": {
        "x-controller-name": "FeeStructureController",
        "x-operation-name": "find",
        "tags": [
          "FeeStructureController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List FeeStructure"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "FeeStructureController.find"
      }
    },
    "/api/fees/assign": {
      "post": {
        "x-controller-name": "FeeManagementController",
        "x-operation-name": "assign",
        "tags": [
          "FeeManagementController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Assign fee structure to students"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "studentIds",
                  "feeStructureId"
                ],
                "properties": {
                  "studentIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "feeStructureId": {
                    "type": "string"
                  },
                  "discount": {
                    "type": "number"
                  },
                  "scholarship": {
                    "type": "number"
                  },
                  "discountReason": {
                    "type": "string"
                  },
                  "scholarshipReason": {
                    "type": "string"
                  },
                  "equalInstallments": {
                    "type": "number"
                  },
                  "installments": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "amount": {
                          "type": "number"
                        },
                        "dueDate": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "FeeManagementController.assign"
      }
    },
    "/api/fees/checkout": {
      "post": {
        "x-controller-name": "FeeManagementController",
        "x-operation-name": "checkout",
        "tags": [
          "FeeManagementController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Create Razorpay order for student fee"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "invoiceId"
                ],
                "properties": {
                  "invoiceId": {
                    "type": "string"
                  },
                  "installmentId": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "number"
                  }
                }
              }
            }
          }
        },
        "operationId": "FeeManagementController.checkout"
      }
    },
    "/api/fees/dashboard": {
      "get": {
        "x-controller-name": "FeeManagementController",
        "x-operation-name": "dashboard",
        "tags": [
          "FeeManagementController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Fee collection dashboard"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "academicYearId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "FeeManagementController.dashboard"
      }
    },
    "/api/fees/defaulters": {
      "get": {
        "x-controller-name": "FeeManagementController",
        "x-operation-name": "defaulters",
        "tags": [
          "FeeManagementController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Students with overdue / due fees"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "minDays",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "academicYearId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "FeeManagementController.defaulters"
      }
    },
    "/api/fees/installments": {
      "get": {
        "x-controller-name": "FeeManagementController",
        "x-operation-name": "listInstallments",
        "tags": [
          "FeeManagementController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List fee installments"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "studentId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "invoiceId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "FeeManagementController.listInstallments"
      }
    },
    "/api/fees/my-outstanding": {
      "get": {
        "x-controller-name": "FeeManagementController",
        "x-operation-name": "myOutstanding",
        "tags": [
          "FeeManagementController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Parent-scoped outstanding fees"
                }
              }
            }
          }
        },
        "operationId": "FeeManagementController.myOutstanding"
      }
    },
    "/api/fees/payments": {
      "post": {
        "x-controller-name": "FeeManagementController",
        "x-operation-name": "recordPayment",
        "tags": [
          "FeeManagementController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Record offline / manual fee payment"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "invoiceId",
                  "amount"
                ],
                "properties": {
                  "invoiceId": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "number"
                  },
                  "paymentMethod": {
                    "type": "string"
                  },
                  "installmentId": {
                    "type": "string"
                  },
                  "remarks": {
                    "type": "string"
                  },
                  "paymentDate": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "FeeManagementController.recordPayment"
      }
    },
    "/api/fees/receipts/{collectionId}": {
      "get": {
        "x-controller-name": "FeeManagementController",
        "x-operation-name": "receipt",
        "tags": [
          "FeeManagementController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Receipt payload for a fee collection"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "collectionId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "FeeManagementController.receipt"
      }
    },
    "/api/fees/reminder-settings": {
      "post": {
        "x-controller-name": "FeeManagementController",
        "x-operation-name": "saveReminderSettings",
        "tags": [
          "FeeManagementController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Update fee reminder configuration"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "offsetsJson": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  },
                  "channelsJson": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "isActive": {
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "operationId": "FeeManagementController.saveReminderSettings"
      },
      "get": {
        "x-controller-name": "FeeManagementController",
        "x-operation-name": "getReminderSettings",
        "tags": [
          "FeeManagementController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Fee reminder configuration"
                }
              }
            }
          }
        },
        "operationId": "FeeManagementController.getReminderSettings"
      }
    },
    "/api/fees/reminders": {
      "post": {
        "x-controller-name": "FeeManagementController",
        "x-operation-name": "reminders",
        "tags": [
          "FeeManagementController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Send fee reminders to selected students"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "studentIds"
                ],
                "properties": {
                  "studentIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "FeeManagementController.reminders"
      }
    },
    "/api/fees/students/{studentId}/ledger": {
      "get": {
        "x-controller-name": "FeeManagementController",
        "x-operation-name": "ledger",
        "tags": [
          "FeeManagementController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Student fee ledger"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "studentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "FeeManagementController.ledger"
      }
    },
    "/api/fees/verify": {
      "post": {
        "x-controller-name": "FeeManagementController",
        "x-operation-name": "verify",
        "tags": [
          "FeeManagementController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Verify Razorpay student fee payment"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "paymentId",
                  "razorpayOrderId",
                  "razorpayPaymentId",
                  "razorpaySignature"
                ],
                "properties": {
                  "paymentId": {
                    "type": "string"
                  },
                  "razorpayOrderId": {
                    "type": "string"
                  },
                  "razorpayPaymentId": {
                    "type": "string"
                  },
                  "razorpaySignature": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "FeeManagementController.verify"
      }
    },
    "/api/guardians/{id}": {
      "patch": {
        "x-controller-name": "GuardianController",
        "x-operation-name": "updateById",
        "tags": [
          "GuardianController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Guardian PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GuardianPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "GuardianController.updateById"
      },
      "get": {
        "x-controller-name": "GuardianController",
        "x-operation-name": "findById",
        "tags": [
          "GuardianController"
        ],
        "responses": {
          "200": {
            "description": "Guardian by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Guardian"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "GuardianController.findById"
      },
      "delete": {
        "x-controller-name": "GuardianController",
        "x-operation-name": "deleteById",
        "tags": [
          "GuardianController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Guardian DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "GuardianController.deleteById"
      }
    },
    "/api/guardians": {
      "post": {
        "x-controller-name": "GuardianController",
        "x-operation-name": "create",
        "tags": [
          "GuardianController"
        ],
        "responses": {
          "200": {
            "description": "Create Guardian",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Guardian"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewGuardian"
              }
            }
          }
        },
        "operationId": "GuardianController.create"
      },
      "get": {
        "x-controller-name": "GuardianController",
        "x-operation-name": "find",
        "tags": [
          "GuardianController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List Guardian"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "GuardianController.find"
      }
    },
    "/api/health": {
      "get": {
        "x-controller-name": "HealthController",
        "x-operation-name": "health",
        "tags": [
          "HealthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Platform health"
                }
              }
            }
          }
        },
        "operationId": "HealthController.health"
      }
    },
    "/api/homeworks/{id}": {
      "patch": {
        "x-controller-name": "HomeworkController",
        "x-operation-name": "updateById",
        "tags": [
          "HomeworkController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Homework PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HomeworkPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "HomeworkController.updateById"
      },
      "get": {
        "x-controller-name": "HomeworkController",
        "x-operation-name": "findById",
        "tags": [
          "HomeworkController"
        ],
        "responses": {
          "200": {
            "description": "Homework by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Homework"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HomeworkController.findById"
      },
      "delete": {
        "x-controller-name": "HomeworkController",
        "x-operation-name": "deleteById",
        "tags": [
          "HomeworkController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Homework DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HomeworkController.deleteById"
      }
    },
    "/api/homeworks": {
      "post": {
        "x-controller-name": "HomeworkController",
        "x-operation-name": "create",
        "tags": [
          "HomeworkController"
        ],
        "responses": {
          "200": {
            "description": "Create Homework",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Homework"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewHomework"
              }
            }
          }
        },
        "operationId": "HomeworkController.create"
      },
      "get": {
        "x-controller-name": "HomeworkController",
        "x-operation-name": "find",
        "tags": [
          "HomeworkController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List Homework"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "HomeworkController.find"
      }
    },
    "/api/invoices/{id}": {
      "patch": {
        "x-controller-name": "InvoiceController",
        "x-operation-name": "updateById",
        "tags": [
          "InvoiceController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Invoice PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoicePartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "InvoiceController.updateById"
      },
      "get": {
        "x-controller-name": "InvoiceController",
        "x-operation-name": "findById",
        "tags": [
          "InvoiceController"
        ],
        "responses": {
          "200": {
            "description": "Invoice by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "InvoiceController.findById"
      },
      "delete": {
        "x-controller-name": "InvoiceController",
        "x-operation-name": "deleteById",
        "tags": [
          "InvoiceController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Invoice DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "InvoiceController.deleteById"
      }
    },
    "/api/invoices": {
      "post": {
        "x-controller-name": "InvoiceController",
        "x-operation-name": "create",
        "tags": [
          "InvoiceController"
        ],
        "responses": {
          "200": {
            "description": "Create Invoice",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewInvoice"
              }
            }
          }
        },
        "operationId": "InvoiceController.create"
      },
      "get": {
        "x-controller-name": "InvoiceController",
        "x-operation-name": "find",
        "tags": [
          "InvoiceController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List Invoice"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "InvoiceController.find"
      }
    },
    "/api/leaves/{id}": {
      "patch": {
        "x-controller-name": "LeaveController",
        "x-operation-name": "updateById",
        "tags": [
          "LeaveController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Leave PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LeavePartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "LeaveController.updateById"
      },
      "get": {
        "x-controller-name": "LeaveController",
        "x-operation-name": "findById",
        "tags": [
          "LeaveController"
        ],
        "responses": {
          "200": {
            "description": "Leave by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Leave"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "LeaveController.findById"
      },
      "delete": {
        "x-controller-name": "LeaveController",
        "x-operation-name": "deleteById",
        "tags": [
          "LeaveController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Leave DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "LeaveController.deleteById"
      }
    },
    "/api/leaves": {
      "post": {
        "x-controller-name": "LeaveController",
        "x-operation-name": "create",
        "tags": [
          "LeaveController"
        ],
        "responses": {
          "200": {
            "description": "Create Leave",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Leave"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewLeave"
              }
            }
          }
        },
        "operationId": "LeaveController.create"
      },
      "get": {
        "x-controller-name": "LeaveController",
        "x-operation-name": "find",
        "tags": [
          "LeaveController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List Leave"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "LeaveController.find"
      }
    },
    "/api/library-books/{id}": {
      "patch": {
        "x-controller-name": "LibraryBookController",
        "x-operation-name": "updateById",
        "tags": [
          "LibraryBookController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "LibraryBook PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LibraryBookPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "LibraryBookController.updateById"
      },
      "get": {
        "x-controller-name": "LibraryBookController",
        "x-operation-name": "findById",
        "tags": [
          "LibraryBookController"
        ],
        "responses": {
          "200": {
            "description": "LibraryBook by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LibraryBook"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "LibraryBookController.findById"
      },
      "delete": {
        "x-controller-name": "LibraryBookController",
        "x-operation-name": "deleteById",
        "tags": [
          "LibraryBookController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "LibraryBook DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "LibraryBookController.deleteById"
      }
    },
    "/api/library-books": {
      "post": {
        "x-controller-name": "LibraryBookController",
        "x-operation-name": "create",
        "tags": [
          "LibraryBookController"
        ],
        "responses": {
          "200": {
            "description": "Create LibraryBook",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LibraryBook"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewLibraryBook"
              }
            }
          }
        },
        "operationId": "LibraryBookController.create"
      },
      "get": {
        "x-controller-name": "LibraryBookController",
        "x-operation-name": "find",
        "tags": [
          "LibraryBookController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List LibraryBook"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "LibraryBookController.find"
      }
    },
    "/api/master/feature-catalog": {
      "get": {
        "x-controller-name": "MasterPlanController",
        "x-operation-name": "featureCatalog",
        "tags": [
          "MasterPlanController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Feature catalog for plan module toggles"
                }
              }
            }
          }
        },
        "operationId": "MasterPlanController.featureCatalog"
      }
    },
    "/api/master/plans/{id}/duplicate": {
      "post": {
        "x-controller-name": "MasterPlanController",
        "x-operation-name": "duplicatePlan",
        "tags": [
          "MasterPlanController"
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Duplicate plan"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "MasterPlanController.duplicatePlan"
      }
    },
    "/api/master/plans/{id}": {
      "patch": {
        "x-controller-name": "MasterPlanController",
        "x-operation-name": "updatePlan",
        "tags": [
          "MasterPlanController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Update plan"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "MasterPlanController.updatePlan"
      },
      "get": {
        "x-controller-name": "MasterPlanController",
        "x-operation-name": "getPlan",
        "tags": [
          "MasterPlanController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Plan detail"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "MasterPlanController.getPlan"
      },
      "delete": {
        "x-controller-name": "MasterPlanController",
        "x-operation-name": "deletePlan",
        "tags": [
          "MasterPlanController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Soft-delete plan"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "MasterPlanController.deletePlan"
      }
    },
    "/api/master/plans": {
      "post": {
        "x-controller-name": "MasterPlanController",
        "x-operation-name": "createPlan",
        "tags": [
          "MasterPlanController"
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Create plan"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "code"
                ],
                "additionalProperties": true
              }
            }
          }
        },
        "operationId": "MasterPlanController.createPlan"
      },
      "get": {
        "x-controller-name": "MasterPlanController",
        "x-operation-name": "listPlans",
        "tags": [
          "MasterPlanController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "All subscription plans (incl. inactive)"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "MasterPlanController.listPlans"
      }
    },
    "/api/notifications/inbox": {
      "get": {
        "x-controller-name": "NotificationInboxController",
        "x-operation-name": "inbox",
        "tags": [
          "NotificationInboxController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Current user notification inbox"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "unreadOnly",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "category",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "NotificationInboxController.inbox"
      }
    },
    "/api/notifications/preferences": {
      "patch": {
        "x-controller-name": "NotificationInboxController",
        "x-operation-name": "updatePreferences",
        "tags": [
          "NotificationInboxController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Update notification preferences"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "NotificationInboxController.updatePreferences"
      },
      "get": {
        "x-controller-name": "NotificationInboxController",
        "x-operation-name": "getPreferences",
        "tags": [
          "NotificationInboxController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Notification channel preferences"
                }
              }
            }
          }
        },
        "operationId": "NotificationInboxController.getPreferences"
      }
    },
    "/api/notifications/read": {
      "post": {
        "x-controller-name": "NotificationInboxController",
        "x-operation-name": "readByBody",
        "tags": [
          "NotificationInboxController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Mark one notification read by body id"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "NotificationInboxController.readByBody"
      }
    },
    "/api/notifications/read-all": {
      "post": {
        "x-controller-name": "NotificationInboxController",
        "x-operation-name": "readAll",
        "tags": [
          "NotificationInboxController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Mark all notifications read"
                }
              }
            }
          }
        },
        "operationId": "NotificationInboxController.readAll"
      }
    },
    "/api/notifications/unread-count": {
      "get": {
        "x-controller-name": "NotificationInboxController",
        "x-operation-name": "unreadCount",
        "tags": [
          "NotificationInboxController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Unread notification count"
                }
              }
            }
          }
        },
        "operationId": "NotificationInboxController.unreadCount"
      }
    },
    "/api/notifications/{id}/archive": {
      "post": {
        "x-controller-name": "NotificationInboxController",
        "x-operation-name": "archive",
        "tags": [
          "NotificationInboxController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Archive notification"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "NotificationInboxController.archive"
      }
    },
    "/api/notifications/{id}/read": {
      "post": {
        "x-controller-name": "NotificationInboxController",
        "x-operation-name": "readOne",
        "tags": [
          "NotificationInboxController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Mark one notification read"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "NotificationInboxController.readOne"
      }
    },
    "/api/notifications/{id}": {
      "patch": {
        "x-controller-name": "NotificationController",
        "x-operation-name": "updateById",
        "tags": [
          "NotificationController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Notification PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "NotificationController.updateById"
      },
      "get": {
        "x-controller-name": "NotificationController",
        "x-operation-name": "findById",
        "tags": [
          "NotificationController"
        ],
        "responses": {
          "200": {
            "description": "Notification by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Notification"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "NotificationController.findById"
      },
      "delete": {
        "x-controller-name": "NotificationController",
        "x-operation-name": "deleteById",
        "tags": [
          "NotificationController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Notification DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "NotificationController.deleteById"
      }
    },
    "/api/notifications": {
      "post": {
        "x-controller-name": "NotificationController",
        "x-operation-name": "create",
        "tags": [
          "NotificationController"
        ],
        "responses": {
          "200": {
            "description": "Create Notification",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Notification"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewNotification"
              }
            }
          }
        },
        "operationId": "NotificationController.create"
      },
      "get": {
        "x-controller-name": "NotificationController",
        "x-operation-name": "find",
        "tags": [
          "NotificationController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List Notification"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "NotificationController.find"
      }
    },
    "/api/onboarding/complete": {
      "post": {
        "x-controller-name": "OnboardingController",
        "x-operation-name": "finish",
        "tags": [
          "OnboardingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Finish onboarding (Review & Launch)"
                }
              }
            }
          }
        },
        "operationId": "OnboardingController.finish"
      }
    },
    "/api/onboarding/progress": {
      "get": {
        "x-controller-name": "OnboardingController",
        "x-operation-name": "progress",
        "tags": [
          "OnboardingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Org onboarding progress + completion %"
                }
              }
            }
          }
        },
        "operationId": "OnboardingController.progress"
      }
    },
    "/api/onboarding/steps/{key}/complete": {
      "post": {
        "x-controller-name": "OnboardingController",
        "x-operation-name": "complete",
        "tags": [
          "OnboardingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Mark onboarding step complete"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "OnboardingController.complete"
      }
    },
    "/api/onboarding/steps/{key}/reset": {
      "post": {
        "x-controller-name": "OnboardingController",
        "x-operation-name": "reset",
        "tags": [
          "OnboardingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Revisit a completed/skipped step"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "OnboardingController.reset"
      }
    },
    "/api/onboarding/steps/{key}/skip": {
      "post": {
        "x-controller-name": "OnboardingController",
        "x-operation-name": "skip",
        "tags": [
          "OnboardingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Skip optional onboarding step"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "OnboardingController.skip"
      }
    },
    "/api/onboarding/steps": {
      "get": {
        "x-controller-name": "OnboardingController",
        "x-operation-name": "steps",
        "tags": [
          "OnboardingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Onboarding steps catalog"
                }
              }
            }
          }
        },
        "operationId": "OnboardingController.steps"
      }
    },
    "/api/organizations/current": {
      "get": {
        "x-controller-name": "OrganizationController",
        "x-operation-name": "current",
        "tags": [
          "OrganizationController"
        ],
        "responses": {
          "200": {
            "description": "Current organization",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Organization"
                }
              }
            }
          }
        },
        "operationId": "OrganizationController.current"
      }
    },
    "/api/organizations/{id}/activate": {
      "post": {
        "x-controller-name": "OrganizationController",
        "x-operation-name": "activate",
        "tags": [
          "OrganizationController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Activate organization"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "OrganizationController.activate"
      }
    },
    "/api/organizations/{id}/suspend": {
      "post": {
        "x-controller-name": "OrganizationController",
        "x-operation-name": "suspend",
        "tags": [
          "OrganizationController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Suspend organization"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "OrganizationController.suspend"
      }
    },
    "/api/organizations/{id}": {
      "patch": {
        "x-controller-name": "OrganizationController",
        "x-operation-name": "updateById",
        "tags": [
          "OrganizationController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Update organization"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrganizationPartialExcluding_id-createdAt-deletedAt-ownerUserId_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "OrganizationController.updateById"
      },
      "get": {
        "x-controller-name": "OrganizationController",
        "x-operation-name": "findById",
        "tags": [
          "OrganizationController"
        ],
        "responses": {
          "200": {
            "description": "Organization by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Organization"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "OrganizationController.findById"
      },
      "delete": {
        "x-controller-name": "OrganizationController",
        "x-operation-name": "deleteById",
        "tags": [
          "OrganizationController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Soft delete organization (master)"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "OrganizationController.deleteById"
      }
    },
    "/api/organizations": {
      "get": {
        "x-controller-name": "OrganizationController",
        "x-operation-name": "find",
        "tags": [
          "OrganizationController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List organizations (master admin)"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "OrganizationController.find"
      }
    },
    "/api/parents/{id}": {
      "patch": {
        "x-controller-name": "ParentController",
        "x-operation-name": "updateById",
        "tags": [
          "ParentController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Parent PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParentPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ParentController.updateById"
      },
      "get": {
        "x-controller-name": "ParentController",
        "x-operation-name": "findById",
        "tags": [
          "ParentController"
        ],
        "responses": {
          "200": {
            "description": "Parent by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Parent"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ParentController.findById"
      },
      "delete": {
        "x-controller-name": "ParentController",
        "x-operation-name": "deleteById",
        "tags": [
          "ParentController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Parent DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ParentController.deleteById"
      }
    },
    "/api/parents": {
      "post": {
        "x-controller-name": "ParentController",
        "x-operation-name": "create",
        "tags": [
          "ParentController"
        ],
        "responses": {
          "200": {
            "description": "Create Parent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Parent"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewParent"
              }
            }
          }
        },
        "operationId": "ParentController.create"
      },
      "get": {
        "x-controller-name": "ParentController",
        "x-operation-name": "find",
        "tags": [
          "ParentController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List Parent"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "ParentController.find"
      }
    },
    "/api/payments/{id}": {
      "patch": {
        "x-controller-name": "PaymentController",
        "x-operation-name": "updateById",
        "tags": [
          "PaymentController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Payment PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "PaymentController.updateById"
      },
      "get": {
        "x-controller-name": "PaymentController",
        "x-operation-name": "findById",
        "tags": [
          "PaymentController"
        ],
        "responses": {
          "200": {
            "description": "Payment by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Payment"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "PaymentController.findById"
      },
      "delete": {
        "x-controller-name": "PaymentController",
        "x-operation-name": "deleteById",
        "tags": [
          "PaymentController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Payment DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "PaymentController.deleteById"
      }
    },
    "/api/payments": {
      "post": {
        "x-controller-name": "PaymentController",
        "x-operation-name": "create",
        "tags": [
          "PaymentController"
        ],
        "responses": {
          "200": {
            "description": "Create Payment",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Payment"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewPayment"
              }
            }
          }
        },
        "operationId": "PaymentController.create"
      },
      "get": {
        "x-controller-name": "PaymentController",
        "x-operation-name": "find",
        "tags": [
          "PaymentController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List Payment"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "PaymentController.find"
      }
    },
    "/api/permissions/groups": {
      "get": {
        "x-controller-name": "PermissionController",
        "x-operation-name": "groups",
        "tags": [
          "PermissionController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Permission groups"
                }
              }
            }
          }
        },
        "operationId": "PermissionController.groups"
      }
    },
    "/api/permissions": {
      "get": {
        "x-controller-name": "PermissionController",
        "x-operation-name": "find",
        "tags": [
          "PermissionController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List all permissions"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "groupName",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "PermissionController.find"
      }
    },
    "/api/ping": {
      "get": {
        "x-controller-name": "PingController",
        "x-operation-name": "ping",
        "tags": [
          "PingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Health check"
                }
              }
            }
          }
        },
        "operationId": "PingController.ping"
      }
    },
    "/api/public/website/themes": {
      "get": {
        "x-controller-name": "WebsitePublicController",
        "x-operation-name": "themes",
        "tags": [
          "WebsitePublicController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Available theme registry (public)"
                }
              }
            }
          }
        },
        "operationId": "WebsitePublicController.themes"
      }
    },
    "/api/public/website/{slug}/enquiries": {
      "post": {
        "x-controller-name": "WebsitePublicController",
        "x-operation-name": "enquire",
        "tags": [
          "WebsitePublicController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Submit contact or admission enquiry"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "enquiryType": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "mobile": {
                    "type": "string"
                  },
                  "email": {
                    "type": "string"
                  },
                  "subject": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  },
                  "studentName": {
                    "type": "string"
                  },
                  "dateOfBirth": {
                    "type": "string"
                  },
                  "parentName": {
                    "type": "string"
                  },
                  "classApplyingFor": {
                    "type": "string"
                  },
                  "previousSchool": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "WebsitePublicController.enquire"
      }
    },
    "/api/public/website/{slug}": {
      "get": {
        "x-controller-name": "WebsitePublicController",
        "x-operation-name": "site",
        "tags": [
          "WebsitePublicController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Published website bundle for theme renderer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "WebsitePublicController.site"
      }
    },
    "/api/reports/attendance": {
      "get": {
        "x-controller-name": "ReportController",
        "x-operation-name": "attendance",
        "tags": [
          "ReportController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Attendance report"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "classId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "ReportController.attendance"
      }
    },
    "/api/reports/exams": {
      "get": {
        "x-controller-name": "ReportController",
        "x-operation-name": "exams",
        "tags": [
          "ReportController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Exam results report"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "examId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "ReportController.exams"
      }
    },
    "/api/reports/fees": {
      "get": {
        "x-controller-name": "ReportController",
        "x-operation-name": "fees",
        "tags": [
          "ReportController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Fee report"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "ReportController.fees"
      }
    },
    "/api/reports/students": {
      "get": {
        "x-controller-name": "ReportController",
        "x-operation-name": "students",
        "tags": [
          "ReportController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Student report"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "classId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sectionId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "ReportController.students"
      }
    },
    "/api/reports/teachers": {
      "get": {
        "x-controller-name": "ReportController",
        "x-operation-name": "teachers",
        "tags": [
          "ReportController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Teacher report"
                }
              }
            }
          }
        },
        "operationId": "ReportController.teachers"
      }
    },
    "/api/roles/assignable": {
      "get": {
        "x-controller-name": "RoleController",
        "x-operation-name": "assignable",
        "tags": [
          "RoleController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Roles for user-create dropdowns"
                }
              }
            }
          }
        },
        "operationId": "RoleController.assignable"
      }
    },
    "/api/roles/{id}/permissions": {
      "post": {
        "x-controller-name": "RoleController",
        "x-operation-name": "assignPermissions",
        "tags": [
          "RoleController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Assign permissions to role"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "permissionIds"
                ],
                "properties": {
                  "permissionIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RoleController.assignPermissions"
      }
    },
    "/api/roles/{id}": {
      "patch": {
        "x-controller-name": "RoleController",
        "x-operation-name": "updateById",
        "tags": [
          "RoleController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Update role"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RolePartialExcluding_id-organizationId-isSystem-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RoleController.updateById"
      },
      "get": {
        "x-controller-name": "RoleController",
        "x-operation-name": "findById",
        "tags": [
          "RoleController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Role detail with permissions"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoleController.findById"
      },
      "delete": {
        "x-controller-name": "RoleController",
        "x-operation-name": "deleteById",
        "tags": [
          "RoleController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Delete role"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoleController.deleteById"
      }
    },
    "/api/roles": {
      "post": {
        "x-controller-name": "RoleController",
        "x-operation-name": "create",
        "tags": [
          "RoleController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Create role"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "code"
                ],
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "code": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "RoleController.create"
      },
      "get": {
        "x-controller-name": "RoleController",
        "x-operation-name": "find",
        "tags": [
          "RoleController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List roles"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "RoleController.find"
      }
    },
    "/api/routes/{id}": {
      "patch": {
        "x-controller-name": "RouteController",
        "x-operation-name": "updateById",
        "tags": [
          "RouteController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Route PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RoutePartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RouteController.updateById"
      },
      "get": {
        "x-controller-name": "RouteController",
        "x-operation-name": "findById",
        "tags": [
          "RouteController"
        ],
        "responses": {
          "200": {
            "description": "Route by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Route"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RouteController.findById"
      },
      "delete": {
        "x-controller-name": "RouteController",
        "x-operation-name": "deleteById",
        "tags": [
          "RouteController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Route DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RouteController.deleteById"
      }
    },
    "/api/routes": {
      "post": {
        "x-controller-name": "RouteController",
        "x-operation-name": "create",
        "tags": [
          "RouteController"
        ],
        "responses": {
          "200": {
            "description": "Create Route",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Route"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewRoute"
              }
            }
          }
        },
        "operationId": "RouteController.create"
      },
      "get": {
        "x-controller-name": "RouteController",
        "x-operation-name": "find",
        "tags": [
          "RouteController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List Route"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "RouteController.find"
      }
    },
    "/api/sections/{id}": {
      "patch": {
        "x-controller-name": "SectionController",
        "x-operation-name": "updateById",
        "tags": [
          "SectionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Section PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SectionPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "SectionController.updateById"
      },
      "get": {
        "x-controller-name": "SectionController",
        "x-operation-name": "findById",
        "tags": [
          "SectionController"
        ],
        "responses": {
          "200": {
            "description": "Section by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Section"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "SectionController.findById"
      },
      "delete": {
        "x-controller-name": "SectionController",
        "x-operation-name": "deleteById",
        "tags": [
          "SectionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Section DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "SectionController.deleteById"
      }
    },
    "/api/sections": {
      "post": {
        "x-controller-name": "SectionController",
        "x-operation-name": "create",
        "tags": [
          "SectionController"
        ],
        "responses": {
          "200": {
            "description": "Create Section",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Section"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewSection"
              }
            }
          }
        },
        "operationId": "SectionController.create"
      },
      "get": {
        "x-controller-name": "SectionController",
        "x-operation-name": "find",
        "tags": [
          "SectionController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List Section"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "SectionController.find"
      }
    },
    "/api/security/login-history": {
      "get": {
        "x-controller-name": "SecurityController",
        "x-operation-name": "loginHistory",
        "tags": [
          "SecurityController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Security events for current user"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "SecurityController.loginHistory"
      }
    },
    "/api/security/logout-all": {
      "post": {
        "x-controller-name": "SecurityController",
        "x-operation-name": "logoutAll",
        "tags": [
          "SecurityController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Revoke all refresh tokens for user"
                }
              }
            }
          }
        },
        "operationId": "SecurityController.logoutAll"
      }
    },
    "/api/security/sessions/{id}": {
      "delete": {
        "x-controller-name": "SecurityController",
        "x-operation-name": "revokeSession",
        "tags": [
          "SecurityController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Revoke one session"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "SecurityController.revokeSession"
      }
    },
    "/api/security/sessions": {
      "get": {
        "x-controller-name": "SecurityController",
        "x-operation-name": "sessions",
        "tags": [
          "SecurityController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Active refresh sessions for current user"
                }
              }
            }
          }
        },
        "operationId": "SecurityController.sessions"
      }
    },
    "/api/settings/{id}": {
      "patch": {
        "x-controller-name": "OrganizationSettingController",
        "x-operation-name": "updateById",
        "tags": [
          "OrganizationSettingController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "OrganizationSetting PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrganizationSettingPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "OrganizationSettingController.updateById"
      },
      "get": {
        "x-controller-name": "OrganizationSettingController",
        "x-operation-name": "findById",
        "tags": [
          "OrganizationSettingController"
        ],
        "responses": {
          "200": {
            "description": "OrganizationSetting by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationSetting"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "OrganizationSettingController.findById"
      },
      "delete": {
        "x-controller-name": "OrganizationSettingController",
        "x-operation-name": "deleteById",
        "tags": [
          "OrganizationSettingController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "OrganizationSetting DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "OrganizationSettingController.deleteById"
      }
    },
    "/api/settings": {
      "post": {
        "x-controller-name": "OrganizationSettingController",
        "x-operation-name": "create",
        "tags": [
          "OrganizationSettingController"
        ],
        "responses": {
          "200": {
            "description": "Create OrganizationSetting",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationSetting"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewOrganizationSetting"
              }
            }
          }
        },
        "operationId": "OrganizationSettingController.create"
      },
      "get": {
        "x-controller-name": "OrganizationSettingController",
        "x-operation-name": "find",
        "tags": [
          "OrganizationSettingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List OrganizationSetting"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "OrganizationSettingController.find"
      }
    },
    "/api/student-categories/{id}": {
      "patch": {
        "x-controller-name": "DocumentConfigController",
        "x-operation-name": "updateCategory",
        "tags": [
          "DocumentConfigController"
        ],
        "responses": {
          "200": {
            "description": "Return value of DocumentConfigController.updateCategory"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "DocumentConfigController.updateCategory"
      },
      "delete": {
        "x-controller-name": "DocumentConfigController",
        "x-operation-name": "deleteCategory",
        "tags": [
          "DocumentConfigController"
        ],
        "responses": {
          "200": {
            "description": "Return value of DocumentConfigController.deleteCategory"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "DocumentConfigController.deleteCategory"
      }
    },
    "/api/student-categories": {
      "post": {
        "x-controller-name": "DocumentConfigController",
        "x-operation-name": "createCategory",
        "tags": [
          "DocumentConfigController"
        ],
        "responses": {
          "200": {
            "description": "Return value of DocumentConfigController.createCategory"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StudentCategoryExcluding_id-createdAt-updatedAt-deletedAt-organizationId_"
              }
            }
          }
        },
        "operationId": "DocumentConfigController.createCategory"
      },
      "get": {
        "x-controller-name": "DocumentConfigController",
        "x-operation-name": "listCategories",
        "tags": [
          "DocumentConfigController"
        ],
        "responses": {
          "200": {
            "description": "Return value of DocumentConfigController.listCategories"
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "DocumentConfigController.listCategories"
      }
    },
    "/api/student-exams/attempts/{attemptId}/answer": {
      "post": {
        "x-controller-name": "ExamAttemptController",
        "x-operation-name": "saveAnswer",
        "tags": [
          "ExamAttemptController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Auto-save student answer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "attemptId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "questionId"
                ],
                "properties": {
                  "questionId": {
                    "type": "string"
                  },
                  "selectedOptionLabel": {
                    "type": "string",
                    "nullable": true
                  },
                  "selectedOptionText": {
                    "type": "string",
                    "nullable": true
                  },
                  "subjectiveAnswer": {
                    "type": "string",
                    "nullable": true
                  },
                  "isMarkedForReview": {
                    "type": "boolean"
                  },
                  "timeTakenSeconds": {
                    "type": "number"
                  },
                  "clear": {
                    "type": "boolean"
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ExamAttemptController.saveAnswer"
      }
    },
    "/api/student-exams/attempts/{attemptId}/result": {
      "get": {
        "x-controller-name": "ExamAttemptController",
        "x-operation-name": "result",
        "tags": [
          "ExamAttemptController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Attempt result with answer key"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "attemptId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ExamAttemptController.result"
      }
    },
    "/api/student-exams/attempts/{attemptId}/submit": {
      "post": {
        "x-controller-name": "ExamAttemptController",
        "x-operation-name": "submit",
        "tags": [
          "ExamAttemptController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Submit exam and generate result"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "attemptId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "auto": {
                    "type": "boolean"
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ExamAttemptController.submit"
      }
    },
    "/api/student-exams/attempts/{attemptId}": {
      "get": {
        "x-controller-name": "ExamAttemptController",
        "x-operation-name": "getAttempt",
        "tags": [
          "ExamAttemptController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Get attempt bundle"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "attemptId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ExamAttemptController.getAttempt"
      }
    },
    "/api/student-exams/{examId}/start": {
      "post": {
        "x-controller-name": "ExamAttemptController",
        "x-operation-name": "start",
        "tags": [
          "ExamAttemptController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Start or resume exam attempt"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "examId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ExamAttemptController.start"
      }
    },
    "/api/student-exams": {
      "get": {
        "x-controller-name": "ExamAttemptController",
        "x-operation-name": "listMine",
        "tags": [
          "ExamAttemptController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Published exams for logged-in student"
                }
              }
            }
          }
        },
        "operationId": "ExamAttemptController.listMine"
      }
    },
    "/api/students/{studentId}/documents/remind": {
      "post": {
        "x-controller-name": "StudentDocumentsController",
        "x-operation-name": "remind",
        "tags": [
          "StudentDocumentsController"
        ],
        "responses": {
          "200": {
            "description": "Return value of StudentDocumentsController.remind"
          }
        },
        "parameters": [
          {
            "name": "studentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "moduleContext",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "StudentDocumentsController.remind"
      }
    },
    "/api/students/{studentId}/documents/status": {
      "get": {
        "x-controller-name": "StudentDocumentsController",
        "x-operation-name": "status",
        "tags": [
          "StudentDocumentsController"
        ],
        "responses": {
          "200": {
            "description": "Return value of StudentDocumentsController.status"
          }
        },
        "parameters": [
          {
            "name": "studentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "moduleContext",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "StudentDocumentsController.status"
      }
    },
    "/api/students/{studentId}/documents/upload": {
      "post": {
        "x-controller-name": "StudentDocumentsController",
        "x-operation-name": "upload",
        "tags": [
          "StudentDocumentsController"
        ],
        "responses": {
          "200": {
            "description": "Return value of StudentDocumentsController.upload"
          }
        },
        "parameters": [
          {
            "name": "studentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "StudentDocumentsController.upload"
      }
    },
    "/api/students/{studentId}/documents/{documentId}/reject": {
      "post": {
        "x-controller-name": "StudentDocumentsController",
        "x-operation-name": "reject",
        "tags": [
          "StudentDocumentsController"
        ],
        "responses": {
          "200": {
            "description": "Return value of StudentDocumentsController.reject"
          }
        },
        "parameters": [
          {
            "name": "studentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "documentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "reason"
                ],
                "properties": {
                  "reason": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "x-parameter-index": 2
        },
        "operationId": "StudentDocumentsController.reject"
      }
    },
    "/api/students/{studentId}/documents/{documentId}/verify": {
      "post": {
        "x-controller-name": "StudentDocumentsController",
        "x-operation-name": "verify",
        "tags": [
          "StudentDocumentsController"
        ],
        "responses": {
          "200": {
            "description": "Return value of StudentDocumentsController.verify"
          }
        },
        "parameters": [
          {
            "name": "studentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "documentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "StudentDocumentsController.verify"
      }
    },
    "/api/students/{studentId}/documents/{documentId}": {
      "delete": {
        "x-controller-name": "StudentDocumentsController",
        "x-operation-name": "softDelete",
        "tags": [
          "StudentDocumentsController"
        ],
        "responses": {
          "200": {
            "description": "Return value of StudentDocumentsController.softDelete"
          }
        },
        "parameters": [
          {
            "name": "studentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "documentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "StudentDocumentsController.softDelete"
      }
    },
    "/api/students/{studentId}/documents": {
      "get": {
        "x-controller-name": "StudentDocumentsController",
        "x-operation-name": "list",
        "tags": [
          "StudentDocumentsController"
        ],
        "responses": {
          "200": {
            "description": "Return value of StudentDocumentsController.list"
          }
        },
        "parameters": [
          {
            "name": "studentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "moduleContext",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "StudentDocumentsController.list"
      }
    },
    "/api/students/{id}": {
      "patch": {
        "x-controller-name": "StudentController",
        "x-operation-name": "updateById",
        "tags": [
          "StudentController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Student PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StudentPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "StudentController.updateById"
      },
      "get": {
        "x-controller-name": "StudentController",
        "x-operation-name": "findById",
        "tags": [
          "StudentController"
        ],
        "responses": {
          "200": {
            "description": "Student by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Student"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "StudentController.findById"
      },
      "delete": {
        "x-controller-name": "StudentController",
        "x-operation-name": "deleteById",
        "tags": [
          "StudentController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Student DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "StudentController.deleteById"
      }
    },
    "/api/students": {
      "post": {
        "x-controller-name": "StudentController",
        "x-operation-name": "create",
        "tags": [
          "StudentController"
        ],
        "responses": {
          "200": {
            "description": "Create Student",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Student"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewStudent"
              }
            }
          }
        },
        "operationId": "StudentController.create"
      },
      "get": {
        "x-controller-name": "StudentController",
        "x-operation-name": "find",
        "tags": [
          "StudentController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List Student"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "classId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sectionId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "StudentController.find"
      }
    },
    "/api/subjects/{id}": {
      "patch": {
        "x-controller-name": "SubjectController",
        "x-operation-name": "updateById",
        "tags": [
          "SubjectController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Subject PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubjectPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "SubjectController.updateById"
      },
      "get": {
        "x-controller-name": "SubjectController",
        "x-operation-name": "findById",
        "tags": [
          "SubjectController"
        ],
        "responses": {
          "200": {
            "description": "Subject by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Subject"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "SubjectController.findById"
      },
      "delete": {
        "x-controller-name": "SubjectController",
        "x-operation-name": "deleteById",
        "tags": [
          "SubjectController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Subject DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "SubjectController.deleteById"
      }
    },
    "/api/subjects": {
      "post": {
        "x-controller-name": "SubjectController",
        "x-operation-name": "create",
        "tags": [
          "SubjectController"
        ],
        "responses": {
          "200": {
            "description": "Create Subject",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Subject"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewSubject"
              }
            }
          }
        },
        "operationId": "SubjectController.create"
      },
      "get": {
        "x-controller-name": "SubjectController",
        "x-operation-name": "find",
        "tags": [
          "SubjectController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List Subject"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "SubjectController.find"
      }
    },
    "/api/subscription-plans/{id}": {
      "patch": {
        "x-controller-name": "SubscriptionPlanController",
        "x-operation-name": "updateById",
        "tags": [
          "SubscriptionPlanController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "SubscriptionPlan PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionPlanPartialExcluding_id-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "SubscriptionPlanController.updateById"
      },
      "get": {
        "x-controller-name": "SubscriptionPlanController",
        "x-operation-name": "findById",
        "tags": [
          "SubscriptionPlanController"
        ],
        "responses": {
          "200": {
            "description": "SubscriptionPlan by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionPlan"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "SubscriptionPlanController.findById"
      },
      "delete": {
        "x-controller-name": "SubscriptionPlanController",
        "x-operation-name": "deleteById",
        "tags": [
          "SubscriptionPlanController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "SubscriptionPlan DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "SubscriptionPlanController.deleteById"
      }
    },
    "/api/subscription-plans": {
      "post": {
        "x-controller-name": "SubscriptionPlanController",
        "x-operation-name": "create",
        "tags": [
          "SubscriptionPlanController"
        ],
        "responses": {
          "200": {
            "description": "Create SubscriptionPlan",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionPlan"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewSubscriptionPlan"
              }
            }
          }
        },
        "operationId": "SubscriptionPlanController.create"
      },
      "get": {
        "x-controller-name": "SubscriptionPlanController",
        "x-operation-name": "find",
        "tags": [
          "SubscriptionPlanController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List SubscriptionPlan"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "SubscriptionPlanController.find"
      }
    },
    "/api/subscriptions/{id}": {
      "patch": {
        "x-controller-name": "SubscriptionController",
        "x-operation-name": "updateById",
        "tags": [
          "SubscriptionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Subscription PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "SubscriptionController.updateById"
      },
      "get": {
        "x-controller-name": "SubscriptionController",
        "x-operation-name": "findById",
        "tags": [
          "SubscriptionController"
        ],
        "responses": {
          "200": {
            "description": "Subscription by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Subscription"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "SubscriptionController.findById"
      },
      "delete": {
        "x-controller-name": "SubscriptionController",
        "x-operation-name": "deleteById",
        "tags": [
          "SubscriptionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Subscription DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "SubscriptionController.deleteById"
      }
    },
    "/api/subscriptions": {
      "post": {
        "x-controller-name": "SubscriptionController",
        "x-operation-name": "create",
        "tags": [
          "SubscriptionController"
        ],
        "responses": {
          "200": {
            "description": "Create Subscription",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Subscription"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewSubscription"
              }
            }
          }
        },
        "operationId": "SubscriptionController.create"
      },
      "get": {
        "x-controller-name": "SubscriptionController",
        "x-operation-name": "find",
        "tags": [
          "SubscriptionController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List Subscription"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "SubscriptionController.find"
      }
    },
    "/api/system/status": {
      "get": {
        "x-controller-name": "HealthController",
        "x-operation-name": "systemStatus",
        "tags": [
          "HealthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Ops alias for /api/health"
                }
              }
            }
          }
        },
        "operationId": "HealthController.systemStatus"
      }
    },
    "/api/teachers/{teacherId}/documents/upload": {
      "post": {
        "x-controller-name": "TeacherDocumentsController",
        "x-operation-name": "upload",
        "tags": [
          "TeacherDocumentsController"
        ],
        "responses": {
          "200": {
            "description": "Return value of TeacherDocumentsController.upload"
          }
        },
        "parameters": [
          {
            "name": "teacherId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "TeacherDocumentsController.upload"
      }
    },
    "/api/teachers/{teacherId}/documents": {
      "get": {
        "x-controller-name": "TeacherDocumentsController",
        "x-operation-name": "list",
        "tags": [
          "TeacherDocumentsController"
        ],
        "responses": {
          "200": {
            "description": "Return value of TeacherDocumentsController.list"
          }
        },
        "parameters": [
          {
            "name": "teacherId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "TeacherDocumentsController.list"
      }
    },
    "/api/teachers/{id}": {
      "patch": {
        "x-controller-name": "TeacherController",
        "x-operation-name": "updateById",
        "tags": [
          "TeacherController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Teacher PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TeacherPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "TeacherController.updateById"
      },
      "get": {
        "x-controller-name": "TeacherController",
        "x-operation-name": "findById",
        "tags": [
          "TeacherController"
        ],
        "responses": {
          "200": {
            "description": "Teacher by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Teacher"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "TeacherController.findById"
      },
      "delete": {
        "x-controller-name": "TeacherController",
        "x-operation-name": "deleteById",
        "tags": [
          "TeacherController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Teacher DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "TeacherController.deleteById"
      }
    },
    "/api/teachers": {
      "post": {
        "x-controller-name": "TeacherController",
        "x-operation-name": "create",
        "tags": [
          "TeacherController"
        ],
        "responses": {
          "200": {
            "description": "Create Teacher",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Teacher"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewTeacher"
              }
            }
          }
        },
        "operationId": "TeacherController.create"
      },
      "get": {
        "x-controller-name": "TeacherController",
        "x-operation-name": "find",
        "tags": [
          "TeacherController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List Teacher"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "TeacherController.find"
      }
    },
    "/api/users/me/change-password": {
      "post": {
        "x-controller-name": "UserController",
        "x-operation-name": "changeOwnPassword",
        "tags": [
          "UserController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Authenticated user changes own password"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "password"
                ],
                "properties": {
                  "currentPassword": {
                    "type": "string"
                  },
                  "password": {
                    "type": "string",
                    "minLength": 8
                  }
                }
              }
            }
          }
        },
        "operationId": "UserController.changeOwnPassword"
      }
    },
    "/api/users/{id}/reset-password": {
      "patch": {
        "x-controller-name": "UserController",
        "x-operation-name": "resetPasswordByAdmin",
        "tags": [
          "UserController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Admin reset user password"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "password"
                ],
                "properties": {
                  "password": {
                    "type": "string",
                    "minLength": 8
                  },
                  "forceChangePassword": {
                    "type": "boolean"
                  },
                  "sendEmail": {
                    "type": "boolean"
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "UserController.resetPasswordByAdmin"
      }
    },
    "/api/users/{id}": {
      "patch": {
        "x-controller-name": "UserController",
        "x-operation-name": "updateById",
        "tags": [
          "UserController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Update user"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserPartialExcluding_id-organizationId-password-createdAt-deletedAt-emailVerificationToken-passwordResetToken-passwordResetExpires-refreshTokenHash_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "UserController.updateById"
      },
      "get": {
        "x-controller-name": "UserController",
        "x-operation-name": "findById",
        "tags": [
          "UserController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "User by id"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UserController.findById"
      },
      "delete": {
        "x-controller-name": "UserController",
        "x-operation-name": "deleteById",
        "tags": [
          "UserController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Soft delete user"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UserController.deleteById"
      }
    },
    "/api/users": {
      "post": {
        "x-controller-name": "UserController",
        "x-operation-name": "create",
        "tags": [
          "UserController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Create user (admin invite)"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "firstName",
                  "lastName",
                  "email",
                  "roleId",
                  "password"
                ],
                "properties": {
                  "firstName": {
                    "type": "string"
                  },
                  "lastName": {
                    "type": "string"
                  },
                  "email": {
                    "type": "string",
                    "format": "email"
                  },
                  "mobile": {
                    "type": "string"
                  },
                  "roleId": {
                    "type": "string"
                  },
                  "password": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string"
                  },
                  "profileImage": {
                    "type": "string"
                  },
                  "sendWelcomeEmail": {
                    "type": "boolean"
                  },
                  "forceChangePassword": {
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "operationId": "UserController.create"
      },
      "get": {
        "x-controller-name": "UserController",
        "x-operation-name": "find",
        "tags": [
          "UserController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List users"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "roleId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "roleCode",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "roleCodes",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "UserController.find"
      }
    },
    "/api/vehicles/{id}": {
      "patch": {
        "x-controller-name": "VehicleController",
        "x-operation-name": "updateById",
        "tags": [
          "VehicleController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Vehicle PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VehiclePartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "VehicleController.updateById"
      },
      "get": {
        "x-controller-name": "VehicleController",
        "x-operation-name": "findById",
        "tags": [
          "VehicleController"
        ],
        "responses": {
          "200": {
            "description": "Vehicle by id",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vehicle"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "VehicleController.findById"
      },
      "delete": {
        "x-controller-name": "VehicleController",
        "x-operation-name": "deleteById",
        "tags": [
          "VehicleController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Vehicle DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "VehicleController.deleteById"
      }
    },
    "/api/vehicles": {
      "post": {
        "x-controller-name": "VehicleController",
        "x-operation-name": "create",
        "tags": [
          "VehicleController"
        ],
        "responses": {
          "200": {
            "description": "Create Vehicle",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Vehicle"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewVehicle"
              }
            }
          }
        },
        "operationId": "VehicleController.create"
      },
      "get": {
        "x-controller-name": "VehicleController",
        "x-operation-name": "find",
        "tags": [
          "VehicleController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List Vehicle"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "VehicleController.find"
      }
    },
    "/api/website/bootstrap": {
      "post": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "bootstrap",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Ensure default website content exists"
                }
              }
            }
          }
        },
        "operationId": "WebsiteAdminController.bootstrap"
      }
    },
    "/api/website/dashboard": {
      "get": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "dashboard",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Website CMS dashboard"
                }
              }
            }
          }
        },
        "operationId": "WebsiteAdminController.dashboard"
      }
    },
    "/api/website/enquiries": {
      "get": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "listEnquiries",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "Return value of WebsiteAdminController.listEnquiries"
          }
        },
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "WebsiteAdminController.listEnquiries"
      }
    },
    "/api/website/events/{id}": {
      "patch": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "patchEvent",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "Return value of WebsiteAdminController.patchEvent"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebsiteEventPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "WebsiteAdminController.patchEvent"
      },
      "delete": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "deleteEvent",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {},
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "WebsiteAdminController.deleteEvent"
      }
    },
    "/api/website/events": {
      "post": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "createEvent",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "Return value of WebsiteAdminController.createEvent"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebsiteEventExcluding_id-organizationId-createdAt-updatedAt-deletedAt_"
              }
            }
          }
        },
        "operationId": "WebsiteAdminController.createEvent"
      },
      "get": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "listEvents",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "Return value of WebsiteAdminController.listEvents"
          }
        },
        "operationId": "WebsiteAdminController.listEvents"
      }
    },
    "/api/website/galleries/{id}/media": {
      "post": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "addMedia",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "Return value of WebsiteAdminController.addMedia"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "mediaUrl"
                ],
                "properties": {
                  "mediaUrl": {
                    "type": "string"
                  },
                  "caption": {
                    "type": "string"
                  },
                  "sortOrder": {
                    "type": "number"
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "WebsiteAdminController.addMedia"
      },
      "get": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "listMedia",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "Return value of WebsiteAdminController.listMedia"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "WebsiteAdminController.listMedia"
      }
    },
    "/api/website/galleries/{id}": {
      "patch": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "patchGallery",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "Return value of WebsiteAdminController.patchGallery"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebsiteGalleryPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "WebsiteAdminController.patchGallery"
      },
      "delete": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "deleteGallery",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {},
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "WebsiteAdminController.deleteGallery"
      }
    },
    "/api/website/galleries": {
      "post": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "createGallery",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "Return value of WebsiteAdminController.createGallery"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewWebsiteGallery"
              }
            }
          }
        },
        "operationId": "WebsiteAdminController.createGallery"
      },
      "get": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "listGalleries",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "Return value of WebsiteAdminController.listGalleries"
          }
        },
        "operationId": "WebsiteAdminController.listGalleries"
      }
    },
    "/api/website/media/{id}": {
      "delete": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "deleteMedia",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {},
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "WebsiteAdminController.deleteMedia"
      }
    },
    "/api/website/notices/{id}": {
      "patch": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "patchNotice",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "Return value of WebsiteAdminController.patchNotice"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebsiteNoticePartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "WebsiteAdminController.patchNotice"
      },
      "delete": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "deleteNotice",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {},
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "WebsiteAdminController.deleteNotice"
      }
    },
    "/api/website/notices": {
      "post": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "createNotice",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "Return value of WebsiteAdminController.createNotice"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebsiteNoticeExcluding_id-organizationId-createdAt-updatedAt-deletedAt_"
              }
            }
          }
        },
        "operationId": "WebsiteAdminController.createNotice"
      },
      "get": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "listNotices",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "Return value of WebsiteAdminController.listNotices"
          }
        },
        "operationId": "WebsiteAdminController.listNotices"
      }
    },
    "/api/website/publish": {
      "post": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "publish",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Publish or unpublish website"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "isPublished"
                ],
                "properties": {
                  "isPublished": {
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "operationId": "WebsiteAdminController.publish"
      }
    },
    "/api/website/sections/{id}/move": {
      "post": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "moveSection",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Move section up or down"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "direction"
                ],
                "properties": {
                  "direction": {
                    "type": "string",
                    "enum": [
                      "up",
                      "down"
                    ]
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "WebsiteAdminController.moveSection"
      }
    },
    "/api/website/sections/{id}": {
      "patch": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "patchSection",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Update section"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebsiteSectionPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "WebsiteAdminController.patchSection"
      }
    },
    "/api/website/sections": {
      "get": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "listSections",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Homepage sections"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "pageSlug",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "WebsiteAdminController.listSections"
      }
    },
    "/api/website/settings": {
      "patch": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "patchSettings",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Update website settings"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        },
        "operationId": "WebsiteAdminController.patchSettings"
      },
      "get": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "getSettings",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Website settings"
                }
              }
            }
          }
        },
        "operationId": "WebsiteAdminController.getSettings"
      }
    },
    "/api/website/upload": {
      "post": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "upload",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Upload website media file"
                }
              }
            }
          }
        },
        "operationId": "WebsiteAdminController.upload"
      }
    },
    "/api/website/videos/{id}": {
      "patch": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "patchVideo",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "Return value of WebsiteAdminController.patchVideo"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebsiteVideoPartialExcluding_id-organizationId-createdAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "WebsiteAdminController.patchVideo"
      },
      "delete": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "deleteVideo",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {},
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "WebsiteAdminController.deleteVideo"
      }
    },
    "/api/website/videos": {
      "post": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "createVideo",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "Return value of WebsiteAdminController.createVideo"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebsiteVideoExcluding_id-organizationId-createdAt-updatedAt-deletedAt_"
              }
            }
          }
        },
        "operationId": "WebsiteAdminController.createVideo"
      },
      "get": {
        "x-controller-name": "WebsiteAdminController",
        "x-operation-name": "listVideos",
        "tags": [
          "WebsiteAdminController"
        ],
        "responses": {
          "200": {
            "description": "Return value of WebsiteAdminController.listVideos"
          }
        },
        "operationId": "WebsiteAdminController.listVideos"
      }
    }
  },
  "servers": [
    {
      "url": "https://api.eduos.tech"
    }
  ],
  "components": {
    "schemas": {
      "WebsiteSectionPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "WebsiteSectionPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<WebsiteSection>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "pageId": {
            "type": "string",
            "nullable": true
          },
          "sectionType": {
            "type": "string"
          },
          "sectionData": {
            "type": "object"
          },
          "sortOrder": {
            "type": "number"
          },
          "isVisible": {
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<WebsiteSection>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "NewWebsiteGallery": {
        "title": "NewWebsiteGallery",
        "type": "object",
        "description": "(tsType: Omit<WebsiteGallery, 'id' | 'organizationId' | 'createdAt' | 'updatedAt' | 'deletedAt'>, schemaOptions: { title: 'NewWebsiteGallery', exclude: [ 'id', 'organizationId', 'createdAt', 'updatedAt', 'deletedAt' ] })",
        "properties": {
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "coverImage": {
            "type": "string"
          },
          "isPublished": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "number"
          }
        },
        "required": [
          "title"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<WebsiteGallery, 'id' | 'organizationId' | 'createdAt' | 'updatedAt' | 'deletedAt'>"
      },
      "WebsiteGalleryPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "WebsiteGalleryPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<WebsiteGallery>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "coverImage": {
            "type": "string"
          },
          "isPublished": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<WebsiteGallery>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "WebsiteVideoExcluding_id-organizationId-createdAt-updatedAt-deletedAt_": {
        "title": "WebsiteVideoExcluding_id-organizationId-createdAt-updatedAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<WebsiteVideo, 'id' | 'organizationId' | 'createdAt' | 'updatedAt' | 'deletedAt'>, schemaOptions: { exclude: [ 'id', 'organizationId', 'createdAt', 'updatedAt', 'deletedAt' ] })",
        "properties": {
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "videoUrl": {
            "type": "string"
          },
          "thumbnailUrl": {
            "type": "string"
          },
          "isPublished": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "number"
          }
        },
        "required": [
          "title",
          "videoUrl"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<WebsiteVideo, 'id' | 'organizationId' | 'createdAt' | 'updatedAt' | 'deletedAt'>"
      },
      "WebsiteVideoPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "WebsiteVideoPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<WebsiteVideo>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "videoUrl": {
            "type": "string"
          },
          "thumbnailUrl": {
            "type": "string"
          },
          "isPublished": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<WebsiteVideo>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "WebsiteNoticeExcluding_id-organizationId-createdAt-updatedAt-deletedAt_": {
        "title": "WebsiteNoticeExcluding_id-organizationId-createdAt-updatedAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<WebsiteNotice, 'id' | 'organizationId' | 'createdAt' | 'updatedAt' | 'deletedAt'>, schemaOptions: { exclude: [ 'id', 'organizationId', 'createdAt', 'updatedAt', 'deletedAt' ] })",
        "properties": {
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "publishDate": {
            "type": "string",
            "format": "date-time"
          },
          "expiryDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "attachmentUrl": {
            "type": "string"
          },
          "isPublished": {
            "type": "boolean"
          }
        },
        "required": [
          "title"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<WebsiteNotice, 'id' | 'organizationId' | 'createdAt' | 'updatedAt' | 'deletedAt'>"
      },
      "WebsiteNoticePartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "WebsiteNoticePartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<WebsiteNotice>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "publishDate": {
            "type": "string",
            "format": "date-time"
          },
          "expiryDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "attachmentUrl": {
            "type": "string"
          },
          "isPublished": {
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<WebsiteNotice>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "WebsiteEventExcluding_id-organizationId-createdAt-updatedAt-deletedAt_": {
        "title": "WebsiteEventExcluding_id-organizationId-createdAt-updatedAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<WebsiteEvent, 'id' | 'organizationId' | 'createdAt' | 'updatedAt' | 'deletedAt'>, schemaOptions: { exclude: [ 'id', 'organizationId', 'createdAt', 'updatedAt', 'deletedAt' ] })",
        "properties": {
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "eventDate": {
            "type": "string",
            "format": "date-time"
          },
          "location": {
            "type": "string"
          },
          "imageUrl": {
            "type": "string"
          },
          "isPublished": {
            "type": "boolean"
          }
        },
        "required": [
          "title"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<WebsiteEvent, 'id' | 'organizationId' | 'createdAt' | 'updatedAt' | 'deletedAt'>"
      },
      "WebsiteEventPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "WebsiteEventPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<WebsiteEvent>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "eventDate": {
            "type": "string",
            "format": "date-time"
          },
          "location": {
            "type": "string"
          },
          "imageUrl": {
            "type": "string"
          },
          "isPublished": {
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<WebsiteEvent>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "Vehicle": {
        "title": "Vehicle",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "vehicleNo": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "capacity": {
            "type": "number"
          },
          "driverName": {
            "type": "string"
          },
          "driverPhone": {
            "type": "string"
          },
          "routeId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "vehicleNo"
        ],
        "additionalProperties": false
      },
      "NewVehicle": {
        "title": "NewVehicle",
        "type": "object",
        "description": "(tsType: Omit<Vehicle, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewVehicle', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "vehicleNo": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "capacity": {
            "type": "number"
          },
          "driverName": {
            "type": "string"
          },
          "driverPhone": {
            "type": "string"
          },
          "routeId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "vehicleNo"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Vehicle, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "VehiclePartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "VehiclePartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<Vehicle>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "vehicleNo": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "capacity": {
            "type": "number"
          },
          "driverName": {
            "type": "string"
          },
          "driverPhone": {
            "type": "string"
          },
          "routeId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<Vehicle>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "UserPartialExcluding_id-organizationId-password-createdAt-deletedAt-emailVerificationToken-passwordResetToken-passwordResetExpires-refreshTokenHash_": {
        "title": "UserPartialExcluding_id-organizationId-password-createdAt-deletedAt-emailVerificationToken-passwordResetToken-passwordResetExpires-refreshTokenHash_",
        "type": "object",
        "description": "(tsType: Omit<Partial<User>, 'id' | 'organizationId' | 'password' | 'createdAt' | 'deletedAt' | 'emailVerificationToken' | 'passwordResetToken' | 'passwordResetExpires' | 'refreshTokenHash'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'password', 'createdAt', 'deletedAt', 'emailVerificationToken', 'passwordResetToken', 'passwordResetExpires', 'refreshTokenHash' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "roleId": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "mobile": {
            "type": "string"
          },
          "profileImage": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "lastLogin": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "emailVerified": {
            "type": "boolean"
          },
          "forceChangePassword": {
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<User>, 'id' | 'organizationId' | 'password' | 'createdAt' | 'deletedAt' | 'emailVerificationToken' | 'passwordResetToken' | 'passwordResetExpires' | 'refreshTokenHash'>"
      },
      "Teacher": {
        "title": "Teacher",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "employeeCode": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "qualification": {
            "type": "string"
          },
          "joiningDate": {
            "type": "string",
            "format": "date-time"
          },
          "specialization": {
            "type": "string"
          },
          "isClassTeacher": {
            "type": "boolean"
          },
          "classId": {
            "type": "string",
            "nullable": true
          },
          "sectionId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "userId",
          "employeeCode"
        ],
        "additionalProperties": false
      },
      "NewTeacher": {
        "title": "NewTeacher",
        "type": "object",
        "description": "(tsType: Omit<Teacher, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewTeacher', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "userId": {
            "type": "string"
          },
          "employeeCode": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "qualification": {
            "type": "string"
          },
          "joiningDate": {
            "type": "string",
            "format": "date-time"
          },
          "specialization": {
            "type": "string"
          },
          "isClassTeacher": {
            "type": "boolean"
          },
          "classId": {
            "type": "string",
            "nullable": true
          },
          "sectionId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "userId",
          "employeeCode"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Teacher, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "TeacherPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "TeacherPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<Teacher>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "userId": {
            "type": "string"
          },
          "employeeCode": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "qualification": {
            "type": "string"
          },
          "joiningDate": {
            "type": "string",
            "format": "date-time"
          },
          "specialization": {
            "type": "string"
          },
          "isClassTeacher": {
            "type": "boolean"
          },
          "classId": {
            "type": "string",
            "nullable": true
          },
          "sectionId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<Teacher>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "Subscription": {
        "title": "Subscription",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "planId": {
            "type": "string"
          },
          "pendingPlanId": {
            "type": "string",
            "nullable": true
          },
          "pendingChangeAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "expiryDate": {
            "type": "string",
            "format": "date-time"
          },
          "graceEndsAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lockedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "cancelledAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "renewalDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastReminderAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "reminderStage": {
            "type": "string",
            "nullable": true
          },
          "paymentStatus": {
            "type": "string"
          },
          "autoRenew": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "billingCycle": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "planId",
          "startDate",
          "expiryDate"
        ],
        "additionalProperties": false
      },
      "NewSubscription": {
        "title": "NewSubscription",
        "type": "object",
        "description": "(tsType: Omit<Subscription, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewSubscription', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "planId": {
            "type": "string"
          },
          "pendingPlanId": {
            "type": "string",
            "nullable": true
          },
          "pendingChangeAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "expiryDate": {
            "type": "string",
            "format": "date-time"
          },
          "graceEndsAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lockedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "cancelledAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "renewalDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastReminderAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "reminderStage": {
            "type": "string",
            "nullable": true
          },
          "paymentStatus": {
            "type": "string"
          },
          "autoRenew": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "billingCycle": {
            "type": "string"
          }
        },
        "required": [
          "planId",
          "startDate",
          "expiryDate"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Subscription, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "SubscriptionPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "SubscriptionPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<Subscription>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "planId": {
            "type": "string"
          },
          "pendingPlanId": {
            "type": "string",
            "nullable": true
          },
          "pendingChangeAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "expiryDate": {
            "type": "string",
            "format": "date-time"
          },
          "graceEndsAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lockedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "cancelledAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "renewalDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastReminderAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "reminderStage": {
            "type": "string",
            "nullable": true
          },
          "paymentStatus": {
            "type": "string"
          },
          "autoRenew": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "billingCycle": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<Subscription>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "SubscriptionPlan": {
        "title": "SubscriptionPlan",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "studentLimit": {
            "type": "number"
          },
          "teacherLimit": {
            "type": "number"
          },
          "storageMb": {
            "type": "number"
          },
          "apiLimit": {
            "type": "number"
          },
          "smsQuota": {
            "type": "number"
          },
          "emailQuota": {
            "type": "number"
          },
          "trialDays": {
            "type": "number"
          },
          "modules": {
            "type": "object"
          },
          "moduleAccess": {
            "type": "object"
          },
          "limitsJson": {
            "type": "object"
          },
          "displayName": {
            "type": "string"
          },
          "graceDays": {
            "type": "number"
          },
          "priceMonthly": {
            "type": "number"
          },
          "priceYearly": {
            "type": "number"
          },
          "gstRate": {
            "type": "number"
          },
          "currency": {
            "type": "string"
          },
          "isActive": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "number"
          }
        },
        "required": [
          "name",
          "code"
        ],
        "additionalProperties": false
      },
      "NewSubscriptionPlan": {
        "title": "NewSubscriptionPlan",
        "type": "object",
        "description": "(tsType: Omit<SubscriptionPlan, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt'>, schemaOptions: { title: 'NewSubscriptionPlan', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt' ] })",
        "properties": {
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "studentLimit": {
            "type": "number"
          },
          "teacherLimit": {
            "type": "number"
          },
          "storageMb": {
            "type": "number"
          },
          "apiLimit": {
            "type": "number"
          },
          "smsQuota": {
            "type": "number"
          },
          "emailQuota": {
            "type": "number"
          },
          "trialDays": {
            "type": "number"
          },
          "modules": {
            "type": "object"
          },
          "moduleAccess": {
            "type": "object"
          },
          "limitsJson": {
            "type": "object"
          },
          "displayName": {
            "type": "string"
          },
          "graceDays": {
            "type": "number"
          },
          "priceMonthly": {
            "type": "number"
          },
          "priceYearly": {
            "type": "number"
          },
          "gstRate": {
            "type": "number"
          },
          "currency": {
            "type": "string"
          },
          "isActive": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "number"
          }
        },
        "required": [
          "name",
          "code"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<SubscriptionPlan, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt'>"
      },
      "SubscriptionPlanPartialExcluding_id-createdAt-deletedAt_": {
        "title": "SubscriptionPlanPartialExcluding_id-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<SubscriptionPlan>, 'id' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "studentLimit": {
            "type": "number"
          },
          "teacherLimit": {
            "type": "number"
          },
          "storageMb": {
            "type": "number"
          },
          "apiLimit": {
            "type": "number"
          },
          "smsQuota": {
            "type": "number"
          },
          "emailQuota": {
            "type": "number"
          },
          "trialDays": {
            "type": "number"
          },
          "modules": {
            "type": "object"
          },
          "moduleAccess": {
            "type": "object"
          },
          "limitsJson": {
            "type": "object"
          },
          "displayName": {
            "type": "string"
          },
          "graceDays": {
            "type": "number"
          },
          "priceMonthly": {
            "type": "number"
          },
          "priceYearly": {
            "type": "number"
          },
          "gstRate": {
            "type": "number"
          },
          "currency": {
            "type": "string"
          },
          "isActive": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<SubscriptionPlan>, 'id' | 'createdAt' | 'deletedAt'>"
      },
      "Subject": {
        "title": "Subject",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "classId": {
            "type": "string",
            "nullable": true
          },
          "teacherId": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string"
          },
          "credits": {
            "type": "number"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "name",
          "code"
        ],
        "additionalProperties": false
      },
      "NewSubject": {
        "title": "NewSubject",
        "type": "object",
        "description": "(tsType: Omit<Subject, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewSubject', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "classId": {
            "type": "string",
            "nullable": true
          },
          "teacherId": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string"
          },
          "credits": {
            "type": "number"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "code"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Subject, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "SubjectPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "SubjectPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<Subject>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "classId": {
            "type": "string",
            "nullable": true
          },
          "teacherId": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string"
          },
          "credits": {
            "type": "number"
          },
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<Subject>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "Student": {
        "title": "Student",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "admissionNo": {
            "type": "string"
          },
          "rollNo": {
            "type": "string"
          },
          "classId": {
            "type": "string"
          },
          "sectionId": {
            "type": "string"
          },
          "academicYearId": {
            "type": "string"
          },
          "dateOfBirth": {
            "type": "string",
            "format": "date-time"
          },
          "gender": {
            "type": "string"
          },
          "bloodGroup": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "parentId": {
            "type": "string",
            "nullable": true
          },
          "guardianId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string"
          },
          "admissionDate": {
            "type": "string",
            "format": "date-time"
          },
          "admissionTypeId": {
            "type": "string",
            "nullable": true
          },
          "studentCategoryId": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "organizationId",
          "userId",
          "admissionNo"
        ],
        "additionalProperties": false
      },
      "NewStudent": {
        "title": "NewStudent",
        "type": "object",
        "description": "(tsType: Omit<Student, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewStudent', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "userId": {
            "type": "string"
          },
          "admissionNo": {
            "type": "string"
          },
          "rollNo": {
            "type": "string"
          },
          "classId": {
            "type": "string"
          },
          "sectionId": {
            "type": "string"
          },
          "academicYearId": {
            "type": "string"
          },
          "dateOfBirth": {
            "type": "string",
            "format": "date-time"
          },
          "gender": {
            "type": "string"
          },
          "bloodGroup": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "parentId": {
            "type": "string",
            "nullable": true
          },
          "guardianId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string"
          },
          "admissionDate": {
            "type": "string",
            "format": "date-time"
          },
          "admissionTypeId": {
            "type": "string",
            "nullable": true
          },
          "studentCategoryId": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "userId",
          "admissionNo"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Student, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "StudentPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "StudentPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<Student>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "userId": {
            "type": "string"
          },
          "admissionNo": {
            "type": "string"
          },
          "rollNo": {
            "type": "string"
          },
          "classId": {
            "type": "string"
          },
          "sectionId": {
            "type": "string"
          },
          "academicYearId": {
            "type": "string"
          },
          "dateOfBirth": {
            "type": "string",
            "format": "date-time"
          },
          "gender": {
            "type": "string"
          },
          "bloodGroup": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "parentId": {
            "type": "string",
            "nullable": true
          },
          "guardianId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string"
          },
          "admissionDate": {
            "type": "string",
            "format": "date-time"
          },
          "admissionTypeId": {
            "type": "string",
            "nullable": true
          },
          "studentCategoryId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<Student>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "Section": {
        "title": "Section",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "classId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "capacity": {
            "type": "number"
          },
          "classTeacherId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "classId",
          "name"
        ],
        "additionalProperties": false
      },
      "NewSection": {
        "title": "NewSection",
        "type": "object",
        "description": "(tsType: Omit<Section, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewSection', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "classId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "capacity": {
            "type": "number"
          },
          "classTeacherId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "classId",
          "name"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Section, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "SectionPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "SectionPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<Section>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "classId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "capacity": {
            "type": "number"
          },
          "classTeacherId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<Section>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "Route": {
        "title": "Route",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "startPoint": {
            "type": "string"
          },
          "endPoint": {
            "type": "string"
          },
          "stops": {
            "type": "object"
          },
          "fare": {
            "type": "number"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "name"
        ],
        "additionalProperties": false
      },
      "NewRoute": {
        "title": "NewRoute",
        "type": "object",
        "description": "(tsType: Omit<Route, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewRoute', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "name": {
            "type": "string"
          },
          "startPoint": {
            "type": "string"
          },
          "endPoint": {
            "type": "string"
          },
          "stops": {
            "type": "object"
          },
          "fare": {
            "type": "number"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Route, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "RoutePartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "RoutePartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<Route>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "name": {
            "type": "string"
          },
          "startPoint": {
            "type": "string"
          },
          "endPoint": {
            "type": "string"
          },
          "stops": {
            "type": "object"
          },
          "fare": {
            "type": "number"
          },
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<Route>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "RolePartialExcluding_id-organizationId-isSystem-createdAt-deletedAt_": {
        "title": "RolePartialExcluding_id-organizationId-isSystem-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<Role>, 'id' | 'organizationId' | 'isSystem' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'isSystem', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "isDefault": {
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<Role>, 'id' | 'organizationId' | 'isSystem' | 'createdAt' | 'deletedAt'>"
      },
      "Payment": {
        "title": "Payment",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "invoiceId": {
            "type": "string",
            "nullable": true
          },
          "subscriptionId": {
            "type": "string",
            "nullable": true
          },
          "planId": {
            "type": "string",
            "nullable": true
          },
          "paymentType": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "subtotal": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "gstAmount": {
            "type": "number"
          },
          "couponCode": {
            "type": "string"
          },
          "billingCycle": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "method": {
            "type": "string"
          },
          "gateway": {
            "type": "string"
          },
          "orderId": {
            "type": "string"
          },
          "gatewayPaymentId": {
            "type": "string"
          },
          "transactionId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "paidAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "metadata": {
            "type": "object"
          }
        },
        "required": [
          "organizationId",
          "amount"
        ],
        "additionalProperties": false
      },
      "NewPayment": {
        "title": "NewPayment",
        "type": "object",
        "description": "(tsType: Omit<Payment, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewPayment', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "invoiceId": {
            "type": "string",
            "nullable": true
          },
          "subscriptionId": {
            "type": "string",
            "nullable": true
          },
          "planId": {
            "type": "string",
            "nullable": true
          },
          "paymentType": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "subtotal": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "gstAmount": {
            "type": "number"
          },
          "couponCode": {
            "type": "string"
          },
          "billingCycle": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "method": {
            "type": "string"
          },
          "gateway": {
            "type": "string"
          },
          "orderId": {
            "type": "string"
          },
          "gatewayPaymentId": {
            "type": "string"
          },
          "transactionId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "paidAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "metadata": {
            "type": "object"
          }
        },
        "required": [
          "amount"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Payment, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "PaymentPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "PaymentPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<Payment>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "invoiceId": {
            "type": "string",
            "nullable": true
          },
          "subscriptionId": {
            "type": "string",
            "nullable": true
          },
          "planId": {
            "type": "string",
            "nullable": true
          },
          "paymentType": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "subtotal": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "gstAmount": {
            "type": "number"
          },
          "couponCode": {
            "type": "string"
          },
          "billingCycle": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "method": {
            "type": "string"
          },
          "gateway": {
            "type": "string"
          },
          "orderId": {
            "type": "string"
          },
          "gatewayPaymentId": {
            "type": "string"
          },
          "transactionId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "paidAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "metadata": {
            "type": "object"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<Payment>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "Parent": {
        "title": "Parent",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "occupation": {
            "type": "string"
          },
          "relation": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "emergencyContact": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "userId"
        ],
        "additionalProperties": false
      },
      "NewParent": {
        "title": "NewParent",
        "type": "object",
        "description": "(tsType: Omit<Parent, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewParent', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "userId": {
            "type": "string"
          },
          "occupation": {
            "type": "string"
          },
          "relation": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "emergencyContact": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "userId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Parent, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "ParentPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "ParentPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<Parent>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "userId": {
            "type": "string"
          },
          "occupation": {
            "type": "string"
          },
          "relation": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "emergencyContact": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<Parent>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "Organization": {
        "title": "Organization",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationName": {
            "type": "string"
          },
          "schoolName": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "logo": {
            "type": "string"
          },
          "timezone": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "subscriptionId": {
            "type": "string",
            "nullable": true
          },
          "ownerUserId": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "organizationName",
          "schoolName",
          "email"
        ],
        "additionalProperties": false
      },
      "OrganizationPartialExcluding_id-createdAt-deletedAt-ownerUserId_": {
        "title": "OrganizationPartialExcluding_id-createdAt-deletedAt-ownerUserId_",
        "type": "object",
        "description": "(tsType: Omit<Partial<Organization>, 'id' | 'createdAt' | 'deletedAt' | 'ownerUserId'>, schemaOptions: { partial: true, exclude: [ 'id', 'createdAt', 'deletedAt', 'ownerUserId' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "organizationName": {
            "type": "string"
          },
          "schoolName": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "logo": {
            "type": "string"
          },
          "timezone": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "subscriptionId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<Organization>, 'id' | 'createdAt' | 'deletedAt' | 'ownerUserId'>"
      },
      "OrganizationSetting": {
        "title": "OrganizationSetting",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "value": {
            "type": "object"
          },
          "groupName": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "key"
        ],
        "additionalProperties": false
      },
      "NewOrganizationSetting": {
        "title": "NewOrganizationSetting",
        "type": "object",
        "description": "(tsType: Omit<OrganizationSetting, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewOrganizationSetting', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "key": {
            "type": "string"
          },
          "value": {
            "type": "object"
          },
          "groupName": {
            "type": "string"
          }
        },
        "required": [
          "key"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<OrganizationSetting, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "OrganizationSettingPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "OrganizationSettingPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<OrganizationSetting>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "key": {
            "type": "string"
          },
          "value": {
            "type": "object"
          },
          "groupName": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<OrganizationSetting>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "Notification": {
        "title": "Notification",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "priority": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "channel": {
            "type": "string"
          },
          "isRead": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "data": {
            "type": "object"
          },
          "readAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "groupKey": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "userId",
          "title",
          "message"
        ],
        "additionalProperties": false
      },
      "NewNotification": {
        "title": "NewNotification",
        "type": "object",
        "description": "(tsType: Omit<Notification, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewNotification', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "userId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "priority": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "channel": {
            "type": "string"
          },
          "isRead": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "data": {
            "type": "object"
          },
          "readAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "groupKey": {
            "type": "string"
          }
        },
        "required": [
          "userId",
          "title",
          "message"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Notification, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "NotificationPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "NotificationPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<Notification>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "userId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "priority": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "channel": {
            "type": "string"
          },
          "isRead": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "data": {
            "type": "object"
          },
          "readAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "groupKey": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<Notification>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "LibraryBook": {
        "title": "LibraryBook",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "author": {
            "type": "string"
          },
          "isbn": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "publisher": {
            "type": "string"
          },
          "totalCopies": {
            "type": "number"
          },
          "availableCopies": {
            "type": "number"
          },
          "shelfLocation": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "title"
        ],
        "additionalProperties": false
      },
      "NewLibraryBook": {
        "title": "NewLibraryBook",
        "type": "object",
        "description": "(tsType: Omit<LibraryBook, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewLibraryBook', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "title": {
            "type": "string"
          },
          "author": {
            "type": "string"
          },
          "isbn": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "publisher": {
            "type": "string"
          },
          "totalCopies": {
            "type": "number"
          },
          "availableCopies": {
            "type": "number"
          },
          "shelfLocation": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "title"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<LibraryBook, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "LibraryBookPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "LibraryBookPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<LibraryBook>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "title": {
            "type": "string"
          },
          "author": {
            "type": "string"
          },
          "isbn": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "publisher": {
            "type": "string"
          },
          "totalCopies": {
            "type": "number"
          },
          "availableCopies": {
            "type": "number"
          },
          "shelfLocation": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<LibraryBook>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "Leave": {
        "title": "Leave",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "employeeId": {
            "type": "string"
          },
          "leaveType": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "reason": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "approvedBy": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "organizationId",
          "employeeId",
          "leaveType",
          "startDate",
          "endDate"
        ],
        "additionalProperties": false
      },
      "NewLeave": {
        "title": "NewLeave",
        "type": "object",
        "description": "(tsType: Omit<Leave, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewLeave', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "employeeId": {
            "type": "string"
          },
          "leaveType": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "reason": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "approvedBy": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "employeeId",
          "leaveType",
          "startDate",
          "endDate"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Leave, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "LeavePartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "LeavePartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<Leave>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "employeeId": {
            "type": "string"
          },
          "leaveType": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "reason": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "approvedBy": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<Leave>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "Invoice": {
        "title": "Invoice",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "studentId": {
            "type": "string"
          },
          "feeStructureId": {
            "type": "string"
          },
          "academicYearId": {
            "type": "string",
            "nullable": true
          },
          "invoiceNo": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "scholarship": {
            "type": "number"
          },
          "lateFee": {
            "type": "number"
          },
          "totalAmount": {
            "type": "number"
          },
          "paidAmount": {
            "type": "number"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "studentId",
          "feeStructureId",
          "invoiceNo",
          "amount",
          "totalAmount"
        ],
        "additionalProperties": false
      },
      "NewInvoice": {
        "title": "NewInvoice",
        "type": "object",
        "description": "(tsType: Omit<Invoice, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewInvoice', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "studentId": {
            "type": "string"
          },
          "feeStructureId": {
            "type": "string"
          },
          "academicYearId": {
            "type": "string",
            "nullable": true
          },
          "invoiceNo": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "scholarship": {
            "type": "number"
          },
          "lateFee": {
            "type": "number"
          },
          "totalAmount": {
            "type": "number"
          },
          "paidAmount": {
            "type": "number"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "studentId",
          "feeStructureId",
          "invoiceNo",
          "amount",
          "totalAmount"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Invoice, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "InvoicePartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "InvoicePartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<Invoice>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "studentId": {
            "type": "string"
          },
          "feeStructureId": {
            "type": "string"
          },
          "academicYearId": {
            "type": "string",
            "nullable": true
          },
          "invoiceNo": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "scholarship": {
            "type": "number"
          },
          "lateFee": {
            "type": "number"
          },
          "totalAmount": {
            "type": "number"
          },
          "paidAmount": {
            "type": "number"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<Invoice>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "Homework": {
        "title": "Homework",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "classId": {
            "type": "string"
          },
          "sectionId": {
            "type": "string"
          },
          "subjectId": {
            "type": "string"
          },
          "teacherId": {
            "type": "string"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "attachmentUrl": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "title",
          "classId",
          "subjectId",
          "teacherId",
          "dueDate"
        ],
        "additionalProperties": false
      },
      "NewHomework": {
        "title": "NewHomework",
        "type": "object",
        "description": "(tsType: Omit<Homework, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewHomework', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "classId": {
            "type": "string"
          },
          "sectionId": {
            "type": "string"
          },
          "subjectId": {
            "type": "string"
          },
          "teacherId": {
            "type": "string"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "attachmentUrl": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "title",
          "classId",
          "subjectId",
          "teacherId",
          "dueDate"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Homework, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "HomeworkPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "HomeworkPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<Homework>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "classId": {
            "type": "string"
          },
          "sectionId": {
            "type": "string"
          },
          "subjectId": {
            "type": "string"
          },
          "teacherId": {
            "type": "string"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "attachmentUrl": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<Homework>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "Guardian": {
        "title": "Guardian",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "userId": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "mobile": {
            "type": "string"
          },
          "relation": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "studentId": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "firstName",
          "lastName"
        ],
        "additionalProperties": false
      },
      "NewGuardian": {
        "title": "NewGuardian",
        "type": "object",
        "description": "(tsType: Omit<Guardian, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewGuardian', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "userId": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "mobile": {
            "type": "string"
          },
          "relation": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "studentId": {
            "type": "string"
          }
        },
        "required": [
          "firstName",
          "lastName"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Guardian, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "GuardianPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "GuardianPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<Guardian>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "userId": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "mobile": {
            "type": "string"
          },
          "relation": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "studentId": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<Guardian>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "FeeStructure": {
        "title": "FeeStructure",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "feeCategoryId": {
            "type": "string"
          },
          "classId": {
            "type": "string"
          },
          "academicYearId": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "lateFeeAmount": {
            "type": "number"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "name",
          "feeCategoryId",
          "classId",
          "academicYearId",
          "amount"
        ],
        "additionalProperties": false
      },
      "NewFeeStructure": {
        "title": "NewFeeStructure",
        "type": "object",
        "description": "(tsType: Omit<FeeStructure, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewFeeStructure', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "name": {
            "type": "string"
          },
          "feeCategoryId": {
            "type": "string"
          },
          "classId": {
            "type": "string"
          },
          "academicYearId": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "lateFeeAmount": {
            "type": "number"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "feeCategoryId",
          "classId",
          "academicYearId",
          "amount"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<FeeStructure, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "FeeStructurePartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "FeeStructurePartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<FeeStructure>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "name": {
            "type": "string"
          },
          "feeCategoryId": {
            "type": "string"
          },
          "classId": {
            "type": "string"
          },
          "academicYearId": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "lateFeeAmount": {
            "type": "number"
          },
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<FeeStructure>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "FeeCollection": {
        "title": "FeeCollection",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "studentId": {
            "type": "string"
          },
          "invoiceId": {
            "type": "string"
          },
          "installmentId": {
            "type": "string",
            "nullable": true
          },
          "paymentId": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "scholarship": {
            "type": "number"
          },
          "lateFee": {
            "type": "number"
          },
          "paidAmount": {
            "type": "number"
          },
          "paymentMethod": {
            "type": "string"
          },
          "receiptNo": {
            "type": "string"
          },
          "collectedBy": {
            "type": "string"
          },
          "paymentDate": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          },
          "remarks": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "studentId",
          "invoiceId",
          "amount",
          "paidAmount",
          "receiptNo",
          "paymentDate"
        ],
        "additionalProperties": false
      },
      "NewFeeCollection": {
        "title": "NewFeeCollection",
        "type": "object",
        "description": "(tsType: Omit<FeeCollection, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewFeeCollection', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "studentId": {
            "type": "string"
          },
          "invoiceId": {
            "type": "string"
          },
          "installmentId": {
            "type": "string",
            "nullable": true
          },
          "paymentId": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "scholarship": {
            "type": "number"
          },
          "lateFee": {
            "type": "number"
          },
          "paidAmount": {
            "type": "number"
          },
          "paymentMethod": {
            "type": "string"
          },
          "receiptNo": {
            "type": "string"
          },
          "collectedBy": {
            "type": "string"
          },
          "paymentDate": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          },
          "remarks": {
            "type": "string"
          }
        },
        "required": [
          "studentId",
          "invoiceId",
          "amount",
          "paidAmount",
          "receiptNo",
          "paymentDate"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<FeeCollection, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "FeeCollectionPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "FeeCollectionPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<FeeCollection>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "studentId": {
            "type": "string"
          },
          "invoiceId": {
            "type": "string"
          },
          "installmentId": {
            "type": "string",
            "nullable": true
          },
          "paymentId": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "scholarship": {
            "type": "number"
          },
          "lateFee": {
            "type": "number"
          },
          "paidAmount": {
            "type": "number"
          },
          "paymentMethod": {
            "type": "string"
          },
          "receiptNo": {
            "type": "string"
          },
          "collectedBy": {
            "type": "string"
          },
          "paymentDate": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          },
          "remarks": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<FeeCollection>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "FeeCategory": {
        "title": "FeeCategory",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "name",
          "code"
        ],
        "additionalProperties": false
      },
      "NewFeeCategory": {
        "title": "NewFeeCategory",
        "type": "object",
        "description": "(tsType: Omit<FeeCategory, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewFeeCategory', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "code"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<FeeCategory, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "FeeCategoryPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "FeeCategoryPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<FeeCategory>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<FeeCategory>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "Exam": {
        "title": "Exam",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "examType": {
            "type": "string"
          },
          "classId": {
            "type": "string"
          },
          "sectionId": {
            "type": "string"
          },
          "subjectId": {
            "type": "string"
          },
          "academicYearId": {
            "type": "string"
          },
          "chapter": {
            "type": "string"
          },
          "schoolName": {
            "type": "string"
          },
          "examDate": {
            "type": "string",
            "format": "date-time"
          },
          "maxMarks": {
            "type": "number"
          },
          "passingMarks": {
            "type": "number"
          },
          "durationMinutes": {
            "type": "number"
          },
          "instructions": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "createdByUserId": {
            "type": "string"
          },
          "teacherId": {
            "type": "string"
          },
          "totalQuestions": {
            "type": "number"
          },
          "totalPages": {
            "type": "number"
          },
          "publishedAt": {
            "type": "string",
            "format": "date-time"
          },
          "ocrMetadata": {
            "type": "object"
          },
          "sourceHistoryId": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "name",
          "classId",
          "subjectId",
          "examDate"
        ],
        "additionalProperties": false
      },
      "NewExam": {
        "title": "NewExam",
        "type": "object",
        "description": "(tsType: Omit<Exam, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewExam', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "name": {
            "type": "string"
          },
          "examType": {
            "type": "string"
          },
          "classId": {
            "type": "string"
          },
          "sectionId": {
            "type": "string"
          },
          "subjectId": {
            "type": "string"
          },
          "academicYearId": {
            "type": "string"
          },
          "chapter": {
            "type": "string"
          },
          "schoolName": {
            "type": "string"
          },
          "examDate": {
            "type": "string",
            "format": "date-time"
          },
          "maxMarks": {
            "type": "number"
          },
          "passingMarks": {
            "type": "number"
          },
          "durationMinutes": {
            "type": "number"
          },
          "instructions": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "createdByUserId": {
            "type": "string"
          },
          "teacherId": {
            "type": "string"
          },
          "totalQuestions": {
            "type": "number"
          },
          "totalPages": {
            "type": "number"
          },
          "publishedAt": {
            "type": "string",
            "format": "date-time"
          },
          "ocrMetadata": {
            "type": "object"
          },
          "sourceHistoryId": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "classId",
          "subjectId",
          "examDate"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Exam, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "ExamPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "ExamPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<Exam>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "name": {
            "type": "string"
          },
          "examType": {
            "type": "string"
          },
          "classId": {
            "type": "string"
          },
          "sectionId": {
            "type": "string"
          },
          "subjectId": {
            "type": "string"
          },
          "academicYearId": {
            "type": "string"
          },
          "chapter": {
            "type": "string"
          },
          "schoolName": {
            "type": "string"
          },
          "examDate": {
            "type": "string",
            "format": "date-time"
          },
          "maxMarks": {
            "type": "number"
          },
          "passingMarks": {
            "type": "number"
          },
          "durationMinutes": {
            "type": "number"
          },
          "instructions": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "createdByUserId": {
            "type": "string"
          },
          "teacherId": {
            "type": "string"
          },
          "totalQuestions": {
            "type": "number"
          },
          "totalPages": {
            "type": "number"
          },
          "publishedAt": {
            "type": "string",
            "format": "date-time"
          },
          "ocrMetadata": {
            "type": "object"
          },
          "sourceHistoryId": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<Exam>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "ExamResult": {
        "title": "ExamResult",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "examId": {
            "type": "string"
          },
          "studentId": {
            "type": "string"
          },
          "marksObtained": {
            "type": "number"
          },
          "grade": {
            "type": "string"
          },
          "remarks": {
            "type": "string"
          },
          "isPassed": {
            "type": "boolean"
          }
        },
        "required": [
          "organizationId",
          "examId",
          "studentId",
          "marksObtained"
        ],
        "additionalProperties": false
      },
      "NewExamResult": {
        "title": "NewExamResult",
        "type": "object",
        "description": "(tsType: Omit<ExamResult, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewExamResult', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "examId": {
            "type": "string"
          },
          "studentId": {
            "type": "string"
          },
          "marksObtained": {
            "type": "number"
          },
          "grade": {
            "type": "string"
          },
          "remarks": {
            "type": "string"
          },
          "isPassed": {
            "type": "boolean"
          }
        },
        "required": [
          "examId",
          "studentId",
          "marksObtained"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<ExamResult, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "ExamResultPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "ExamResultPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<ExamResult>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "examId": {
            "type": "string"
          },
          "studentId": {
            "type": "string"
          },
          "marksObtained": {
            "type": "number"
          },
          "grade": {
            "type": "string"
          },
          "remarks": {
            "type": "string"
          },
          "isPassed": {
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<ExamResult>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "Employee": {
        "title": "Employee",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "employeeCode": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "designation": {
            "type": "string"
          },
          "joiningDate": {
            "type": "string",
            "format": "date-time"
          },
          "salary": {
            "type": "number"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "userId",
          "employeeCode"
        ],
        "additionalProperties": false
      },
      "NewEmployee": {
        "title": "NewEmployee",
        "type": "object",
        "description": "(tsType: Omit<Employee, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewEmployee', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "userId": {
            "type": "string"
          },
          "employeeCode": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "designation": {
            "type": "string"
          },
          "joiningDate": {
            "type": "string",
            "format": "date-time"
          },
          "salary": {
            "type": "number"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "userId",
          "employeeCode"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Employee, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "EmployeePartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "EmployeePartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<Employee>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "userId": {
            "type": "string"
          },
          "employeeCode": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "designation": {
            "type": "string"
          },
          "joiningDate": {
            "type": "string",
            "format": "date-time"
          },
          "salary": {
            "type": "number"
          },
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<Employee>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "AdmissionTypeExcluding_id-createdAt-updatedAt-deletedAt-organizationId_": {
        "title": "AdmissionTypeExcluding_id-createdAt-updatedAt-deletedAt-organizationId_",
        "type": "object",
        "description": "(tsType: Omit<AdmissionType, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "isActive": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "number"
          }
        },
        "required": [
          "name",
          "code"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<AdmissionType, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "StudentCategoryExcluding_id-createdAt-updatedAt-deletedAt-organizationId_": {
        "title": "StudentCategoryExcluding_id-createdAt-updatedAt-deletedAt-organizationId_",
        "type": "object",
        "description": "(tsType: Omit<StudentCategory, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "isActive": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "number"
          }
        },
        "required": [
          "name",
          "code"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<StudentCategory, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "DocumentTypeExcluding_id-createdAt-updatedAt-deletedAt-organizationId_": {
        "title": "DocumentTypeExcluding_id-createdAt-updatedAt-deletedAt-organizationId_",
        "type": "object",
        "description": "(tsType: Omit<DocumentType, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "allowedFileTypes": {
            "type": "string"
          },
          "maxFileSizeMb": {
            "type": "number"
          },
          "isActive": {
            "type": "boolean"
          },
          "isSystemDefined": {
            "type": "boolean"
          },
          "createdBy": {
            "type": "string"
          },
          "updatedBy": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "code"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<DocumentType, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "DocumentRequirementExcluding_id-createdAt-updatedAt-deletedAt-organizationId_": {
        "title": "DocumentRequirementExcluding_id-createdAt-updatedAt-deletedAt-organizationId_",
        "type": "object",
        "description": "(tsType: Omit<DocumentRequirement, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "academicYearId": {
            "type": "string",
            "nullable": true
          },
          "admissionTypeId": {
            "type": "string",
            "nullable": true
          },
          "classId": {
            "type": "string",
            "nullable": true
          },
          "studentCategoryId": {
            "type": "string",
            "nullable": true
          },
          "documentTypeId": {
            "type": "string"
          },
          "moduleContext": {
            "type": "string"
          },
          "isRequired": {
            "type": "boolean"
          },
          "allowMultiple": {
            "type": "boolean"
          },
          "verificationRequired": {
            "type": "boolean"
          },
          "expiryRequired": {
            "type": "boolean"
          },
          "maxFileSizeMb": {
            "type": "number",
            "nullable": true
          },
          "allowedFileTypes": {
            "type": "string",
            "nullable": true
          },
          "displayOrder": {
            "type": "number"
          },
          "isActive": {
            "type": "boolean"
          },
          "createdBy": {
            "type": "string"
          },
          "updatedBy": {
            "type": "string"
          }
        },
        "required": [
          "documentTypeId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<DocumentRequirement, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "DashboardNote": {
        "title": "DashboardNote",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "schoolId": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "noteDate": {
            "type": "string",
            "nullable": true,
            "maxLength": 32
          },
          "isPinned": {
            "type": "boolean"
          },
          "isArchived": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "number"
          }
        },
        "required": [
          "organizationId",
          "userId",
          "title"
        ],
        "additionalProperties": false
      },
      "NewDashboardNote": {
        "title": "NewDashboardNote",
        "type": "object",
        "description": "(tsType: Omit<DashboardNote, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId' | 'userId'>, schemaOptions: { title: 'NewDashboardNote', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId', 'userId' ] })",
        "properties": {
          "schoolId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "noteDate": {
            "type": "string",
            "nullable": true,
            "maxLength": 32
          },
          "isPinned": {
            "type": "boolean"
          },
          "isArchived": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "number"
          }
        },
        "required": [
          "title"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<DashboardNote, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId' | 'userId'>"
      },
      "DashboardNotePartial": {
        "title": "DashboardNotePartial",
        "type": "object",
        "description": "(tsType: Partial<DashboardNote>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "schoolId": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "noteDate": {
            "type": "string",
            "nullable": true,
            "maxLength": 32
          },
          "isPinned": {
            "type": "boolean"
          },
          "isArchived": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<DashboardNote>"
      },
      "SchoolClass": {
        "title": "SchoolClass",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "numericValue": {
            "type": "number"
          },
          "description": {
            "type": "string"
          },
          "academicYearId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "name",
          "code"
        ],
        "additionalProperties": false
      },
      "NewSchoolClass": {
        "title": "NewSchoolClass",
        "type": "object",
        "description": "(tsType: Omit<SchoolClass, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewSchoolClass', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "numericValue": {
            "type": "number"
          },
          "description": {
            "type": "string"
          },
          "academicYearId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "code"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<SchoolClass, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "SchoolClassPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "SchoolClassPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<SchoolClass>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "numericValue": {
            "type": "number"
          },
          "description": {
            "type": "string"
          },
          "academicYearId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<SchoolClass>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "CalendarEvent": {
        "title": "CalendarEvent",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "schoolId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "priority": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "minLength": 8,
            "maxLength": 32
          },
          "endDate": {
            "type": "string",
            "nullable": true,
            "maxLength": 32
          },
          "startTime": {
            "type": "string"
          },
          "endTime": {
            "type": "string"
          },
          "repeatType": {
            "type": "string"
          },
          "reminder": {
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "meetingLink": {
            "type": "string"
          },
          "teacherId": {
            "type": "string"
          },
          "classId": {
            "type": "string"
          },
          "subjectId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "notes": {
            "type": "string"
          },
          "createdBy": {
            "type": "string"
          },
          "updatedBy": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "title",
          "startDate"
        ],
        "additionalProperties": false
      },
      "BookIssue": {
        "title": "BookIssue",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "bookId": {
            "type": "string"
          },
          "studentId": {
            "type": "string"
          },
          "issueDate": {
            "type": "string",
            "format": "date-time"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "returnDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "fineAmount": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "issuedBy": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "bookId",
          "studentId",
          "issueDate",
          "dueDate"
        ],
        "additionalProperties": false
      },
      "NewBookIssue": {
        "title": "NewBookIssue",
        "type": "object",
        "description": "(tsType: Omit<BookIssue, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewBookIssue', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "bookId": {
            "type": "string"
          },
          "studentId": {
            "type": "string"
          },
          "issueDate": {
            "type": "string",
            "format": "date-time"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "returnDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "fineAmount": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "issuedBy": {
            "type": "string"
          }
        },
        "required": [
          "bookId",
          "studentId",
          "issueDate",
          "dueDate"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<BookIssue, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "BookIssuePartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "BookIssuePartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<BookIssue>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "bookId": {
            "type": "string"
          },
          "studentId": {
            "type": "string"
          },
          "issueDate": {
            "type": "string",
            "format": "date-time"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "returnDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "fineAmount": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "issuedBy": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<BookIssue>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "Attendance": {
        "title": "Attendance",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "studentId": {
            "type": "string"
          },
          "classId": {
            "type": "string"
          },
          "sectionId": {
            "type": "string"
          },
          "academicYearId": {
            "type": "string"
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          },
          "remarks": {
            "type": "string"
          },
          "markedBy": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "studentId",
          "classId",
          "sectionId",
          "date",
          "status"
        ],
        "additionalProperties": false
      },
      "NewAttendance": {
        "title": "NewAttendance",
        "type": "object",
        "description": "(tsType: Omit<Attendance, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewAttendance', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "studentId": {
            "type": "string"
          },
          "classId": {
            "type": "string"
          },
          "sectionId": {
            "type": "string"
          },
          "academicYearId": {
            "type": "string"
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          },
          "remarks": {
            "type": "string"
          },
          "markedBy": {
            "type": "string"
          }
        },
        "required": [
          "studentId",
          "classId",
          "sectionId",
          "date",
          "status"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Attendance, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "AttendancePartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "AttendancePartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<Attendance>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "studentId": {
            "type": "string"
          },
          "classId": {
            "type": "string"
          },
          "sectionId": {
            "type": "string"
          },
          "academicYearId": {
            "type": "string"
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          },
          "remarks": {
            "type": "string"
          },
          "markedBy": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<Attendance>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "Announcement": {
        "title": "Announcement",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "targetAudience": {
            "type": "string"
          },
          "priority": {
            "type": "string"
          },
          "publishedAt": {
            "type": "string",
            "format": "date-time"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdBy": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "title",
          "content"
        ],
        "additionalProperties": false
      },
      "NewAnnouncement": {
        "title": "NewAnnouncement",
        "type": "object",
        "description": "(tsType: Omit<Announcement, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewAnnouncement', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "title": {
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "targetAudience": {
            "type": "string"
          },
          "priority": {
            "type": "string"
          },
          "publishedAt": {
            "type": "string",
            "format": "date-time"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdBy": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "title",
          "content"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Announcement, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "AnnouncementPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "AnnouncementPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<Announcement>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "title": {
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "targetAudience": {
            "type": "string"
          },
          "priority": {
            "type": "string"
          },
          "publishedAt": {
            "type": "string",
            "format": "date-time"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdBy": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<Announcement>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      },
      "AiProcessingHistory": {
        "title": "AiProcessingHistory",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "operation": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "fileName": {
            "type": "string"
          },
          "mimeType": {
            "type": "string"
          },
          "fileSize": {
            "type": "number"
          },
          "processingTimeMs": {
            "type": "number"
          },
          "errorMessage": {
            "type": "string"
          },
          "inputSummary": {
            "type": "object"
          },
          "resultSummary": {
            "type": "object"
          },
          "resultPayload": {
            "type": "object"
          },
          "relatedExamId": {
            "type": "string"
          },
          "relatedEntityType": {
            "type": "string"
          },
          "relatedEntityId": {
            "type": "string"
          },
          "startedAt": {
            "type": "string",
            "format": "date-time"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "organizationId",
          "userId",
          "operation"
        ],
        "additionalProperties": false
      },
      "AcademicYear": {
        "title": "AcademicYear",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "isCurrent": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "organizationId",
          "name",
          "startDate",
          "endDate"
        ],
        "additionalProperties": false
      },
      "NewAcademicYear": {
        "title": "NewAcademicYear",
        "type": "object",
        "description": "(tsType: Omit<AcademicYear, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>, schemaOptions: { title: 'NewAcademicYear', exclude: [ 'id', 'createdAt', 'updatedAt', 'deletedAt', 'organizationId' ] })",
        "properties": {
          "name": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "isCurrent": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "startDate",
          "endDate"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<AcademicYear, 'id' | 'createdAt' | 'updatedAt' | 'deletedAt' | 'organizationId'>"
      },
      "AcademicYearPartialExcluding_id-organizationId-createdAt-deletedAt_": {
        "title": "AcademicYearPartialExcluding_id-organizationId-createdAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<AcademicYear>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'organizationId', 'createdAt', 'deletedAt' ] })",
        "properties": {
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "name": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "isCurrent": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<AcademicYear>, 'id' | 'organizationId' | 'createdAt' | 'deletedAt'>"
      }
    }
  }
}