{
  "id": "OFFICE_STAFF",
  "title": "Office Staff EMIS Registration Form",
  "description": "Complete all required sections carefully. This form should be filled by the office staff individually or by an authorised officer on the staff’s behalf.",
  "version": "1.0",
  "submit_label": "SAVE",
  "sections": [
    {
      "id": "sec_identification",
      "title": "Office Identification",
      "items": [
        {
          "id": "school_code",
          "label": "OFFICE CODE",
          "type": "text",
          "required": true,
          "placeholder": "Enter EMIS Office code"
        },
        {
          "id": "teacher_code",
          "label": "STAFF EMIS CODE",
          "type": "text",
          "required": true,
          "placeholder": "e.g. AB1234567890",
          "validation": {
            "pattern": "^[A-Z]{2}[0-9]{10}$",
            "message": "Teacher Code must be 2 uppercase letters followed by 10 digits."
          }
        }
      ]
    },
    {
      "id": "sec_personal_details",
      "title": "Personal and Contact Details",
      "items": [
        {
          "id": "management_level",
          "label": "MANAGEMENT LEVEL",
          "type": "select",
          "required": true,
          "options": [
            "District",
            "Regional",
            "National"
          ]
        },
        {
          "id": "education_unit",
          "label": "EDUCATION UNIT",
          "type": "select",
          "required": true,
          "options": [
            "Administration",
            "Accounts",
            "Audit",
            "EMIS",
            "Examinations",
            "Finance",
            "HR",
            "ICT",
            "Monitoring and Evaluation",
            "Planning",
            "Procurement",
            "Statistics",
            "Supervision",
            "Other"
          ]
        },
        {
          "id": "teaching_status",
          "label": "TEACHING STATUS",
          "type": "select",
          "required": true,
          "options": [
            "Teaching",
            "Non-Teaching"
          ]
        },
        {
          "id": "first_name",
          "label": "FIRST NAME",
          "type": "text",
          "required": true,
          "placeholder": "Enter first name",
          "validation": {
            "pattern": "^[A-Za-z\\s\\-']{3,}$",
            "message": "First Name must be at least 3 characters and contain letters only."
          }
        },
        {
          "id": "surname",
          "label": "SURNAME",
          "type": "text",
          "required": true,
          "placeholder": "Enter surname",
          "validation": {
            "pattern": "^[A-Za-z\\s\\-']{3,}$",
            "message": "Surname must be at least 3 characters and contain letters only."
          }
        },
        {
          "id": "other_names",
          "label": "OTHER NAME(S)",
          "type": "text",
          "required": false,
          "placeholder": "Enter other name(s)",
          "validation": {
            "pattern": "^[A-Za-z\\s\\-']*$",
            "message": "Other Name(s) must contain letters only."
          }
        },
        {
          "id": "date_of_birth",
          "label": "DATE OF BIRTH",
          "type": "date",
          "required": true
        },
        {
          "id": "sex",
          "label": "SEX",
          "type": "select",
          "required": true,
          "options": [
            "Female",
            "Male"
          ]
        },
        {
          "id": "marital_status",
          "label": "MARITAL STATUS",
          "type": "select",
          "required": true,
          "options": [
            "Single",
            "Married",
            "Widowed",
            "Divorced",
            "Separated"
          ]
        },
        {
          "id": "telephone_no",
          "label": "TELEPHONE NO.",
          "type": "tel",
          "required": true,
          "placeholder": "e.g. 0241234567",
          "validation": {
            "pattern": "^0[0-9]{9}$",
            "message": "Telephone Number must be 10 digits and start with 0."
          }
        },
        {
          "id": "email",
          "label": "EMAIL",
          "type": "email",
          "required": false,
          "placeholder": "e.g. name@example.com",
          "validation": {
            "pattern": "^[A-Za-z0-9._%+\\-]+@[A-Za-z0-9.\\-]+\\.[A-Za-z]{2,}$",
            "message": "Please enter a valid email address."
          }
        },
        {
          "id": "emergency_contact",
          "label": "EMERGENCY CONTACT",
          "type": "tel",
          "required": true,
          "placeholder": "e.g. 0241234567",
          "validation": {
            "pattern": "^0[0-9]{9}$",
            "message": "Emergency Contact must be 10 digits and start with 0."
          }
        }
      ]
    },
    {
      "id": "sec_official_details",
      "title": "Official and Rank Details",
      "items": [
        {
          "id": "ghana_card_no",
          "label": "GHANA CARD NO.",
          "type": "text",
          "required": true,
          "placeholder": "e.g. GHA-123456789-1",
          "validation": {
            "pattern": "^GHA-[0-9]{9}-[0-9]$",
            "message": "Ghana Card Number must be in the format GHA-123456789-1."
          }
        },
        {
          "id": "staff_number",
          "label": "STAFF NUMBER",
          "type": "text",
          "required": true,
          "placeholder": "4 to 10 digits",
          "validation": {
            "pattern": "^[0-9]{4,10}$",
            "message": "Staff Number must be between 4 and 10 digits."
          }
        },
        {
          "id": "license_number",
          "label": "LICENSE NUMBER",
          "type": "text",
          "required": true,
          "placeholder": "e.g. PT/123456/2024 or GTLE/123456/2024",
          "validation": {
            "pattern": "^(PT\\/[0-9]{6}\\/[0-9]{4}|GTLE\\/[0-9]{6}\\/[0-9]{4})$",
            "message": "Use PT/123456/2024 or GTLE/123456/2024 format."
          }
        },
        {
          "id": "registered_no",
          "label": "REGISTERED NO.",
          "type": "text",
          "required": true,
          "placeholder": "Enter registered number"
        },
        {
          "id": "first_appoint",
          "label": "FIRST APPOINT.",
          "type": "date",
          "required": true
        },
        {
          "id": "posted_date",
          "label": "POSTED DATE",
          "type": "date",
          "required": true
        },
        {
          "id": "current_rank",
          "label": "CURRENT RANK",
          "type": "select",
          "required": true,
          "options": [
            "ASST. DIRECTOR I",
            "ASST. DIRECTOR II",
            "DEPUTY DIRECTOR",
            "DIRECTOR I",
            "DIRECTOR II",
            "PRINCIPAL SUPT.",
            "SNR SUPT. I",
            "SNR SUPT. II",
            "SUPT. I",
            "SUPT. II",
            "Other"
          ],
          "show_when": [
            {
              "field": "teaching_status",
              "value": "Teaching"
            }
          ]
        },
        {
          "id": "non_teaching_rank",
          "label": "NON-TEACHING RANK",
          "type": "select",
          "required": true,
          "options": [
            "Assistant Internal Auditor",
            "Chief Internal Auditor",
            "Chief Librarian",
            "Clerk II",
            "Domestic Bursar",
            "Driver Grade I",
            "Driver Grade II",
            "Internal Auditor",
            "Librarian",
            "Principal Admin. Officer",
            "Private Secretary",
            "Senior Clerk",
            "Supply Officer",
            "Other"
          ],
          "show_when": [
            {
              "field": "teaching_status",
              "value": "Non-Teaching"
            }
          ]
        },
        {
          "id": "date_current_rank",
          "label": "DATE CURRENT RANK",
          "type": "date",
          "required": true
        },
        {
          "id": "salary_paid_by",
          "label": "SALARY PAID BY",
          "type": "select",
          "required": true,
          "options": [
            "GOG",
            "MMDA'S",
            "PRIVATE",
            "OTHER"
          ]
        },
        {
          "id": "schedules",
          "label": "SCHEDULES",
          "type": "select",
          "required": true,
          "options": [
            "Administrator",
            "Accountant",
            "Audit",
            "Budget Officer",
            "Data Entry Officer",
            "Director",
            "EMIS",
            "HR",
            "ICT Coordinator",
            "Planning Officer",
            "PRO",
            "Statistics Officer",
            "Training Officer",
            "Typist",
            "Welfare Officer",
            "Other"
          ]
        }
      ]
    },
    {
      "id": "sec_banking_details",
      "title": "Banking Details",
      "items": [
        {
          "id": "bank_name",
          "label": "BANK NAME",
          "type": "text",
          "required": true,
          "placeholder": "Enter bank name",
          "validation": {
            "pattern": "^[A-Za-z0-9\\s\\-']{3,}$",
            "message": "Bank Name must be at least 3 characters."
          }
        },
        {
          "id": "bank_branch",
          "label": "BANK BRANCH",
          "type": "text",
          "required": true,
          "placeholder": "Enter bank branch",
          "validation": {
            "pattern": "^[A-Za-z0-9\\s\\-']{3,}$",
            "message": "Bank Branch must be at least 3 characters."
          }
        },
        {
          "id": "account_no",
          "label": "ACCOUNT NO.",
          "type": "text",
          "required": true,
          "placeholder": "Enter account number"
        },
        {
          "id": "ssnit_no",
          "label": "SSNIT NO.",
          "type": "text",
          "required": true,
          "placeholder": "13 to 16 characters",
          "validation": {
            "pattern": "^[A-Za-z0-9]{13,16}$",
            "message": "SSNIT Number must be between 13 and 16 characters."
          }
        },
        {
          "id": "disability",
          "label": "DISABILITY",
          "type": "select",
          "required": true,
          "options": [
            "Yes",
            "No"
          ]
        },
        {
          "id": "disability_type",
          "label": "DISABILITY TYPE",
          "type": "multiselect",
          "required": true,
          "options": [
            "ADHD (Attention Deficit Hyperactivity Disorder)",
            "Albinism",
            "Autism",
            "Autoimmune Disease",
            "Bipolar Disorder",
            "Burns Survivors",
            "Cerebral Palsy",
            "Chronic Health Conditions",
            "Communication Disabilities",
            "Deaf",
            "Developmental Disabilities",
            "Down Syndrome",
            "Dumb",
            "Epilepsy",
            "Hearing Impairment",
            "Intellectual Disabilities",
            "Leprosy",
            "Little Persons",
            "Mental Disability",
            "Multiple Disabilities",
            "Osteogenesis Imperfecta (Brittle Bones)",
            "Physical Disabilities",
            "Psychological Disabilities",
            "Schizophrenia",
            "Seizures",
            "Severe Kyphosis",
            "Specific Learning Disabilities",
            "Spina Bifida",
            "Turner Syndrome",
            "Visual Impairment"
          ],
          "show_when": [
            {
              "field": "disability",
              "value": "Yes"
            }
          ]
        }
      ]
    }
  ]
}