{
  "success": true,
  "data": {
    "modules": {
      "ACADEMICS": {
        "label": "ACADEMICS",
        "types": {
          "ACADEMICS": {
            "label": "ACADEMICS",
            "settings": [
              {
                "key": "NUMBER__TIMETABLE_HOURS_IN_A_DAY",
                "label": "NUMBER OF TIMETABLE HOURS IN A DAY",
                "type": null,
                "widget": "input",
                "description": "Number of hours in a single day it is used for room occupancy report",
                "defaultValue": "7"
              },
              {
                "key": "SHOW_PROGRAM_LEVEL_FILTER_IN_MY_TIMETABLE",
                "label": "SHOW PROGRAM LEVEL FILTER IN MY TIMETABLE",
                "type": "boolean",
                "widget": "checkbox",
                "description": "To enable teh program level in my timetable filter",
                "defaultValue": false,
                "possibleValues": [
                  {
                    "value": true,
                    "label": "Enabled"
                  },
                  {
                    "value": false,
                    "label": "Disabled"
                  }
                ]
              },
              {
                "key": "UNLOCK_TIMETABLE",
                "label": "UNLOCK_TIMETABLE",
                "type": "object",
                "widget": "json-editor",
                "description": null,
                "defaultValue": null,
                "fields": [
                  {
                    "key": "HOD",
                    "type": "boolean",
                    "widget": null,
                    "description": "Whether HOD is enabled. he can swap the timetable hours",
                    "defaultValue": true,
                    "possibleValues": [
                      {
                        "value": true,
                        "label": "Enabled"
                      },
                      {
                        "value": false,
                        "label": "Disabled"
                      }
                    ]
                  },
                  {
                    "key": "FACULTY",
                    "type": "boolean",
                    "widget": null,
                    "description": "Whether FACULTY is enabled. he can swap the timetable hours",
                    "defaultValue": false,
                    "possibleValues": [
                      {
                        "value": true,
                        "label": "Enabled"
                      },
                      {
                        "value": false,
                        "label": "Disabled"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          "V4_ATTENDANCE_SETTINGS": {
            "label": "V4 ATTENDANCE SETTINGS",
            "settings": [
              {
                "key": "ATTENDANCE_MARKING_METHOD",
                "label": "Attendance Marking Methods",
                "type": null,
                "widget": "input",
                "description": "You can either choose SESSION_WISE or TIME_TABLE_WISE or WITH_OUT_TIME_TABLE_WISE marking. In session wise method, you can create customized sessions. In time table method, you can only mark the timetable marked hours. In  without time table you can mark attendance no need of timetable configurations",
                "defaultValue": "TIME_TABLE_WISE",
                "possibleValues": [
                  {
                    "label": "Session Wise",
                    "value": "SESSION_WISE",
                    "description": "To enable session wise attendance marking"
                  },
                  {
                    "label": "Time Table Wise",
                    "value": "TIME_TABLE_WISE",
                    "description": "To enable timetable wise attendance marking"
                  },
                  {
                    "label": "With Out Time Table Wise",
                    "value": "WITH_OUT_TIME_TABLE_WISE",
                    "description": "To enable without timetable wise attendance marking"
                  }
                ]
              },
              {
                "key": "ENABLE_COPY_ATTENDANCE",
                "label": "ENABLE COPY ATTENDANCE",
                "type": "boolean",
                "widget": "input",
                "description": "Enable copy marked attendance of other staff",
                "defaultValue": true,
                "possibleValues": [
                  {
                    "value": true,
                    "label": "Enabled"
                  },
                  {
                    "value": false,
                    "label": "Disabled"
                  }
                ]
              }
            ]
          }
        }
      },
      "ASSESSMENT": {
        "label": "ASSESSMENT",
        "types": {
          "ASSESSMENT": {
            "label": "ASSESSMENT",
            "settings": [
              {
                "key": "CUSTOM_EXCEL_ALLOWED_EXTRA_FIELDS",
                "label": "Custom Excel Allowed Extra Fields",
                "type": "object",
                "widget": "json-editor",
                "description": "Which extra system-coded fields staff are allowed to map when importing marks via the custom-format Excel upload. Only fields with isEnabled=true appear as selectable columns in the mapping UI.",
                "defaultValue": "[{\"code\": \"PASS_FAIL_STATUS\", \"label\": \"Pass / Fail Status\", \"isEnabled\": false}, {\"code\": \"YEAR_OF_PASSING\", \"label\": \"Year of Passing\", \"isEnabled\": false}, {\"code\": \"MONTH_OF_PASSING\", \"label\": \"Month of Passing\", \"isEnabled\": false}, {\"code\": \"NO_OF_CHANCES\", \"label\": \"No. of Chances\", \"isEnabled\": false}, {\"code\": \"INTERNAL_MARK\", \"label\": \"Internal Mark\", \"isEnabled\": false}, {\"code\": \"MAX_INTERNAL_MARK\", \"label\": \"Max Internal Mark\", \"isEnabled\": false}]",
                "possibleValues": [
                  {
                    "label": "Pass / Fail Status",
                    "value": "PASS_FAIL_STATUS",
                    "description": "Import a pass/fail status column."
                  },
                  {
                    "label": "Year of Passing",
                    "value": "YEAR_OF_PASSING",
                    "description": "Import a year-of-passing column."
                  },
                  {
                    "label": "Month of Passing",
                    "value": "MONTH_OF_PASSING",
                    "description": "Import a month-of-passing column."
                  },
                  {
                    "label": "No. of Chances",
                    "value": "NO_OF_CHANCES",
                    "description": "Import a number-of-attempts column."
                  },
                  {
                    "label": "Internal Mark",
                    "value": "INTERNAL_MARK",
                    "description": "Import an internal-mark column."
                  },
                  {
                    "label": "Max Internal Mark",
                    "value": "MAX_INTERNAL_MARK",
                    "description": "Import a max-internal-mark column."
                  }
                ]
              }
            ]
          }
        }
      },
      "EXAT": {
        "label": "EXAT",
        "types": {
          "EXAT_NOTIFICATIONS": {
            "label": "EXAT NOTIFICATIONS",
            "settings": [
              {
                "key": "ENABLE_EXAT_NOTIFICATIONS",
                "label": "EXAT NOTIFICATIONS",
                "type": "object",
                "widget": "json-editor",
                "description": null,
                "defaultValue": null,
                "fields": [
                  {
                    "key": "enableEmailNotification",
                    "type": "boolean",
                    "widget": "checkbox",
                    "description": "Master switch for approval and rejection emails; no mail is attempted when disabled.",
                    "defaultValue": true,
                    "possibleValues": [
                      {
                        "value": true,
                        "label": "Enabled"
                      },
                      {
                        "value": false,
                        "label": "Disabled"
                      }
                    ]
                  },
                  {
                    "key": "emailNotificationSettings",
                    "type": null,
                    "widget": null,
                    "description": null,
                    "defaultValue": null,
                    "fields": [
                      {
                        "key": "approvalMail",
                        "type": "boolean",
                        "widget": "checkbox",
                        "description": "Sends a mail to the entry owner when their entry is approved.",
                        "defaultValue": false,
                        "possibleValues": [
                          {
                            "value": true,
                            "label": "Enabled"
                          },
                          {
                            "value": false,
                            "label": "Disabled"
                          }
                        ]
                      },
                      {
                        "key": "rejectionMail",
                        "type": "boolean",
                        "widget": "checkbox",
                        "description": "Sends a mail to the entry owner when their entry is rejected.",
                        "defaultValue": true,
                        "possibleValues": [
                          {
                            "value": true,
                            "label": "Enabled"
                          },
                          {
                            "value": false,
                            "label": "Disabled"
                          }
                        ]
                      },
                      {
                        "key": "approvalMailSubject",
                        "type": "string",
                        "widget": "input",
                        "description": "Subject of the approval mail.",
                        "defaultValue": "Form Approved"
                      },
                      {
                        "key": "approvalMailBody",
                        "type": "string",
                        "widget": "input",
                        "description": "Body of the approval mail. Supports the {{formName}} and {{date}} placeholders.",
                        "defaultValue": "Your submission for the {{formName}} form on {{date}} has been approved"
                      },
                      {
                        "key": "rejectionMailSubject",
                        "type": "string",
                        "widget": "input",
                        "description": "Subject of the rejection mail.",
                        "defaultValue": "Form Rejected"
                      },
                      {
                        "key": "rejectionMailBody",
                        "type": "string",
                        "widget": "input",
                        "description": "Body of the rejection mail. Supports the {{formName}}, {{date}} and {{rejectedReason}} placeholders, where the reason is the one entered when the entry was rejected.",
                        "defaultValue": "Your submission for the {{formName}} form on {{date}} has been rejected due to {{rejectedReason}}."
                      }
                    ]
                  },
                  {
                    "key": "enableSMSNotification",
                    "type": "boolean",
                    "widget": "checkbox",
                    "description": "Master switch for approval and rejection SMS. Stored but not used.",
                    "defaultValue": false,
                    "possibleValues": [
                      {
                        "value": true,
                        "label": "Enabled"
                      },
                      {
                        "value": false,
                        "label": "Disabled"
                      }
                    ]
                  },
                  {
                    "key": "smsNotificationSettings",
                    "type": null,
                    "widget": null,
                    "description": null,
                    "defaultValue": null,
                    "fields": [
                      {
                        "key": "approvalSMS",
                        "type": "boolean",
                        "widget": "checkbox",
                        "description": "Sends an SMS on approval. Stored but not used.",
                        "defaultValue": false,
                        "possibleValues": [
                          {
                            "value": true,
                            "label": "Enabled"
                          },
                          {
                            "value": false,
                            "label": "Disabled"
                          }
                        ]
                      },
                      {
                        "key": "rejectionSMS",
                        "type": "boolean",
                        "widget": "checkbox",
                        "description": "Sends an SMS on rejection. Stored but not used.",
                        "defaultValue": false,
                        "possibleValues": [
                          {
                            "value": true,
                            "label": "Enabled"
                          },
                          {
                            "value": false,
                            "label": "Disabled"
                          }
                        ]
                      },
                      {
                        "key": "approvalSMSSubject",
                        "type": "string",
                        "widget": "input",
                        "description": "Subject of the approval SMS. Stored but not used.",
                        "defaultValue": "Form Approved"
                      },
                      {
                        "key": "approvalSMSBody",
                        "type": "string",
                        "widget": "input",
                        "description": "Body of the approval SMS. Stored but not used.",
                        "defaultValue": "Your submission for the {{formName}} form on {{date}} has been approved"
                      },
                      {
                        "key": "rejectionSMSSubject",
                        "type": "string",
                        "widget": "input",
                        "description": "Subject of the rejection SMS. Stored but not used.",
                        "defaultValue": "Form Rejected"
                      },
                      {
                        "key": "rejectionSMSBody",
                        "type": "string",
                        "widget": "input",
                        "description": "Body of the rejection SMS. Stored but not used.",
                        "defaultValue": "Your submission for the {{formName}} form on {{date}} has been rejected due to {{rejectedReason}}."
                      }
                    ]
                  }
                ]
              }
            ]
          }
        }
      },
      "FEE_MODULE": {
        "label": "FEE MODULE",
        "types": {
          "FEE_MODULE": {
            "label": "FEE MODULE",
            "settings": [
              {
                "key": "COLLECT_FEE_TABLE_FIELDS",
                "label": "Collect fee table student fields",
                "type": "array",
                "widget": "json-editor",
                "description": "Defines which columns the staff collect-fee student table shows, in order. Also used indirectly by the KPI dashboard to detect whether concession tracking is configured. JSON array of {fieldName, nameToShow}; order = column order in the collect-fee table. CAUTION: the array must contain BOTH \"concessionTotal\" AND \"concessionAddedFees\" or the KPI dashboard turns its concession figures off.",
                "defaultValue": "[\n  {\n    \"fieldName\": \"applicationNo\",\n    \"nameToShow\": \"Appln No\"\n  },\n  {\n    \"fieldName\": \"admissionNumber\",\n    \"nameToShow\": \"Admission No\"\n  },\n  {\n    \"fieldName\": \"regNo\",\n    \"nameToShow\": \"Reg No\"\n  },\n  {\n    \"fieldName\": \"rollNumber\",\n    \"nameToShow\": \"Roll No\"\n  },\n  {\n    \"fieldName\": \"studentName\",\n    \"nameToShow\": \"Name\"\n  },\n  {\n    \"fieldName\": \"studentEmail\",\n    \"nameToShow\": \"Email\"\n  },\n  {\n    \"fieldName\": \"studentPhone\",\n    \"nameToShow\": \"Phone Number\"\n  },\n  {\n    \"fieldName\": \"batchName\",\n    \"nameToShow\": \"Batch\"\n  },\n  {\n    \"fieldName\": \"semesterName\",\n    \"nameToShow\": \"Sem\"\n  },\n  {\n    \"fieldName\":\"remarks\",\n    \"nameToShow\":\"Current Remarks\"\n  },\n  {\n    \"fieldName\": \"concessionAddedFees\",\n    \"nameToShow\": \"Actual Fees\"\n  },\n  {\n    \"fieldName\": \"totalFeeHeadAmount\",\n    \"nameToShow\": \"Payable Amount\"\n  },\n  {\n    \"fieldName\": \"concessionTotal\",\n    \"nameToShow\": \"Total Concession\"\n  },\n  {\n    \"fieldName\": \"totalRemittedFee\",\n    \"nameToShow\": \"Remitted Fee\"\n  },\n  {\n    \"fieldName\": \"totalFineHeadAmount\",\n    \"nameToShow\": \"Total Fine\"\n  },\n  {\n    \"fieldName\": \"totalRemittedFine\",\n    \"nameToShow\": \"Fine Remitted\"\n  },\n  {\n    \"fieldName\": \"totalBalance\",\n    \"nameToShow\": \"Balance\"\n  }\n]"
              },
              {
                "key": "FEE_CATEGORY_CONFIGURATION",
                "label": "FEE CATEGORY CONFIGURATION",
                "type": "object",
                "widget": "json-editor",
                "description": "Defines non-academic fee categories (e.g. Hostel) so the student portal can group fees into category tiles and filter fee heads by category. Fee heads whose account is not in any category are treated as the academic category. JSON array, one object per non-academic fee category: [] — no categories, everything is academic.",
                "defaultValue": "[{\"code\":\"hostel\",\"name\":\"Hostel Fee\",\"icon\":\"fa fa-bed\",\"color\":\"#e67e22\",\"secondaryColor\":\"#f093fb\",\"badgeText\":\"Hostel\",\"accountIds\":[5]},\n{\"code\":\"transport\",\"name\":\"Transport Fee\",\"icon\":\"fa fa-bus\",\"color\":\"#27ae60\",\"secondaryColor\":\"#52be80\",\"badgeText\":\"Transport\",\"accountIds\":[6,9]}]"
              }
            ]
          },
          "STUDENT_FEES": {
            "label": "STUDENT FEES",
            "settings": [
              {
                "key": "CHALLAN_PREFIX",
                "label": "CHALLAN PREFIX",
                "type": "string",
                "widget": "input",
                "description": "Prefix prepended to the challan number when a challan is generated (staff side and student side). Free text placed before the challan number. No {{year}} support.",
                "defaultValue": "ASIET"
              },
              {
                "key": "STUDENT_PAY_TABLE_FIELDS_ENABLED",
                "label": "Showable fields at student side payment",
                "type": "array",
                "widget": "json-editor",
                "description": "Whitelist of columns shown in the student-side fee payment table. Decoded and returned in the fee summary payload for non-staff users. JSON array of column codes shown in the student fee table, in order.",
                "defaultValue": "[\"YEAR\", \"TOTAL_FEES\", \"TOTAL_CONCESSION\", \"REMITTED_FEE\", \"PENDING_FINE\", \"FINE_REMITTED\", \"BALANCE_FEE\"]"
              }
            ]
          }
        }
      },
      "HOSTEL_MODULE": {
        "label": "HOSTEL MODULE",
        "types": {
          "HOSTEL_ADMISSION": {
            "label": "HOSTEL ADMISSION",
            "settings": [
              {
                "key": "HOSTEL_ADMIT_STUDENT_GENERAL_SETTINGS",
                "label": "Hostel Admit Settings",
                "type": "object",
                "widget": "json-editor",
                "description": null,
                "defaultValue": null,
                "fields": [
                  {
                    "key": "enableAdmissionNumberFilter",
                    "type": "boolean",
                    "widget": "checkbox",
                    "description": "Settings helps to alter the search option in single allocation page",
                    "defaultValue": false,
                    "possibleValues": [
                      {
                        "value": true,
                        "label": "Enable"
                      },
                      {
                        "value": false,
                        "label": "Disable"
                      }
                    ]
                  },
                  {
                    "key": "enableHostelWaitingListAdmission",
                    "type": "boolean",
                    "widget": "checkbox",
                    "description": "Settings helps to enable a reservation (waiting) seat for each room, in addition to the confirmed seat, so hostel admissions can continue beyond the room's normal confirmed capacity",
                    "defaultValue": false,
                    "possibleValues": [
                      {
                        "value": true,
                        "label": "Enable"
                      },
                      {
                        "value": false,
                        "label": "Disable"
                      }
                    ]
                  },
                  {
                    "key": "enableDirectAdmissionToWaitingList",
                    "type": "boolean",
                    "widget": "checkbox",
                    "description": "Settings helps to decide whether new admissions go directly to the reservation seat of a room instead of the confirmed seat. Only takes effect when the Enable Reservation Slot setting (enableHostelWaitingListAdmission) is also enabled",
                    "defaultValue": false,
                    "possibleValues": [
                      {
                        "value": true,
                        "label": "Enable"
                      },
                      {
                        "value": false,
                        "label": "Disable"
                      }
                    ]
                  },
                  {
                    "key": "validateFromDateAndEndateForAdmitting",
                    "type": "boolean",
                    "widget": "checkbox",
                    "description": "Settings helps to validate the accommodation From Date and End Date before admitting a second student to the reservation seat of a room that already has a resident in the confirmed seat",
                    "defaultValue": false,
                    "possibleValues": [
                      {
                        "value": true,
                        "label": "Enable"
                      },
                      {
                        "value": false,
                        "label": "Disable"
                      }
                    ]
                  },
                  {
                    "key": "enableAutoAdmitFromFormSubmission",
                    "type": "boolean",
                    "widget": "checkbox",
                    "description": "Settings helps to allow students to self-admit to the reservation seat of a hostel room from the student portal by choosing a room preference and paying the hostel fee, instead of waiting for staff to admit them manually",
                    "defaultValue": false,
                    "possibleValues": [
                      {
                        "value": true,
                        "label": "Enable"
                      },
                      {
                        "value": false,
                        "label": "Disable"
                      }
                    ]
                  }
                ]
              }
            ]
          }
        }
      },
      "OBE": {
        "label": "OBE",
        "types": {
          "OBE": {
            "label": "OBE",
            "settings": [
              {
                "key": "OBE_INTERMEDIATE_MARK_BASED_CALCULATION",
                "label": "OBE Intermediate Mark Based Calculation",
                "type": "boolean",
                "widget": "dropdown",
                "description": "Controls the calculation method used at intermediate nodes of the CO/PO attainment tree whose children are all leaf nodes (e.g. a CO node whose children are individual assessment-question nodes).",
                "defaultValue": false,
                "possibleValues": [
                  {
                    "value": true,
                    "label": "Enabled"
                  },
                  {
                    "value": false,
                    "label": "Disabled"
                  }
                ]
              }
            ]
          }
        }
      }
    }
  },
  "message": null
}
