from typing import TypedDict class FormFields(TypedDict, total=True): start_date: str end_date: str signed_by: str signature_date: str community: str email: str unit_no: str contact_number: str building_name: str contractor_name: str contractor_email: str contractor_contact_number: str occupant_name: str civil: str electrical_AC: str furniture_delivery: str handyman: str pest_control: str sail_shade: str wardrobes: str wooden_flooring: str plumbing_sanitary: str safety_systems: str soft_landscaping: str balcony_tiles: str bathroom_toilet_refurbish: str staircase_railing: str storage_box: str tiling_works: str doors_door_frames: str gypsum_ceiling: str kitchen_refurbish: str lights_and_sockets: str painting_wallpapering: str seating_area_barbecuing_fountain: str other_work_checkbox: str owner: str tenant: str signature: str minor_work: str class MinorWorkForm: def __init__(self): self.start_date: str self.end_date: str self.signed_by: str self.signature_date: str self.community: str self.email: str self.unit_no: str self.contact_number: str self.building_name: str self.contractor_name: str self.contractor_email: str self.contractor_contact_number: str self.occupant_name: str self.civil: bool self.electrical_AC: bool self.furniture_delivery: bool self.handyman: bool self.pest_control: bool self.sail_shade: bool self.wardrobes: bool self.wooden_flooring: bool self.plumbing_sanitary: bool self.safety_systems: bool self.soft_landscaping: bool self.balcony_tiles: bool self.bathroom_toilet_refurbish: bool self.staircase_railing: bool self.storage_box: bool self.tiling_works: bool self.doors_door_frames: bool self.gypsum_ceiling: bool self.kitchen_refurbish: bool self.lights_and_sockets: bool self.painting_wallpapering: bool self.seating_area_barbecuing_fountain: bool self.other_work_checkbox: bool self.owner: bool self.tenant: bool self.signature: str class ModelRoles: def __init__(self, system_role, user_role, ai_role): self.system_role = system_role self.user_role = user_role self.ai_role = ai_role form_fields_map: FormFields = {"start_date": "From", "end_date": "to", "signed_by": "name-10", "signature_date": "From--1", "community": "Name-2", "email": "Name-3", "unit_no": "Name-4", "contact_number": "Name-5", "building_name": "Name-6", "contractor_name": "Name-7", "contractor_email": "name-8", "contractor_contact_number": "name-9", "occupant_name": "name-1", "other_work": "name-19", "civil": "3", "electrical_AC": "10", "furniture_delivery": "14", "handyman": "18", "pest_control": "21", "sail_shade": "12", "wardrobes": "16", "wooden_flooring": "24", "plumbing_sanitary": "4", "safety systems": "4", "soft_landscaping": "9", "balcony_tiles": "13", "bathroom_toilet_refurbish": "20", "staircase_railing": "17", "storage_box": "11", "tiling_works": "15", "doors_door_frames": "6", "gypsum_ceiling": "22", "kitchen_refurbish": "7", "lights_and_sockets": "23", "painting_wallpapering": "19", "seating_area_barbecuing_fountain": "8", "other_work_checkbox": "69", "owner": "Check Box4", "tenant": "Check Box3", "signature": "Signature2", "minor_work": "1"}