{
  "page_ir": {
    "page_id": "job_detail",
    "page_goal": "Comprehensive job detail page showing all information for a single job including metadata, description, checklists, comments, attachments, time logs, history, and sub-jobs with full action capabilities",
    "style": {
      "tone": "professional",
      "theme": "light",
      "density": "comfortable",
      "color_intent": "informational with status-driven color coding"
    },
    "accessibility": {
      "required_labels": [
        "job_title",
        "status_badge",
        "priority_badge",
        "comment_input",
        "file_upload",
        "time_log_form"
      ],
      "skip_navigation": true,
      "focus_management": true,
      "announce_changes": []
    },
    "responsive": {
      "breakpoints": {
        "sm": 576,
        "md": 768,
        "lg": 992,
        "xl": 1200
      },
      "collapse_rules": [
        "left_panel stacks above right_panel on small screens"
      ],
      "hidden_on_small": [
        "history_tab"
      ],
      "stack_on_small": []
    },
    "constraints": [
      "Route param :jobId required",
      "Must load job details on mount"
    ],
    "seo_title": null,
    "seo_description": null
  },
  "data_ir": {
    "types": {},
    "state": {
      "jobDetail": {
        "type": "object",
        "initial": null,
        "required": true,
        "constraints": {},
        "item_type": null
      },
      "comments": {
        "type": "array",
        "initial": [],
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "attachments": {
        "type": "array",
        "initial": [],
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "timeLogs": {
        "type": "array",
        "initial": [],
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "checklists": {
        "type": "array",
        "initial": [],
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "checklistItems": {
        "type": "array",
        "initial": [],
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "jobHistory": {
        "type": "array",
        "initial": [],
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "subJobs": {
        "type": "array",
        "initial": [],
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "activeTab": {
        "type": "string",
        "initial": "description",
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "editModalVisible": {
        "type": "boolean",
        "initial": false,
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "assignModalVisible": {
        "type": "boolean",
        "initial": false,
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "cancelModalVisible": {
        "type": "boolean",
        "initial": false,
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "reopenModalVisible": {
        "type": "boolean",
        "initial": false,
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "timeLogModalVisible": {
        "type": "boolean",
        "initial": false,
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "subJobModalVisible": {
        "type": "boolean",
        "initial": false,
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "imagePreviewVisible": {
        "type": "boolean",
        "initial": false,
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "imagePreviewUrl": {
        "type": "string",
        "initial": "",
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "tagPopoverVisible": {
        "type": "boolean",
        "initial": false,
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "loading": {
        "type": "boolean",
        "initial": true,
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "activeTimerLogId": {
        "type": "string",
        "initial": null,
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "users": {
        "type": "array",
        "initial": [],
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "availableTags": {
        "type": "array",
        "initial": [],
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "jobStatuses": {
        "type": "array",
        "initial": [],
        "required": false,
        "constraints": {},
        "item_type": null
      }
    },
    "derived": {
      "totalTimeLogged": {
        "type": "number",
        "expr": "timeLogs.reduce((sum, log) => sum + (log.duration_minutes || 0), 0)",
        "deps": []
      },
      "isOverdue": {
        "type": "boolean",
        "expr": "jobDetail && jobDetail.due_date && new Date(jobDetail.due_date) < new Date() && jobDetail.job_status?.name !== 'Completed'",
        "deps": []
      }
    }
  },
  "data_fetch_ir": {
    "endpoints": {
      "6ad9d38e36f6406f9c673d045b0fbb4c": {
        "endpoint_id": "6ad9d38e36f6406f9c673d045b0fbb4c",
        "module": "Jobs",
        "endpoint": "/jobs/{job_id}/details",
        "method": "GET",
        "path_params": {
          "job_id": "$route.jobId"
        },
        "query_params": {},
        "body": null,
        "fields": [
          "id",
          "title",
          "description",
          "job_type_id",
          "job_status_id",
          "job_priority_id",
          "created_by_user_id",
          "assigned_to_user_id",
          "department_id",
          "team_id",
          "parent_job_id",
          "due_date",
          "started_at",
          "completed_at",
          "estimated_hours",
          "created_at",
          "updated_at",
          "job_type",
          "job_status",
          "job_priority",
          "created_by_user",
          "assigned_to_user",
          "department",
          "team",
          "parent_job",
          "comments",
          "attachments",
          "job_history",
          "time_logs",
          "job_tags",
          "checklists"
        ],
        "response_target": "jobDetail",
        "response_transform": null,
        "trigger": "on_mount",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "e058daf530f84a4cba0a3cdd487fe8a5": {
        "endpoint_id": "e058daf530f84a4cba0a3cdd487fe8a5",
        "module": "Jobs",
        "endpoint": "/jobs/{job_id}/comments",
        "method": "GET",
        "path_params": {
          "job_id": "$route.jobId"
        },
        "query_params": {
          "limit": 50,
          "offset": 0
        },
        "body": null,
        "fields": [
          "id",
          "job_id",
          "user_id",
          "content",
          "created_at",
          "updated_at"
        ],
        "response_target": "comments",
        "response_transform": null,
        "trigger": "on_mount",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "eaf4af5453bf4316bd1d8bfd2e9740db": {
        "endpoint_id": "eaf4af5453bf4316bd1d8bfd2e9740db",
        "module": "Jobs",
        "endpoint": "/jobs/{job_id}/attachments",
        "method": "GET",
        "path_params": {
          "job_id": "$route.jobId"
        },
        "query_params": {
          "limit": 50,
          "offset": 0
        },
        "body": null,
        "fields": [
          "id",
          "job_id",
          "uploaded_by_user_id",
          "file_name",
          "file_path",
          "file_type",
          "file_size",
          "created_at",
          "updated_at"
        ],
        "response_target": "attachments",
        "response_transform": null,
        "trigger": "on_mount",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "70cb3d0177f140d4b1bb58c1733417dc": {
        "endpoint_id": "70cb3d0177f140d4b1bb58c1733417dc",
        "module": "Time Logs",
        "endpoint": "/time-logs/",
        "method": "GET",
        "path_params": {},
        "query_params": {
          "job_id": "$route.jobId",
          "limit": 50,
          "offset": 0
        },
        "body": null,
        "fields": [
          "id",
          "job_id",
          "user_id",
          "start_time",
          "end_time",
          "duration_minutes",
          "notes",
          "created_at",
          "updated_at"
        ],
        "response_target": "timeLogs",
        "response_transform": null,
        "trigger": "on_mount",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "9095a7873e874b8692a4b1b944b0849a": {
        "endpoint_id": "9095a7873e874b8692a4b1b944b0849a",
        "module": "Checklists",
        "endpoint": "/checklists/",
        "method": "GET",
        "path_params": {},
        "query_params": {
          "job_id": "$route.jobId",
          "limit": 50,
          "offset": 0
        },
        "body": null,
        "fields": [
          "id",
          "job_id",
          "title",
          "description",
          "display_order",
          "created_at",
          "updated_at"
        ],
        "response_target": "checklists",
        "response_transform": null,
        "trigger": "on_mount",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "968a06d311e9437c8b9ff8ec4361c249": {
        "endpoint_id": "968a06d311e9437c8b9ff8ec4361c249",
        "module": "Checklists",
        "endpoint": "/checklists/items",
        "method": "GET",
        "path_params": {},
        "query_params": {
          "limit": 100,
          "offset": 0
        },
        "body": null,
        "fields": [
          "id",
          "checklist_id",
          "description",
          "is_completed",
          "assigned_to_user_id",
          "display_order",
          "completed_at",
          "created_at",
          "updated_at"
        ],
        "response_target": "checklistItems",
        "response_transform": null,
        "trigger": "on_mount",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "d15e8b5d7550497e9c1ec820da120e5b": {
        "endpoint_id": "d15e8b5d7550497e9c1ec820da120e5b",
        "module": "Jobs",
        "endpoint": "/jobs/{job_id}/history",
        "method": "GET",
        "path_params": {
          "job_id": "$route.jobId"
        },
        "query_params": {
          "limit": 50,
          "offset": 0
        },
        "body": null,
        "fields": [
          "id",
          "job_id",
          "user_id",
          "action_type",
          "field_name",
          "old_value",
          "new_value",
          "created_at",
          "updated_at"
        ],
        "response_target": "jobHistory",
        "response_transform": null,
        "trigger": "on_mount",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "390980eb9c27409a943cd5f648dcf421": {
        "endpoint_id": "390980eb9c27409a943cd5f648dcf421",
        "module": "Jobs",
        "endpoint": "/jobs/",
        "method": "GET",
        "path_params": {},
        "query_params": {
          "limit": 20,
          "offset": 0
        },
        "body": null,
        "fields": [
          "id",
          "title",
          "job_status_id",
          "job_priority_id",
          "assigned_to_user_id",
          "parent_job_id",
          "created_at"
        ],
        "response_target": "subJobs",
        "response_transform": null,
        "trigger": "on_mount",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "323e105d491c4ad6918d3e2373c37a59": {
        "endpoint_id": "323e105d491c4ad6918d3e2373c37a59",
        "module": "Users",
        "endpoint": "/users/",
        "method": "GET",
        "path_params": {},
        "query_params": {
          "limit": 100,
          "offset": 0,
          "is_active": true
        },
        "body": null,
        "fields": [
          "id",
          "first_name",
          "last_name",
          "email",
          "role",
          "department_id"
        ],
        "response_target": "users",
        "response_transform": null,
        "trigger": "on_mount",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "b6a0c021b38745a480942a1f5c8199d5": {
        "endpoint_id": "b6a0c021b38745a480942a1f5c8199d5",
        "module": "Job Configuration",
        "endpoint": "/job-configuration/tags",
        "method": "GET",
        "path_params": {},
        "query_params": {
          "limit": 100,
          "offset": 0
        },
        "body": null,
        "fields": [
          "id",
          "name",
          "color",
          "usage_count"
        ],
        "response_target": "availableTags",
        "response_transform": null,
        "trigger": "on_mount",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "dcad1e1af342463f83c4914334c1a5e9": {
        "endpoint_id": "dcad1e1af342463f83c4914334c1a5e9",
        "module": "Job Configuration",
        "endpoint": "/job-configuration/job-statuses",
        "method": "GET",
        "path_params": {},
        "query_params": {
          "limit": 50,
          "offset": 0,
          "is_active": true
        },
        "body": null,
        "fields": [
          "id",
          "name",
          "description",
          "display_order",
          "is_active"
        ],
        "response_target": "jobStatuses",
        "response_transform": null,
        "trigger": "on_mount",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "d410330de33f41cabafe37f81680d454": {
        "endpoint_id": "d410330de33f41cabafe37f81680d454",
        "module": "Jobs",
        "endpoint": "/jobs/{job_id}",
        "method": "PATCH",
        "path_params": {
          "job_id": "$route.jobId"
        },
        "query_params": {},
        "body": {},
        "fields": [
          "id",
          "title",
          "description",
          "job_type_id",
          "job_status_id",
          "job_priority_id",
          "assigned_to_user_id",
          "department_id",
          "team_id",
          "due_date",
          "estimated_hours"
        ],
        "response_target": "jobDetail",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "457f3198979e4832a02563d752f51cc0": {
        "endpoint_id": "457f3198979e4832a02563d752f51cc0",
        "module": "Jobs",
        "endpoint": "/jobs/{job_id}/assign",
        "method": "POST",
        "path_params": {
          "job_id": "$route.jobId"
        },
        "query_params": {},
        "body": {
          "assigned_to_user_id": "$formValues.assigned_to_user_id"
        },
        "fields": [
          "id",
          "assigned_to_user_id"
        ],
        "response_target": "jobDetail",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "b70b3e806993486ebdb2d454fecbdc47": {
        "endpoint_id": "b70b3e806993486ebdb2d454fecbdc47",
        "module": "Jobs",
        "endpoint": "/jobs/{job_id}/reassign",
        "method": "POST",
        "path_params": {
          "job_id": "$route.jobId"
        },
        "query_params": {},
        "body": {
          "assigned_to_user_id": "$formValues.assigned_to_user_id"
        },
        "fields": [
          "id",
          "assigned_to_user_id"
        ],
        "response_target": "jobDetail",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "82984a7fd74c4b0cbe70dbe7b63f2db9": {
        "endpoint_id": "82984a7fd74c4b0cbe70dbe7b63f2db9",
        "module": "Jobs",
        "endpoint": "/jobs/{job_id}/status",
        "method": "POST",
        "path_params": {
          "job_id": "$route.jobId"
        },
        "query_params": {},
        "body": {
          "job_status_id": "$formValues.job_status_id"
        },
        "fields": [
          "id",
          "job_status_id"
        ],
        "response_target": "jobDetail",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "1a44d4add88d40d3a4ecf79b7665f16d": {
        "endpoint_id": "1a44d4add88d40d3a4ecf79b7665f16d",
        "module": "Jobs",
        "endpoint": "/jobs/{job_id}/cancel",
        "method": "POST",
        "path_params": {
          "job_id": "$route.jobId"
        },
        "query_params": {},
        "body": null,
        "fields": [
          "id",
          "job_status_id"
        ],
        "response_target": "jobDetail",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "b78196587bb94b23bca7034683dbcb2a": {
        "endpoint_id": "b78196587bb94b23bca7034683dbcb2a",
        "module": "Jobs",
        "endpoint": "/jobs/{job_id}/reopen",
        "method": "POST",
        "path_params": {
          "job_id": "$route.jobId"
        },
        "query_params": {},
        "body": null,
        "fields": [
          "id",
          "job_status_id"
        ],
        "response_target": "jobDetail",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "c2fb5e14755c4909bd42c0d5db4a6f92": {
        "endpoint_id": "c2fb5e14755c4909bd42c0d5db4a6f92",
        "module": "Jobs",
        "endpoint": "/jobs/{job_id}/comments",
        "method": "POST",
        "path_params": {
          "job_id": "$route.jobId"
        },
        "query_params": {},
        "body": {
          "job_id": "$route.jobId",
          "content": "$formValues.content",
          "user_id": "appContext.currentUser.id"
        },
        "fields": [
          "id",
          "job_id",
          "user_id",
          "content",
          "created_at"
        ],
        "response_target": "comments",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "f2d2b6de880d43249c3b25dfc3f637bb": {
        "endpoint_id": "f2d2b6de880d43249c3b25dfc3f637bb",
        "module": "Jobs",
        "endpoint": "/jobs/comments/{comment_id}",
        "method": "DELETE",
        "path_params": {
          "comment_id": "$state.selectedCommentId"
        },
        "query_params": {},
        "body": null,
        "fields": [],
        "response_target": "comments",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "2e97213d4dee4b20a399ca1690241f96": {
        "endpoint_id": "2e97213d4dee4b20a399ca1690241f96",
        "module": "Jobs",
        "endpoint": "/jobs/{job_id}/attachments",
        "method": "POST",
        "path_params": {
          "job_id": "$route.jobId"
        },
        "query_params": {},
        "body": {},
        "fields": [
          "id",
          "file_name",
          "file_path",
          "file_type",
          "file_size",
          "created_at"
        ],
        "response_target": "attachments",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "d5c01b0f2cd04325b9d9d661a10e24e1": {
        "endpoint_id": "d5c01b0f2cd04325b9d9d661a10e24e1",
        "module": "Jobs",
        "endpoint": "/jobs/attachments/{attachment_id}",
        "method": "DELETE",
        "path_params": {
          "attachment_id": "$state.selectedAttachmentId"
        },
        "query_params": {},
        "body": null,
        "fields": [],
        "response_target": "attachments",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "c710971ec4494a72b55cbd41090c6732": {
        "endpoint_id": "c710971ec4494a72b55cbd41090c6732",
        "module": "Time Logs",
        "endpoint": "/time-logs/",
        "method": "POST",
        "path_params": {},
        "query_params": {},
        "body": {
          "job_id": "$route.jobId",
          "user_id": "appContext.currentUser.id",
          "start_time": "$formValues.start_time",
          "end_time": "$formValues.end_time",
          "duration_minutes": "$formValues.duration_minutes",
          "notes": "$formValues.notes"
        },
        "fields": [
          "id",
          "job_id",
          "user_id",
          "start_time",
          "end_time",
          "duration_minutes",
          "notes"
        ],
        "response_target": "timeLogs",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "8868e699dfbd4f0996368bbb4e63b650": {
        "endpoint_id": "8868e699dfbd4f0996368bbb4e63b650",
        "module": "Time Logs",
        "endpoint": "/time-logs/start",
        "method": "POST",
        "path_params": {},
        "query_params": {},
        "body": {
          "job_id": "$route.jobId",
          "notes": null
        },
        "fields": [
          "id",
          "job_id",
          "user_id",
          "start_time"
        ],
        "response_target": "timeLogs",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "9a75d05fe2934cd9ac3f8133fded1e72": {
        "endpoint_id": "9a75d05fe2934cd9ac3f8133fded1e72",
        "module": "Time Logs",
        "endpoint": "/time-logs/{timelog_id}/stop",
        "method": "POST",
        "path_params": {
          "timelog_id": "$state.activeTimerLogId"
        },
        "query_params": {},
        "body": {
          "notes": null
        },
        "fields": [
          "id",
          "end_time",
          "duration_minutes"
        ],
        "response_target": "timeLogs",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "908e6679a3884d30a6673de4933226b6": {
        "endpoint_id": "908e6679a3884d30a6673de4933226b6",
        "module": "Checklists",
        "endpoint": "/checklists/",
        "method": "POST",
        "path_params": {},
        "query_params": {},
        "body": {
          "job_id": "$route.jobId",
          "title": "$formValues.title",
          "description": "$formValues.description",
          "display_order": 0
        },
        "fields": [
          "id",
          "job_id",
          "title",
          "description",
          "display_order"
        ],
        "response_target": "checklists",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "a71694f31c4b4fac92c7c0cffec92a3c": {
        "endpoint_id": "a71694f31c4b4fac92c7c0cffec92a3c",
        "module": "Checklists",
        "endpoint": "/checklists/items",
        "method": "POST",
        "path_params": {},
        "query_params": {},
        "body": {
          "checklist_id": "$formValues.checklist_id",
          "description": "$formValues.description",
          "is_completed": false,
          "display_order": 0
        },
        "fields": [
          "id",
          "checklist_id",
          "description",
          "is_completed",
          "display_order"
        ],
        "response_target": "checklistItems",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "d74d9538f9a54b51a78be08e9696c033": {
        "endpoint_id": "d74d9538f9a54b51a78be08e9696c033",
        "module": "Checklists",
        "endpoint": "/checklists/items/{checklist_item_id}/complete",
        "method": "POST",
        "path_params": {
          "checklist_item_id": "$state.selectedChecklistItemId"
        },
        "query_params": {},
        "body": null,
        "fields": [
          "id",
          "is_completed",
          "completed_at"
        ],
        "response_target": "checklistItems",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "9e2256a3e22d42098b2214818fee9ad5": {
        "endpoint_id": "9e2256a3e22d42098b2214818fee9ad5",
        "module": "Checklists",
        "endpoint": "/checklists/items/{checklist_item_id}",
        "method": "PUT",
        "path_params": {
          "checklist_item_id": "$state.selectedChecklistItemId"
        },
        "query_params": {},
        "body": {
          "is_completed": "$formValues.is_completed"
        },
        "fields": [
          "id",
          "is_completed",
          "completed_at"
        ],
        "response_target": "checklistItems",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "fd56aa25f7e44adb94dc9bc9dc557d2b": {
        "endpoint_id": "fd56aa25f7e44adb94dc9bc9dc557d2b",
        "module": "Jobs",
        "endpoint": "/jobs/{job_id}/tags",
        "method": "POST",
        "path_params": {
          "job_id": "$route.jobId"
        },
        "query_params": {},
        "body": {
          "job_id": "$route.jobId",
          "tag_id": "$formValues.tag_id"
        },
        "fields": [
          "id",
          "job_id",
          "tag_id"
        ],
        "response_target": "jobDetail",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "7fea055c92f94d4ba88994acfc208f96": {
        "endpoint_id": "7fea055c92f94d4ba88994acfc208f96",
        "module": "Jobs",
        "endpoint": "/jobs/tags/{jobtag_id}",
        "method": "DELETE",
        "path_params": {
          "jobtag_id": "$state.selectedJobTagId"
        },
        "query_params": {},
        "body": null,
        "fields": [],
        "response_target": "jobDetail",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "54de497846824014a9f1271d4620c3d6": {
        "endpoint_id": "54de497846824014a9f1271d4620c3d6",
        "module": "Jobs",
        "endpoint": "/jobs/",
        "method": "POST",
        "path_params": {},
        "query_params": {},
        "body": {},
        "fields": [
          "id",
          "title",
          "job_status_id",
          "job_priority_id",
          "assigned_to_user_id",
          "parent_job_id"
        ],
        "response_target": "subJobs",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      }
    }
  },
  "data_model_ir": {
    "entities": {
      "job": {
        "name": "Job",
        "backend_module": "Jobs",
        "fields": [
          "id",
          "title",
          "description",
          "job_type_id",
          "job_status_id",
          "job_priority_id",
          "created_by_user_id",
          "assigned_to_user_id",
          "department_id",
          "team_id",
          "parent_job_id",
          "due_date",
          "started_at",
          "completed_at",
          "estimated_hours",
          "created_at",
          "updated_at",
          "job_type",
          "job_status",
          "job_priority",
          "created_by_user",
          "assigned_to_user",
          "department",
          "team",
          "parent_job",
          "comments",
          "attachments",
          "job_history",
          "time_logs",
          "job_tags",
          "checklists"
        ],
        "computed": [
          "totalTimeLogged",
          "isOverdue"
        ],
        "display_fields": [
          "title",
          "description",
          "job_status",
          "job_priority",
          "assigned_to_user",
          "due_date"
        ],
        "search_fields": [],
        "filters": [
          "job_status_id",
          "job_priority_id",
          "assigned_to_user_id",
          "department_id"
        ],
        "default_sort": null,
        "default_sort_dir": "asc"
      },
      "comment": {
        "name": "Comment",
        "backend_module": "Jobs",
        "fields": [
          "id",
          "job_id",
          "user_id",
          "content",
          "created_at",
          "updated_at"
        ],
        "computed": [],
        "display_fields": [
          "content",
          "user_id",
          "created_at"
        ],
        "search_fields": [],
        "filters": [],
        "default_sort": null,
        "default_sort_dir": "asc"
      },
      "attachment": {
        "name": "Attachment",
        "backend_module": "Jobs",
        "fields": [
          "id",
          "job_id",
          "uploaded_by_user_id",
          "file_name",
          "file_path",
          "file_type",
          "file_size",
          "created_at",
          "updated_at"
        ],
        "computed": [],
        "display_fields": [
          "file_name",
          "file_size",
          "file_type",
          "created_at"
        ],
        "search_fields": [],
        "filters": [],
        "default_sort": null,
        "default_sort_dir": "asc"
      },
      "timeLog": {
        "name": "TimeLog",
        "backend_module": "Time Logs",
        "fields": [
          "id",
          "job_id",
          "user_id",
          "start_time",
          "end_time",
          "duration_minutes",
          "notes",
          "created_at",
          "updated_at"
        ],
        "computed": [],
        "display_fields": [
          "user_id",
          "start_time",
          "end_time",
          "duration_minutes",
          "notes"
        ],
        "search_fields": [],
        "filters": [
          "job_id",
          "user_id"
        ],
        "default_sort": null,
        "default_sort_dir": "asc"
      },
      "checklist": {
        "name": "Checklist",
        "backend_module": "Checklists",
        "fields": [
          "id",
          "job_id",
          "title",
          "description",
          "display_order",
          "created_at",
          "updated_at"
        ],
        "computed": [],
        "display_fields": [
          "title",
          "description"
        ],
        "search_fields": [],
        "filters": [
          "job_id"
        ],
        "default_sort": null,
        "default_sort_dir": "asc"
      },
      "checklistItem": {
        "name": "ChecklistItem",
        "backend_module": "Checklists",
        "fields": [
          "id",
          "checklist_id",
          "description",
          "is_completed",
          "assigned_to_user_id",
          "display_order",
          "completed_at",
          "created_at",
          "updated_at"
        ],
        "computed": [],
        "display_fields": [
          "description",
          "is_completed",
          "assigned_to_user_id"
        ],
        "search_fields": [],
        "filters": [
          "checklist_id",
          "is_completed"
        ],
        "default_sort": null,
        "default_sort_dir": "asc"
      },
      "jobHistory": {
        "name": "JobHistory",
        "backend_module": "Jobs",
        "fields": [
          "id",
          "job_id",
          "user_id",
          "action_type",
          "field_name",
          "old_value",
          "new_value",
          "created_at",
          "updated_at"
        ],
        "computed": [],
        "display_fields": [
          "action_type",
          "field_name",
          "old_value",
          "new_value",
          "created_at"
        ],
        "search_fields": [],
        "filters": [],
        "default_sort": null,
        "default_sort_dir": "asc"
      },
      "tag": {
        "name": "Tag",
        "backend_module": "Job Configuration",
        "fields": [
          "id",
          "name",
          "color",
          "usage_count",
          "created_at",
          "updated_at"
        ],
        "computed": [],
        "display_fields": [
          "name",
          "color"
        ],
        "search_fields": [],
        "filters": [],
        "default_sort": null,
        "default_sort_dir": "asc"
      },
      "user": {
        "name": "User",
        "backend_module": "Users",
        "fields": [
          "id",
          "email",
          "first_name",
          "last_name",
          "role",
          "department_id",
          "phone",
          "is_active",
          "created_at",
          "updated_at"
        ],
        "computed": [],
        "display_fields": [
          "first_name",
          "last_name",
          "email"
        ],
        "search_fields": [],
        "filters": [
          "role",
          "is_active",
          "department_id"
        ],
        "default_sort": null,
        "default_sort_dir": "asc"
      },
      "jobStatus": {
        "name": "JobStatus",
        "backend_module": "Job Configuration",
        "fields": [
          "id",
          "name",
          "description",
          "display_order",
          "is_active",
          "created_at",
          "updated_at"
        ],
        "computed": [],
        "display_fields": [
          "name"
        ],
        "search_fields": [],
        "filters": [
          "is_active"
        ],
        "default_sort": null,
        "default_sort_dir": "asc"
      }
    },
    "relationships": []
  },
  "behaviour_ir": {
    "events": {
      "onTabChange": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.activeTab",
            "expr": "event.value"
          }
        ],
        "description": ""
      },
      "onEditModalOpen": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.editModalVisible",
            "expr": "true"
          }
        ],
        "description": ""
      },
      "onEditModalClose": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.editModalVisible",
            "expr": "false"
          }
        ],
        "description": ""
      },
      "onAssignModalOpen": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.assignModalVisible",
            "expr": "true"
          }
        ],
        "description": ""
      },
      "onAssignModalClose": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.assignModalVisible",
            "expr": "false"
          }
        ],
        "description": ""
      },
      "onCancelModalOpen": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.cancelModalVisible",
            "expr": "true"
          }
        ],
        "description": ""
      },
      "onCancelModalClose": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.cancelModalVisible",
            "expr": "false"
          }
        ],
        "description": ""
      },
      "onReopenModalOpen": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.reopenModalVisible",
            "expr": "true"
          }
        ],
        "description": ""
      },
      "onReopenModalClose": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.reopenModalVisible",
            "expr": "false"
          }
        ],
        "description": ""
      },
      "onTimeLogModalOpen": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.timeLogModalVisible",
            "expr": "true"
          }
        ],
        "description": ""
      },
      "onTimeLogModalClose": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.timeLogModalVisible",
            "expr": "false"
          }
        ],
        "description": ""
      },
      "onSubJobModalOpen": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.subJobModalVisible",
            "expr": "true"
          }
        ],
        "description": ""
      },
      "onSubJobModalClose": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.subJobModalVisible",
            "expr": "false"
          }
        ],
        "description": ""
      },
      "onImagePreviewOpen": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.imagePreviewVisible",
            "expr": "true"
          },
          {
            "target": "state.imagePreviewUrl",
            "expr": "event.value"
          }
        ],
        "description": ""
      },
      "onImagePreviewClose": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.imagePreviewVisible",
            "expr": "false"
          },
          {
            "target": "state.imagePreviewUrl",
            "expr": "''"
          }
        ],
        "description": ""
      },
      "onTagPopoverToggle": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.tagPopoverVisible",
            "expr": "!state.tagPopoverVisible"
          }
        ],
        "description": ""
      }
    },
    "actions": {
      "ac58c30519004734b06e8427873e9c4d": {
        "action_id": "ac58c30519004734b06e8427873e9c4d",
        "trigger": "form_submit",
        "target_component_id": "edit_job_modal",
        "operation": "update",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [
          {
            "rule_id": "val_0",
            "field": null,
            "type": "custom",
            "value": null,
            "expression": "{\"field\": \"title\", \"message\": \"Title is required\", \"rule_id\": \"val_title\", \"type\": \"required\"}",
            "message": "{\"field\": \"title\", \"message\": \"Title is required\", \"rule_id\": \"val_title\", \"type\": \"required\"}"
          },
          {
            "rule_id": "val_1",
            "field": null,
            "type": "custom",
            "value": null,
            "expression": "{\"field\": \"title\", \"message\": \"Title must be at least 5 characters\", \"rule_id\": \"val_title_min\", \"type\": \"min_length\", \"value\": 5}",
            "message": "{\"field\": \"title\", \"message\": \"Title must be at least 5 characters\", \"rule_id\": \"val_title_min\", \"type\": \"min_length\", \"value\": 5}"
          }
        ],
        "validation_messages": {},
        "updates": [
          {
            "target": "state.editModalVisible",
            "expr": "false"
          }
        ],
        "api_endpoint": "d410330de33f41cabafe37f81680d454",
        "api_body": null,
        "side_effects": [
          {
            "type": "toast",
            "config": {
              "message": "Job updated successfully",
              "type": "success"
            }
          },
          {
            "type": "modal_close",
            "config": {
              "modal_id": "edit_job_modal"
            }
          },
          {
            "type": "refresh",
            "config": {
              "target": "fetchJobDetails"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "5e7c68deab27407cbea0da08db92a77f": {
        "action_id": "5e7c68deab27407cbea0da08db92a77f",
        "trigger": "form_submit",
        "target_component_id": "assign_modal",
        "operation": "custom",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [
          {
            "rule_id": "val_0",
            "field": null,
            "type": "custom",
            "value": null,
            "expression": "{\"field\": \"assigned_to_user_id\", \"message\": \"Please select a user\", \"rule_id\": \"val_assignee\", \"type\": \"required\"}",
            "message": "{\"field\": \"assigned_to_user_id\", \"message\": \"Please select a user\", \"rule_id\": \"val_assignee\", \"type\": \"required\"}"
          }
        ],
        "validation_messages": {},
        "updates": [
          {
            "target": "state.assignModalVisible",
            "expr": "false"
          }
        ],
        "api_endpoint": "457f3198979e4832a02563d752f51cc0",
        "api_body": null,
        "side_effects": [
          {
            "type": "toast",
            "config": {
              "message": "Job assigned successfully",
              "type": "success"
            }
          },
          {
            "type": "modal_close",
            "config": {
              "modal_id": "assign_modal"
            }
          },
          {
            "type": "refresh",
            "config": {
              "target": "fetchJobDetails"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "040696ff33cc4a57ab1d9a96d593a606": {
        "action_id": "040696ff33cc4a57ab1d9a96d593a606",
        "trigger": "form_submit",
        "target_component_id": "assign_modal",
        "operation": "custom",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [
          {
            "rule_id": "val_0",
            "field": null,
            "type": "custom",
            "value": null,
            "expression": "{\"field\": \"assigned_to_user_id\", \"message\": \"Please select a user\", \"rule_id\": \"val_reassignee\", \"type\": \"required\"}",
            "message": "{\"field\": \"assigned_to_user_id\", \"message\": \"Please select a user\", \"rule_id\": \"val_reassignee\", \"type\": \"required\"}"
          }
        ],
        "validation_messages": {},
        "updates": [
          {
            "target": "state.assignModalVisible",
            "expr": "false"
          }
        ],
        "api_endpoint": "b70b3e806993486ebdb2d454fecbdc47",
        "api_body": null,
        "side_effects": [
          {
            "type": "toast",
            "config": {
              "message": "Job reassigned successfully",
              "type": "success"
            }
          },
          {
            "type": "modal_close",
            "config": {
              "modal_id": "assign_modal"
            }
          },
          {
            "type": "refresh",
            "config": {
              "target": "fetchJobDetails"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "3fc7ab70dd914f55b45216c70ee72764": {
        "action_id": "3fc7ab70dd914f55b45216c70ee72764",
        "trigger": "button_click",
        "target_component_id": "status_dropdown",
        "operation": "custom",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": true,
        "confirmation_message": null,
        "validation_rules": [],
        "validation_messages": {},
        "updates": [],
        "api_endpoint": "82984a7fd74c4b0cbe70dbe7b63f2db9",
        "api_body": null,
        "side_effects": [
          {
            "type": "toast",
            "config": {
              "message": "Status updated successfully",
              "type": "success"
            }
          },
          {
            "type": "refresh",
            "config": {
              "target": "fetchJobDetails"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "a705debfea4b4e0abf934d3dd613c69b": {
        "action_id": "a705debfea4b4e0abf934d3dd613c69b",
        "trigger": "button_click",
        "target_component_id": "cancel_job_modal",
        "operation": "custom",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": true,
        "confirmation_message": null,
        "validation_rules": [],
        "validation_messages": {},
        "updates": [
          {
            "target": "state.cancelModalVisible",
            "expr": "false"
          }
        ],
        "api_endpoint": "1a44d4add88d40d3a4ecf79b7665f16d",
        "api_body": null,
        "side_effects": [
          {
            "type": "toast",
            "config": {
              "message": "Job cancelled",
              "type": "warning"
            }
          },
          {
            "type": "modal_close",
            "config": {
              "modal_id": "cancel_job_modal"
            }
          },
          {
            "type": "refresh",
            "config": {
              "target": "fetchJobDetails"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "be24ab48815649539e3316a405eff9fa": {
        "action_id": "be24ab48815649539e3316a405eff9fa",
        "trigger": "button_click",
        "target_component_id": "reopen_job_modal",
        "operation": "custom",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": true,
        "confirmation_message": null,
        "validation_rules": [],
        "validation_messages": {},
        "updates": [
          {
            "target": "state.reopenModalVisible",
            "expr": "false"
          }
        ],
        "api_endpoint": "b78196587bb94b23bca7034683dbcb2a",
        "api_body": null,
        "side_effects": [
          {
            "type": "toast",
            "config": {
              "message": "Job reopened successfully",
              "type": "success"
            }
          },
          {
            "type": "modal_close",
            "config": {
              "modal_id": "reopen_job_modal"
            }
          },
          {
            "type": "refresh",
            "config": {
              "target": "fetchJobDetails"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "2e24c79e40c64d488864ed6a57e0a8e2": {
        "action_id": "2e24c79e40c64d488864ed6a57e0a8e2",
        "trigger": "form_submit",
        "target_component_id": "comment_form",
        "operation": "create",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [
          {
            "rule_id": "val_0",
            "field": null,
            "type": "custom",
            "value": null,
            "expression": "{\"field\": \"content\", \"message\": \"Comment cannot be empty\", \"rule_id\": \"val_comment_content\", \"type\": \"required\"}",
            "message": "{\"field\": \"content\", \"message\": \"Comment cannot be empty\", \"rule_id\": \"val_comment_content\", \"type\": \"required\"}"
          },
          {
            "rule_id": "val_1",
            "field": null,
            "type": "custom",
            "value": null,
            "expression": "{\"field\": \"content\", \"message\": \"Comment must be less than 5000 characters\", \"rule_id\": \"val_comment_max\", \"type\": \"max_length\", \"value\": 5000}",
            "message": "{\"field\": \"content\", \"message\": \"Comment must be less than 5000 characters\", \"rule_id\": \"val_comment_max\", \"type\": \"max_length\", \"value\": 5000}"
          }
        ],
        "validation_messages": {},
        "updates": [],
        "api_endpoint": "c2fb5e14755c4909bd42c0d5db4a6f92",
        "api_body": null,
        "side_effects": [
          {
            "type": "toast",
            "config": {
              "message": "Comment added",
              "type": "success"
            }
          },
          {
            "type": "refresh",
            "config": {
              "target": "fetchComments"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "f2d2b6de880d43249c3b25dfc3f637bb": {
        "action_id": "f2d2b6de880d43249c3b25dfc3f637bb",
        "trigger": "button_click",
        "target_component_id": "comment_delete_btn",
        "operation": "delete",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": true,
        "confirmation_message": null,
        "validation_rules": [],
        "validation_messages": {},
        "updates": [],
        "api_endpoint": "f2d2b6de880d43249c3b25dfc3f637bb",
        "api_body": null,
        "side_effects": [
          {
            "type": "toast",
            "config": {
              "message": "Comment deleted",
              "type": "success"
            }
          },
          {
            "type": "refresh",
            "config": {
              "target": "fetchComments"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "22b5926217ea4a5d963a7a7fe4a3f0d9": {
        "action_id": "22b5926217ea4a5d963a7a7fe4a3f0d9",
        "trigger": "form_submit",
        "target_component_id": "attachment_upload",
        "operation": "create",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [],
        "validation_messages": {},
        "updates": [],
        "api_endpoint": "2e97213d4dee4b20a399ca1690241f96",
        "api_body": null,
        "side_effects": [
          {
            "type": "toast",
            "config": {
              "message": "File uploaded successfully",
              "type": "success"
            }
          },
          {
            "type": "refresh",
            "config": {
              "target": "fetchAttachments"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "d5c01b0f2cd04325b9d9d661a10e24e1": {
        "action_id": "d5c01b0f2cd04325b9d9d661a10e24e1",
        "trigger": "button_click",
        "target_component_id": "attachment_delete_btn",
        "operation": "delete",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": true,
        "confirmation_message": null,
        "validation_rules": [],
        "validation_messages": {},
        "updates": [],
        "api_endpoint": "d5c01b0f2cd04325b9d9d661a10e24e1",
        "api_body": null,
        "side_effects": [
          {
            "type": "toast",
            "config": {
              "message": "Attachment deleted",
              "type": "success"
            }
          },
          {
            "type": "refresh",
            "config": {
              "target": "fetchAttachments"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "b421cdbf5e2143499d61287af41ee717": {
        "action_id": "b421cdbf5e2143499d61287af41ee717",
        "trigger": "form_submit",
        "target_component_id": "time_log_modal",
        "operation": "create",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [
          {
            "rule_id": "val_0",
            "field": null,
            "type": "custom",
            "value": null,
            "expression": "{\"field\": \"start_time\", \"message\": \"Start time is required\", \"rule_id\": \"val_start_time\", \"type\": \"required\"}",
            "message": "{\"field\": \"start_time\", \"message\": \"Start time is required\", \"rule_id\": \"val_start_time\", \"type\": \"required\"}"
          },
          {
            "rule_id": "val_1",
            "field": null,
            "type": "custom",
            "value": null,
            "expression": "{\"field\": \"end_time\", \"message\": \"End time is required\", \"rule_id\": \"val_end_time\", \"type\": \"required\"}",
            "message": "{\"field\": \"end_time\", \"message\": \"End time is required\", \"rule_id\": \"val_end_time\", \"type\": \"required\"}"
          }
        ],
        "validation_messages": {},
        "updates": [
          {
            "target": "state.timeLogModalVisible",
            "expr": "false"
          }
        ],
        "api_endpoint": "c710971ec4494a72b55cbd41090c6732",
        "api_body": null,
        "side_effects": [
          {
            "type": "toast",
            "config": {
              "message": "Time logged successfully",
              "type": "success"
            }
          },
          {
            "type": "modal_close",
            "config": {
              "modal_id": "time_log_modal"
            }
          },
          {
            "type": "refresh",
            "config": {
              "target": "fetchTimeLogs"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "8868e699dfbd4f0996368bbb4e63b650": {
        "action_id": "8868e699dfbd4f0996368bbb4e63b650",
        "trigger": "button_click",
        "target_component_id": "start_timer_btn",
        "operation": "custom",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [],
        "validation_messages": {},
        "updates": [],
        "api_endpoint": "8868e699dfbd4f0996368bbb4e63b650",
        "api_body": null,
        "side_effects": [
          {
            "type": "toast",
            "config": {
              "message": "Timer started",
              "type": "info"
            }
          },
          {
            "type": "refresh",
            "config": {
              "target": "fetchTimeLogs"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "9a75d05fe2934cd9ac3f8133fded1e72": {
        "action_id": "9a75d05fe2934cd9ac3f8133fded1e72",
        "trigger": "button_click",
        "target_component_id": "stop_timer_btn",
        "operation": "custom",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [],
        "validation_messages": {},
        "updates": [
          {
            "target": "state.activeTimerLogId",
            "expr": "null"
          }
        ],
        "api_endpoint": "9a75d05fe2934cd9ac3f8133fded1e72",
        "api_body": null,
        "side_effects": [
          {
            "type": "toast",
            "config": {
              "message": "Timer stopped",
              "type": "success"
            }
          },
          {
            "type": "refresh",
            "config": {
              "target": "fetchTimeLogs"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "3ea710e3c652431f97f11837eed68d06": {
        "action_id": "3ea710e3c652431f97f11837eed68d06",
        "trigger": "form_submit",
        "target_component_id": "checklist_form",
        "operation": "create",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [
          {
            "rule_id": "val_0",
            "field": null,
            "type": "custom",
            "value": null,
            "expression": "{\"field\": \"title\", \"message\": \"Checklist title is required\", \"rule_id\": \"val_checklist_title\", \"type\": \"required\"}",
            "message": "{\"field\": \"title\", \"message\": \"Checklist title is required\", \"rule_id\": \"val_checklist_title\", \"type\": \"required\"}"
          }
        ],
        "validation_messages": {},
        "updates": [],
        "api_endpoint": "908e6679a3884d30a6673de4933226b6",
        "api_body": null,
        "side_effects": [
          {
            "type": "toast",
            "config": {
              "message": "Checklist created",
              "type": "success"
            }
          },
          {
            "type": "refresh",
            "config": {
              "target": "fetchChecklists"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "c0ab889ae6e043efb79e6f18e2c85068": {
        "action_id": "c0ab889ae6e043efb79e6f18e2c85068",
        "trigger": "form_submit",
        "target_component_id": "checklist_item_form",
        "operation": "create",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [
          {
            "rule_id": "val_0",
            "field": null,
            "type": "custom",
            "value": null,
            "expression": "{\"field\": \"description\", \"message\": \"Item description is required\", \"rule_id\": \"val_item_desc\", \"type\": \"required\"}",
            "message": "{\"field\": \"description\", \"message\": \"Item description is required\", \"rule_id\": \"val_item_desc\", \"type\": \"required\"}"
          }
        ],
        "validation_messages": {},
        "updates": [],
        "api_endpoint": "a71694f31c4b4fac92c7c0cffec92a3c",
        "api_body": null,
        "side_effects": [
          {
            "type": "toast",
            "config": {
              "message": "Item added",
              "type": "success"
            }
          },
          {
            "type": "refresh",
            "config": {
              "target": "fetchChecklistItems"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "9ee11eb4804642ac870c539893069d53": {
        "action_id": "9ee11eb4804642ac870c539893069d53",
        "trigger": "button_click",
        "target_component_id": "checklist_item_checkbox",
        "operation": "update",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [],
        "validation_messages": {},
        "updates": [],
        "api_endpoint": "9e2256a3e22d42098b2214818fee9ad5",
        "api_body": null,
        "side_effects": [
          {
            "type": "refresh",
            "config": {
              "target": "fetchChecklistItems"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "775ae396905a40d0b73d1d1b98e03722": {
        "action_id": "775ae396905a40d0b73d1d1b98e03722",
        "trigger": "button_click",
        "target_component_id": "tag_select",
        "operation": "create",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [],
        "validation_messages": {},
        "updates": [],
        "api_endpoint": "fd56aa25f7e44adb94dc9bc9dc557d2b",
        "api_body": null,
        "side_effects": [
          {
            "type": "toast",
            "config": {
              "message": "Tag added",
              "type": "success"
            }
          },
          {
            "type": "refresh",
            "config": {
              "target": "fetchJobDetails"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "11a7057360a84093920c587eb3bff0d1": {
        "action_id": "11a7057360a84093920c587eb3bff0d1",
        "trigger": "button_click",
        "target_component_id": "tag_remove_btn",
        "operation": "delete",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [],
        "validation_messages": {},
        "updates": [],
        "api_endpoint": "7fea055c92f94d4ba88994acfc208f96",
        "api_body": null,
        "side_effects": [
          {
            "type": "toast",
            "config": {
              "message": "Tag removed",
              "type": "success"
            }
          },
          {
            "type": "refresh",
            "config": {
              "target": "fetchJobDetails"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "41adf1567a2244f1b76d5ff19d6dbaf5": {
        "action_id": "41adf1567a2244f1b76d5ff19d6dbaf5",
        "trigger": "form_submit",
        "target_component_id": "sub_job_modal",
        "operation": "create",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [
          {
            "rule_id": "val_0",
            "field": null,
            "type": "custom",
            "value": null,
            "expression": "{\"field\": \"title\", \"message\": \"Sub-job title is required\", \"rule_id\": \"val_sub_title\", \"type\": \"required\"}",
            "message": "{\"field\": \"title\", \"message\": \"Sub-job title is required\", \"rule_id\": \"val_sub_title\", \"type\": \"required\"}"
          }
        ],
        "validation_messages": {},
        "updates": [
          {
            "target": "state.subJobModalVisible",
            "expr": "false"
          }
        ],
        "api_endpoint": "54de497846824014a9f1271d4620c3d6",
        "api_body": null,
        "side_effects": [
          {
            "type": "toast",
            "config": {
              "message": "Sub-job created",
              "type": "success"
            }
          },
          {
            "type": "modal_close",
            "config": {
              "modal_id": "sub_job_modal"
            }
          },
          {
            "type": "refresh",
            "config": {
              "target": "fetchSubJobs"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "510d36c1b08a4cf1acc26adc2a9822d2": {
        "action_id": "510d36c1b08a4cf1acc26adc2a9822d2",
        "trigger": "button_click",
        "target_component_id": "back_button",
        "operation": "custom",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [],
        "validation_messages": {},
        "updates": [],
        "api_endpoint": null,
        "api_body": null,
        "side_effects": [
          {
            "type": "navigate",
            "config": {
              "path": "/jobs"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      }
    },
    "feedback": {
      "ac58c30519004734b06e8427873e9c4d": {
        "action_id": "ac58c30519004734b06e8427873e9c4d",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": "Job updated successfully",
        "error_message": "Failed to update job",
        "ui_updates": []
      },
      "5e7c68deab27407cbea0da08db92a77f": {
        "action_id": "5e7c68deab27407cbea0da08db92a77f",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": "Job assigned successfully",
        "error_message": "Failed to assign job",
        "ui_updates": []
      },
      "040696ff33cc4a57ab1d9a96d593a606": {
        "action_id": "040696ff33cc4a57ab1d9a96d593a606",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": "Job reassigned successfully",
        "error_message": "Failed to reassign job",
        "ui_updates": []
      },
      "3fc7ab70dd914f55b45216c70ee72764": {
        "action_id": "3fc7ab70dd914f55b45216c70ee72764",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": "Status updated",
        "error_message": "Failed to update status",
        "ui_updates": []
      },
      "a705debfea4b4e0abf934d3dd613c69b": {
        "action_id": "a705debfea4b4e0abf934d3dd613c69b",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": "Job cancelled",
        "error_message": "Failed to cancel job",
        "ui_updates": []
      },
      "be24ab48815649539e3316a405eff9fa": {
        "action_id": "be24ab48815649539e3316a405eff9fa",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": "Job reopened",
        "error_message": "Failed to reopen job",
        "ui_updates": []
      },
      "2e24c79e40c64d488864ed6a57e0a8e2": {
        "action_id": "2e24c79e40c64d488864ed6a57e0a8e2",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": "Comment added",
        "error_message": "Failed to add comment",
        "ui_updates": []
      },
      "f2d2b6de880d43249c3b25dfc3f637bb": {
        "action_id": "f2d2b6de880d43249c3b25dfc3f637bb",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": "Comment deleted",
        "error_message": "Failed to delete comment",
        "ui_updates": []
      },
      "22b5926217ea4a5d963a7a7fe4a3f0d9": {
        "action_id": "22b5926217ea4a5d963a7a7fe4a3f0d9",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": "File uploaded",
        "error_message": "Failed to upload file",
        "ui_updates": []
      },
      "d5c01b0f2cd04325b9d9d661a10e24e1": {
        "action_id": "d5c01b0f2cd04325b9d9d661a10e24e1",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": "Attachment deleted",
        "error_message": "Failed to delete attachment",
        "ui_updates": []
      },
      "b421cdbf5e2143499d61287af41ee717": {
        "action_id": "b421cdbf5e2143499d61287af41ee717",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": "Time logged",
        "error_message": "Failed to log time",
        "ui_updates": []
      },
      "8868e699dfbd4f0996368bbb4e63b650": {
        "action_id": "8868e699dfbd4f0996368bbb4e63b650",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": "Timer started",
        "error_message": "Failed to start timer",
        "ui_updates": []
      },
      "9a75d05fe2934cd9ac3f8133fded1e72": {
        "action_id": "9a75d05fe2934cd9ac3f8133fded1e72",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": "Timer stopped",
        "error_message": "Failed to stop timer",
        "ui_updates": []
      },
      "3ea710e3c652431f97f11837eed68d06": {
        "action_id": "3ea710e3c652431f97f11837eed68d06",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": "Checklist created",
        "error_message": "Failed to create checklist",
        "ui_updates": []
      },
      "c0ab889ae6e043efb79e6f18e2c85068": {
        "action_id": "c0ab889ae6e043efb79e6f18e2c85068",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": "Item added",
        "error_message": "Failed to add item",
        "ui_updates": []
      },
      "9ee11eb4804642ac870c539893069d53": {
        "action_id": "9ee11eb4804642ac870c539893069d53",
        "loading_indicator": "none",
        "loading_text": null,
        "success_message": "",
        "error_message": "Failed to update item",
        "ui_updates": []
      },
      "775ae396905a40d0b73d1d1b98e03722": {
        "action_id": "775ae396905a40d0b73d1d1b98e03722",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": "Tag added",
        "error_message": "Failed to add tag",
        "ui_updates": []
      },
      "11a7057360a84093920c587eb3bff0d1": {
        "action_id": "11a7057360a84093920c587eb3bff0d1",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": "Tag removed",
        "error_message": "Failed to remove tag",
        "ui_updates": []
      },
      "41adf1567a2244f1b76d5ff19d6dbaf5": {
        "action_id": "41adf1567a2244f1b76d5ff19d6dbaf5",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": "Sub-job created",
        "error_message": "Failed to create sub-job",
        "ui_updates": []
      },
      "510d36c1b08a4cf1acc26adc2a9822d2": {
        "action_id": "510d36c1b08a4cf1acc26adc2a9822d2",
        "loading_indicator": "none",
        "loading_text": null,
        "success_message": "",
        "error_message": "",
        "ui_updates": []
      }
    }
  },
  "component_ir": {
    "library": "antd",
    "theme": {
      "primaryColor": "#1677ff",
      "secondaryColor": "#000000",
      "successColor": null,
      "warningColor": null,
      "errorColor": null,
      "fontFamily": "sans-serif",
      "fontSize": null,
      "borderRadius": 6
    },
    "components": {
      "main_container": {
        "type": "div",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {
          "minHeight": "100vh",
          "width": "100%",
          "padding": "24px",
          "backgroundColor": "#f5f5f5"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "header_section": {
        "type": "div",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {
          "marginBottom": "24px",
          "backgroundColor": "#fff",
          "padding": "24px",
          "borderRadius": "6px",
          "boxShadow": "0 1px 2px rgba(0,0,0,0.06)"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "header_top_row": {
        "type": "div",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {
          "display": "flex",
          "justifyContent": "space-between",
          "alignItems": "center",
          "flexWrap": "wrap",
          "gap": "12px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "back_button": {
        "type": "Button",
        "label": "Back to Jobs",
        "description": null,
        "bind": null,
        "onClick": "navigateToJobList",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "type": "text",
          "icon": "ArrowLeftOutlined"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "job_title_section": {
        "type": "div",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {
          "flex": "1"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "job_id_text": {
        "type": "Typography.Text",
        "label": null,
        "description": null,
        "bind": "state.jobDetail.id",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "type": "secondary",
          "copyable": true
        },
        "dynamic_props": {},
        "styles": {
          "fontSize": "12px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "job_title_text": {
        "type": "Typography.Title",
        "label": null,
        "description": null,
        "bind": "state.jobDetail.title",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "level": 3
        },
        "dynamic_props": {},
        "styles": {
          "margin": "4px 0 0 0"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "header_actions": {
        "type": "Space",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "wrap": true
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "edit_button": {
        "type": "Button",
        "label": "Edit",
        "description": null,
        "bind": null,
        "onClick": "onEditModalOpen",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "type": "default",
          "icon": "EditOutlined"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "assign_button": {
        "type": "Button",
        "label": "Assign",
        "description": null,
        "bind": null,
        "onClick": "onAssignModalOpen",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "type": "default",
          "icon": "UserAddOutlined"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "status_dropdown": {
        "type": "Dropdown.Button",
        "label": "Change Status",
        "description": null,
        "bind": "state.jobStatuses",
        "onClick": "submitChangeStatus",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "type": "primary"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "cancel_button": {
        "type": "Button",
        "label": "Cancel Job",
        "description": null,
        "bind": null,
        "onClick": "onCancelModalOpen",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "danger": true,
          "icon": "CloseCircleOutlined"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "reopen_button": {
        "type": "Button",
        "label": "Reopen",
        "description": null,
        "bind": null,
        "onClick": "onReopenModalOpen",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "type": "default",
          "icon": "UndoOutlined"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "content_section": {
        "type": "div",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {
          "display": "flex",
          "gap": "24px",
          "flexWrap": "wrap"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "left_panel": {
        "type": "Card",
        "label": "Job Information",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "bordered": false
        },
        "dynamic_props": {},
        "styles": {
          "width": "320px",
          "minWidth": "280px",
          "flexShrink": "0"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "status_badge": {
        "type": "Tag",
        "label": "Status",
        "description": null,
        "bind": "state.jobDetail.job_status.name",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "color": "blue"
        },
        "dynamic_props": {},
        "styles": {
          "fontSize": "14px",
          "padding": "4px 12px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "priority_badge": {
        "type": "Tag",
        "label": "Priority",
        "description": null,
        "bind": "state.jobDetail.job_priority.name",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "color": "orange"
        },
        "dynamic_props": {},
        "styles": {
          "fontSize": "14px",
          "padding": "4px 12px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "metadata_list": {
        "type": "Descriptions",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "column": 1,
          "size": "small",
          "bordered": false
        },
        "dynamic_props": {},
        "styles": {
          "marginTop": "16px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "job_type_item": {
        "type": "Descriptions.Item",
        "label": "Job Type",
        "description": null,
        "bind": "state.jobDetail.job_type.name",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "created_by_item": {
        "type": "Descriptions.Item",
        "label": "Created By",
        "description": null,
        "bind": "state.jobDetail.created_by_user",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "assignee_item": {
        "type": "Descriptions.Item",
        "label": "Assignee",
        "description": null,
        "bind": "state.jobDetail.assigned_to_user",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "department_item": {
        "type": "Descriptions.Item",
        "label": "Department",
        "description": null,
        "bind": "state.jobDetail.department.name",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "due_date_item": {
        "type": "Descriptions.Item",
        "label": "Due Date",
        "description": null,
        "bind": "state.jobDetail.due_date",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "created_date_item": {
        "type": "Descriptions.Item",
        "label": "Created",
        "description": null,
        "bind": "state.jobDetail.created_at",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "updated_date_item": {
        "type": "Descriptions.Item",
        "label": "Last Updated",
        "description": null,
        "bind": "state.jobDetail.updated_at",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "total_time_item": {
        "type": "Descriptions.Item",
        "label": "Total Time Logged",
        "description": null,
        "bind": "derived.totalTimeLogged",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "tags_section": {
        "type": "div",
        "label": "Tags",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {
          "marginTop": "16px",
          "padding": "12px 0",
          "borderTop": "1px solid #f0f0f0"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "tags_container": {
        "type": "Space",
        "label": null,
        "description": null,
        "bind": "state.jobDetail.job_tags",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "wrap": true,
          "size": "small"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "tag_remove_btn": {
        "type": "Tag",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": "removeTag",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "closable": true
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "tag_add_button": {
        "type": "Button",
        "label": "Add Tag",
        "description": null,
        "bind": null,
        "onClick": "onTagPopoverToggle",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "type": "dashed",
          "size": "small",
          "icon": "PlusOutlined"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "tag_select": {
        "type": "Popover",
        "label": "Select Tag",
        "description": null,
        "bind": "state.tagPopoverVisible",
        "onClick": "addTag",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "trigger": "click"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "right_panel": {
        "type": "Card",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "bordered": false
        },
        "dynamic_props": {},
        "styles": {
          "flex": "1",
          "minWidth": "0"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "tabs_container": {
        "type": "Tabs",
        "label": null,
        "description": null,
        "bind": "state.activeTab",
        "onClick": "onTabChange",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "type": "card"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "description_tab": {
        "type": "Tabs.TabPane",
        "label": "Description",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "key": "description"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "description_content": {
        "type": "Typography.Paragraph",
        "label": null,
        "description": null,
        "bind": "state.jobDetail.description",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {
          "whiteSpace": "pre-wrap",
          "lineHeight": "1.8"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "checklists_tab": {
        "type": "Tabs.TabPane",
        "label": "Checklists",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "key": "checklists"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "checklists_list": {
        "type": "List",
        "label": null,
        "description": null,
        "bind": "state.checklists",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "checklist_progress": {
        "type": "Progress",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "size": "small"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "checklist_item_checkbox": {
        "type": "Checkbox",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": "toggleChecklistItem",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "add_checklist_button": {
        "type": "Button",
        "label": "Add Checklist",
        "description": null,
        "bind": null,
        "onClick": "submitChecklist",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "type": "dashed",
          "icon": "PlusOutlined",
          "block": true
        },
        "dynamic_props": {},
        "styles": {
          "marginTop": "12px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "checklist_form": {
        "type": "Form",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "layout": "inline"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "checklist_item_form": {
        "type": "Form",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "layout": "inline"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "comments_tab": {
        "type": "Tabs.TabPane",
        "label": "Comments",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "key": "comments"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "comments_list": {
        "type": "List",
        "label": null,
        "description": null,
        "bind": "state.comments",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "itemLayout": "horizontal"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "comment_form": {
        "type": "Form",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "layout": "vertical"
        },
        "dynamic_props": {},
        "styles": {
          "marginTop": "16px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "comment_input": {
        "type": "Input.TextArea",
        "label": "Add a comment",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "rows": 3,
          "placeholder": "Write a comment...",
          "maxLength": 5000,
          "showCount": true
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "comment_submit_btn": {
        "type": "Button",
        "label": "Post Comment",
        "description": null,
        "bind": null,
        "onClick": "submitComment",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "type": "primary",
          "icon": "SendOutlined"
        },
        "dynamic_props": {},
        "styles": {
          "marginTop": "8px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "comment_delete_btn": {
        "type": "Button",
        "label": "Delete",
        "description": null,
        "bind": null,
        "onClick": "deleteComment",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "type": "text",
          "danger": true,
          "size": "small",
          "icon": "DeleteOutlined"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "attachments_tab": {
        "type": "Tabs.TabPane",
        "label": "Attachments",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "key": "attachments"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "attachment_upload": {
        "type": "Upload.Dragger",
        "label": "Upload Attachment",
        "description": null,
        "bind": null,
        "onClick": "submitAttachment",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "accept": ".pdf,.doc,.docx,.xls,.xlsx,.jpg,.png,.gif,.zip",
          "maxSize": 10485760,
          "multiple": true
        },
        "dynamic_props": {},
        "styles": {
          "marginBottom": "16px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "attachments_table": {
        "type": "Table",
        "label": null,
        "description": null,
        "bind": "state.attachments",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "columns": [
            "file_name",
            "file_size",
            "created_at",
            "uploaded_by_user_id",
            "actions"
          ],
          "size": "small",
          "pagination": false
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "attachment_delete_btn": {
        "type": "Button",
        "label": "Delete",
        "description": null,
        "bind": null,
        "onClick": "deleteAttachment",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "type": "text",
          "danger": true,
          "size": "small",
          "icon": "DeleteOutlined"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "image_preview_modal": {
        "type": "Modal",
        "label": "Image Preview",
        "description": null,
        "bind": "state.imagePreviewVisible",
        "onClick": "onImagePreviewClose",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "footer": null,
          "width": 720
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "time_logs_tab": {
        "type": "Tabs.TabPane",
        "label": "Time Logs",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "key": "timelogs"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "time_logs_header": {
        "type": "div",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {
          "display": "flex",
          "justifyContent": "space-between",
          "alignItems": "center",
          "marginBottom": "16px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "time_total_statistic": {
        "type": "Statistic",
        "label": "Total Time",
        "description": null,
        "bind": "derived.totalTimeLogged",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "suffix": "min"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "time_log_actions": {
        "type": "Space",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "log_time_button": {
        "type": "Button",
        "label": "Log Time",
        "description": null,
        "bind": null,
        "onClick": "onTimeLogModalOpen",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "type": "primary",
          "icon": "ClockCircleOutlined"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "start_timer_btn": {
        "type": "Button",
        "label": "Start Timer",
        "description": null,
        "bind": null,
        "onClick": "startTimer",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "type": "default",
          "icon": "PlayCircleOutlined"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "stop_timer_btn": {
        "type": "Button",
        "label": "Stop Timer",
        "description": null,
        "bind": null,
        "onClick": "stopTimer",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "type": "default",
          "danger": true,
          "icon": "PauseCircleOutlined"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "time_logs_table": {
        "type": "Table",
        "label": null,
        "description": null,
        "bind": "state.timeLogs",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "columns": [
            "user_id",
            "start_time",
            "end_time",
            "duration_minutes",
            "notes"
          ],
          "size": "small",
          "pagination": false
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "history_tab": {
        "type": "Tabs.TabPane",
        "label": "History",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "key": "history"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "history_timeline": {
        "type": "Timeline",
        "label": null,
        "description": null,
        "bind": "state.jobHistory",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "mode": "left"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "sub_jobs_section": {
        "type": "Card",
        "label": "Sub-Jobs",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "bordered": false,
          "size": "small"
        },
        "dynamic_props": {},
        "styles": {
          "marginTop": "24px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "sub_jobs_list": {
        "type": "List",
        "label": null,
        "description": null,
        "bind": "state.subJobs",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "grid": {
            "gutter": 16,
            "column": 3
          },
          "size": "small"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "add_sub_job_button": {
        "type": "Button",
        "label": "Add Sub-Job",
        "description": null,
        "bind": null,
        "onClick": "onSubJobModalOpen",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "type": "dashed",
          "icon": "PlusOutlined"
        },
        "dynamic_props": {},
        "styles": {
          "marginTop": "12px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "edit_job_modal": {
        "type": "Modal",
        "label": "Edit Job",
        "description": null,
        "bind": "state.editModalVisible",
        "onClick": "onEditModalClose",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "width": 640,
          "okText": "Save Changes"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "edit_job_form": {
        "type": "Form",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "layout": "vertical"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "edit_title_input": {
        "type": "Input",
        "label": "Title",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "placeholder": "Job title"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "edit_description_input": {
        "type": "Input.TextArea",
        "label": "Description",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "rows": 4,
          "placeholder": "Job description"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "edit_priority_select": {
        "type": "Select",
        "label": "Priority",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "placeholder": "Select priority"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "edit_due_date_picker": {
        "type": "DatePicker",
        "label": "Due Date",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "showTime": true,
          "style": {
            "width": "100%"
          }
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "edit_department_select": {
        "type": "Select",
        "label": "Department",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "placeholder": "Select department"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "edit_tags_select": {
        "type": "Select",
        "label": "Tags",
        "description": null,
        "bind": "state.availableTags",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "mode": "multiple",
          "placeholder": "Select tags"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "assign_modal": {
        "type": "Modal",
        "label": "Assign Job",
        "description": null,
        "bind": "state.assignModalVisible",
        "onClick": "onAssignModalClose",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "width": 480,
          "okText": "Assign"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "assign_user_select": {
        "type": "Select",
        "label": "Select User",
        "description": null,
        "bind": "state.users",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "showSearch": true,
          "placeholder": "Search and select user",
          "filterOption": true,
          "optionFilterProp": "label",
          "style": {
            "width": "100%"
          }
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "cancel_job_modal": {
        "type": "Modal",
        "label": "Cancel Job",
        "description": null,
        "bind": "state.cancelModalVisible",
        "onClick": "onCancelModalClose",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "width": 480,
          "okText": "Confirm Cancel",
          "okButtonProps": {
            "danger": true
          }
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "cancel_reason_input": {
        "type": "Input.TextArea",
        "label": "Reason for cancellation",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "rows": 3,
          "placeholder": "Please provide a reason for cancelling this job"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "reopen_job_modal": {
        "type": "Modal",
        "label": "Reopen Job",
        "description": null,
        "bind": "state.reopenModalVisible",
        "onClick": "onReopenModalClose",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "width": 480,
          "okText": "Confirm Reopen"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "reopen_confirm_text": {
        "type": "Typography.Paragraph",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "time_log_modal": {
        "type": "Modal",
        "label": "Log Time",
        "description": null,
        "bind": "state.timeLogModalVisible",
        "onClick": "onTimeLogModalClose",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "width": 520,
          "okText": "Save Time Log"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "time_log_form": {
        "type": "Form",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "layout": "vertical"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "time_start_picker": {
        "type": "DatePicker",
        "label": "Start Time",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "showTime": true,
          "style": {
            "width": "100%"
          }
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "time_end_picker": {
        "type": "DatePicker",
        "label": "End Time",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "showTime": true,
          "style": {
            "width": "100%"
          }
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "time_notes_input": {
        "type": "Input.TextArea",
        "label": "Notes",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "rows": 2,
          "placeholder": "Optional notes"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "sub_job_modal": {
        "type": "Modal",
        "label": "Create Sub-Job",
        "description": null,
        "bind": "state.subJobModalVisible",
        "onClick": "onSubJobModalClose",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "width": 600,
          "okText": "Create Sub-Job"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "sub_job_form": {
        "type": "Form",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "layout": "vertical"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "sub_job_title_input": {
        "type": "Input",
        "label": "Title",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "placeholder": "Sub-job title"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "sub_job_description_input": {
        "type": "Input.TextArea",
        "label": "Description",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "rows": 3,
          "placeholder": "Sub-job description"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "sub_job_assignee_select": {
        "type": "Select",
        "label": "Assignee",
        "description": null,
        "bind": "state.users",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "showSearch": true,
          "placeholder": "Select assignee",
          "allowClear": true
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "sub_job_priority_select": {
        "type": "Select",
        "label": "Priority",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "placeholder": "Select priority"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "loading_spinner": {
        "type": "Spin",
        "label": null,
        "description": null,
        "bind": "state.loading",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "size": "large"
        },
        "dynamic_props": {},
        "styles": {
          "textAlign": "center",
          "padding": "100px 0"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      }
    }
  },
  "layout_ir": {
    "root": "main_container",
    "children": {
      "main_container": [
        "header_section",
        "content_section",
        "sub_jobs_section",
        "edit_job_modal",
        "assign_modal",
        "cancel_job_modal",
        "reopen_job_modal",
        "time_log_modal",
        "sub_job_modal",
        "image_preview_modal"
      ],
      "header_section": [
        "header_top_row"
      ],
      "header_top_row": [
        "back_button",
        "job_title_section",
        "header_actions"
      ],
      "job_title_section": [
        "job_id_text",
        "job_title_text"
      ],
      "header_actions": [
        "edit_button",
        "assign_button",
        "status_dropdown",
        "cancel_button",
        "reopen_button"
      ],
      "content_section": [
        "left_panel",
        "right_panel"
      ],
      "left_panel": [
        "status_badge",
        "priority_badge",
        "metadata_list",
        "tags_section"
      ],
      "metadata_list": [
        "job_type_item",
        "created_by_item",
        "assignee_item",
        "department_item",
        "due_date_item",
        "created_date_item",
        "updated_date_item",
        "total_time_item"
      ],
      "tags_section": [
        "tags_container",
        "tag_add_button",
        "tag_select"
      ],
      "tags_container": [
        "tag_remove_btn"
      ],
      "right_panel": [
        "tabs_container"
      ],
      "tabs_container": [
        "description_tab",
        "checklists_tab",
        "comments_tab",
        "attachments_tab",
        "time_logs_tab",
        "history_tab"
      ],
      "description_tab": [
        "description_content"
      ],
      "checklists_tab": [
        "checklists_list",
        "add_checklist_button",
        "checklist_form",
        "checklist_item_form"
      ],
      "checklists_list": [
        "checklist_progress",
        "checklist_item_checkbox"
      ],
      "comments_tab": [
        "comments_list",
        "comment_form"
      ],
      "comments_list": [
        "comment_delete_btn"
      ],
      "comment_form": [
        "comment_input",
        "comment_submit_btn"
      ],
      "attachments_tab": [
        "attachment_upload",
        "attachments_table"
      ],
      "attachments_table": [
        "attachment_delete_btn"
      ],
      "time_logs_tab": [
        "time_logs_header",
        "time_logs_table"
      ],
      "time_logs_header": [
        "time_total_statistic",
        "time_log_actions"
      ],
      "time_log_actions": [
        "log_time_button",
        "start_timer_btn",
        "stop_timer_btn"
      ],
      "history_tab": [
        "history_timeline"
      ],
      "sub_jobs_section": [
        "sub_jobs_list",
        "add_sub_job_button"
      ],
      "edit_job_modal": [
        "edit_job_form"
      ],
      "edit_job_form": [
        "edit_title_input",
        "edit_description_input",
        "edit_priority_select",
        "edit_due_date_picker",
        "edit_department_select",
        "edit_tags_select"
      ],
      "assign_modal": [
        "assign_user_select"
      ],
      "cancel_job_modal": [
        "cancel_reason_input"
      ],
      "reopen_job_modal": [
        "reopen_confirm_text"
      ],
      "time_log_modal": [
        "time_log_form"
      ],
      "time_log_form": [
        "time_start_picker",
        "time_end_picker",
        "time_notes_input"
      ],
      "sub_job_modal": [
        "sub_job_form"
      ],
      "sub_job_form": [
        "sub_job_title_input",
        "sub_job_description_input",
        "sub_job_assignee_select",
        "sub_job_priority_select"
      ]
    },
    "layout": {
      "main_container": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "header_section": {
        "type": "vertical",
        "gap": 8,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "header_top_row": {
        "type": "horizontal",
        "gap": 16,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "job_title_section": {
        "type": "vertical",
        "gap": 4,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "header_actions": {
        "type": "horizontal",
        "gap": 8,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "content_section": {
        "type": "horizontal",
        "gap": 24,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "left_panel": {
        "type": "vertical",
        "gap": 12,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "metadata_list": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "tags_section": {
        "type": "vertical",
        "gap": 8,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "tags_container": {
        "type": "horizontal",
        "gap": 4,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "right_panel": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "tabs_container": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "description_tab": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "checklists_tab": {
        "type": "vertical",
        "gap": 12,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "checklists_list": {
        "type": "vertical",
        "gap": 8,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "comments_tab": {
        "type": "vertical",
        "gap": 16,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "comments_list": {
        "type": "vertical",
        "gap": 12,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "comment_form": {
        "type": "vertical",
        "gap": 8,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "attachments_tab": {
        "type": "vertical",
        "gap": 16,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "attachments_table": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "time_logs_tab": {
        "type": "vertical",
        "gap": 16,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "time_logs_header": {
        "type": "horizontal",
        "gap": 16,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "time_log_actions": {
        "type": "horizontal",
        "gap": 8,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "history_tab": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "sub_jobs_section": {
        "type": "vertical",
        "gap": 12,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "edit_job_modal": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "edit_job_form": {
        "type": "vertical",
        "gap": 16,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "assign_modal": {
        "type": "vertical",
        "gap": 16,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "cancel_job_modal": {
        "type": "vertical",
        "gap": 16,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "reopen_job_modal": {
        "type": "vertical",
        "gap": 16,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "time_log_modal": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "time_log_form": {
        "type": "vertical",
        "gap": 16,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "sub_job_modal": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "sub_job_form": {
        "type": "vertical",
        "gap": 16,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      }
    },
    "layout_zones": [
      {
        "zone_id": "main_zone",
        "component": "main_container",
        "anchor": "top-left",
        "size_hint": "full-width",
        "z_layer": "base",
        "notes": "Main page container"
      },
      {
        "zone_id": "left_info_zone",
        "component": "left_panel",
        "anchor": "top-left",
        "size_hint": "320px",
        "z_layer": "base",
        "notes": "Job metadata sidebar"
      },
      {
        "zone_id": "right_content_zone",
        "component": "right_panel",
        "anchor": "top-left",
        "size_hint": "auto",
        "z_layer": "base",
        "notes": "Main tabbed content area"
      }
    ],
    "responsive_overrides": []
  },
  "navigation_ir": {
    "tabs": [],
    "modals": {},
    "drawers": {},
    "routes": [],
    "breadcrumb": null,
    "default_tab": null
  },
  "realtime_ir": {
    "timers": {},
    "polling": {}
  },
  "metadata": {
    "ir_version": "3.5",
    "generated_at": "",
    "source_prompt": null,
    "schema_session_id": null,
    "warnings": []
  },
  "page_data_contract": null,
  "schema_ir": null
}
