[
  {
    "name": "User Grid",
    "entity_name": "user",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "users",
    "associated_tables": [
      { "table": "user_details", "where_clause": "user_id = $1" },
      { "table": "user_roles", "where_clause": "user_id = $1" },
      { "table": "user_permissions", "where_clause": "user_id = $1" },
      {
        "table": "audit_logs",
        "where_clause": "user_id = $1 AND status_id != 3"
      },
      {
        "table": "request_logs",
        "where_clause": "user_id = $1 AND status_id != 3"
      },
      { "table": "otps", "where_clause": "user_id = $1" },
      {
        "table": "notification_process_jobs",
        "where_clause": "user_id = $1 AND status_id != 3"
      }
    ],
    "query_information": {
      "attached_policies": ["adminusercolumns"],
      "sort_columns": [["users.id", "desc"]],
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "user_details",
          "join_condition": "user_details.user_id = users.id"
        },
        {
          "table_name": "user_roles",
          "join_type": "LEFT",
          "join_condition": "users.id = user_roles.user_id"
        },
        {
          "table_name": "roles",
          "join_type": "LEFT",
          "join_condition": "roles.id = user_roles.role_id"
        }
      ],
      "group_by": [
        "users.id",
        "users.uuid",
        "user_details.code",
        "user_details.gender",
        "user_details.phone_number",
        "user_details.country_code",
        "last_name",
        "first_name",
        "email",
        "users.status_id"
      ],
      "search_all": [
        { "column_name": "users.status_id", "value": 3, "operator": "!=" },
        {
          "column_name": "users.role",
          "value": ["super_admin", "company_admin"],
          "operator": "NOT IN"
        }
      ]
    },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "users.id",
        "display_name": "gparam_1",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "users.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "users.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "order_no": 1,
        "field_name": "user_details.code",
        "clause_type": "where",
        "is_sortable": true,

        "display_name": "code",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true
      },
      {
        "master_grid_id": 0,
        "field_name": "concat(user_details.first_name, ' ', user_details.last_name)",
        "display_name": "name",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "users.email",
        "display_name": "email",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "STRING_AGG(roles.name, ', ')",
        "display_name": "user_roles",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "user_details.gender::text",
        "display_name": "gender",

        "order_no": 4.2,
        "enum_values":{
          "mode":"from_config",
          "config_key":"dropdown_gender"
        },
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "users.status_id",
        "display_name": "status",
        "order_no": 6,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "CASE  WHEN users.password IS NULL OR users.password = '' THEN false  ELSE true  END",
        "display_name": "password",
        "order_no": 6,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "users.is_drafted",
        "display_name": "is_drafted",
        "order_no": 7,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "users.process_status",
        "display_name": "process_status",
        "order_no": 7,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "users.reason",
        "display_name": "reason",
        "order_no": 7,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "concat(user_details.country_code, ' ', user_details.phone_number)",
        "display_name": "phone_number",
        "order_no": 5,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 3,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Delete User form",
    "entity_name": "delete_user_form",
    "entity_type": "job_builder_module",
    "static_page_content": null,
    "query_information": {
      "data": { "table1": [{ "deleted_at": true, "deleted_by": true }] },
      "table": ["users"],
      "action": ["delete"],
      "reset_unique": {
        "table1": [
          { "column_name": "email", "column_length": 100 },
          { "column_name": "username", "column_length": 100 }
        ]
      },
      "conditions": { "table1": [{ "id": "$unique_id" }] },
      "table_mapping": ["table1"]
    }
  },
  {
    "name": "Role Grid",
    "entity_name": "role",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "roles",
    "associated_tables": [
      { "table": "user_roles", "where_clause": "role_id = $1" },
      { "table": "role_permissions", "where_clause": "role_id = $1" }
    ],
    "query_information": {
      "sort_columns": [["roles.id", "desc"]],
      "search_all": [
        {
          "value": 3,
          "operator": "!=",
          "column_name": "roles.status_id"
        },
        {
          "value": "Driver",
          "operator": "!=",
          "column_name": "roles.name"
        },
        {
          "value": "Customer",
          "operator": "!=",
          "column_name": "roles.name"
        }
      ]
    },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "roles.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "roles.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "roles.name",
        "display_name": "name",
        "order_no": 1,
        "enum_values": {
          "mode":"direct",
  "type": "autocomplete",
  "optionKey": "name",  
  "optionValue": "name",
  "value": {
	  "company_id": 1,
	  "primary_table": "roles",
	  "sort_columns": [
	    [
	      "roles.name",
	      "asc"
	    ]
	  ],
	  "search_all": [
	    {
	      "column_name": "roles.status_id",
	      "value": 3,
	      "operator": "!="
	    },
	   
	    {
	      "column_name": "roles.name",
	      "value": "%searchTerm%",
	      "operator": "LIKE"
	    }
	  ],
	  "select_columns": [ [
	      "roles.name"
	    ]
	  ]
	}
},
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "roles.status_id",
        "display_name": "status",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Notification Template Grid",
    "entity_name": "email_template",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "notification_templates",
    "query_information": {
      "search_all": [],
      "sort_columns": [["notification_templates.id", "desc"]]
    },
    "company_id": 1,
    "associated_tables": [
      {
        "table": "notification_template_assignments",
        "where_clause": "template_id = $1"
      }
    ],
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "notification_templates.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_templates.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_templates.name",
        "display_name": "notification_template_name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_templates.notification_type",
        "display_name": "type",
        "order_no": 2,
        "enum_values": {
  "mode": "from_config",
  "config_key": "dropdown_notify_type"
},
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_templates.status_id",
        "display_name": "status",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Delete Notification Template form",
    "entity_name": "delete_email_template_form",
    "entity_type": "job_builder_module",
    "static_page_content": null,
    "query_information": {
      "data": { "table1": [{ "deleted_at": true, "deleted_by": true }] },
      "table": ["notification_templates"],
      "action": ["delete"],
      "conditions": { "table1": [{ "id": "$unique_id" }] },
      "table_mapping": ["table1"]
    }
  },
  {
    "name": "Whatsapp Template Grid",
    "entity_name": "whatsapp_template",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "notification_templates",
    "query_information": {
      "search_all": [
        {
          "column_name": "notification_templates.notification_type",
          "operator": "=",
          "value": "whatsapp"
        }
      ],
      "sort_columns": [["notification_templates.id", "desc"]]
    },
    "company_id": 1,
    "associated_tables": [
      {
        "table": "notification_template_assignments",
        "where_clause": "template_id = $1"
      }
    ],
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "notification_templates.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_templates.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_templates.name",
        "display_name": "whatsapp_template_name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_templates.status_id",
        "display_name": "status",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Delete Whatsapp Template form",
    "entity_name": "delete_whatsapp_template_form",
    "entity_type": "job_builder_module",
    "static_page_content": null,
    "query_information": {
      "data": { "table1": [{ "deleted_at": true, "deleted_by": true }] },
      "table": ["notification_templates"],
      "action": ["delete"],
      "conditions": { "table1": [{ "id": "$unique_id" }] },
      "table_mapping": ["table1"]
    }
  },
  {
    "name": "App Error Log Grid",
    "entity_name": "app_error_log",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "request_logs",
    "query_information": { "sort_columns": [["request_logs.id", "desc"]] },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "request_logs.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "request_logs.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "request_logs.res_message",
        "display_name": "error_message",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "request_logs.req_url",
        "display_name": "url",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "request_logs.created_at",
        "display_name": "occured_datetime",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 7,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "to_char(request_logs.created_at,'YYYY-MM-DD HH24:MI')",
        "display_name": "occured_datetime_filter",
        "order_no": 4,
        "is_grid_column": false,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 7,
        "company_id": 1
      }
    ]
  },
  {
    "name": "App Error Logs Details Page",
    "entity_name": "app_error_log_page_details_page",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"space-y-4 p-4\">  <!-- Request Device -->  <div class=\"flex items-start\">    <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">{{hbp_translate \"request_device\"}}:</label>    <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">      {{result_data.req_device}}    </div>  </div>  <!-- Request URL -->  <div class=\"flex items-start\">    <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">{{hbp_translate \"request_url\"}}:</label>    <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">      {{result_data.req_url}}    </div>  </div>  <!-- Message -->  <div class=\"flex items-start\">    <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">{{hbp_translate \"message\"}}:</label>    <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">      {{result_data.res_message}}    </div>  </div>  <!-- Request Response -->  <div class=\"flex items-start\">    <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">{{hbp_translate \"response\"}}:</label>    <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">      {{result_data.req_response}}    </div>  </div>  <!-- Request Body (Full Width, Scrollable) -->  <div class=\"flex items-start\">    <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">{{hbp_translate \"request_body\"}}:</label>    <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light overflow-auto\" style=\"min-height: 300px; max-height: 300px;\">      {{result_data.req_body}}    </div>  </div>  <!-- Created At -->  <div class=\"flex items-start\">    <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">{{hbp_translate \"created_at\"}}:</label>    <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">      {{result_data.created_at}}    </div>  </div></div>",
    "query_information": {
      "company_id": 1,
      "search_all": [
        {
          "value": "$unique_id",
          "operator": "=",
          "column_name": "request_logs.uuid"
        }
      ],
      "sort_columns": [["request_logs.id", "desc"]],
      "primary_table": "request_logs",
      "limit_range": 100,
      "print_query": false,
      "start_index": 0,
      "select_columns": [
        ["request_logs.res_message", "res_message"],
        ["request_logs.req_url", "req_url"],
        ["request_logs.req_body", "req_body"],
        ["request_logs.req_response", "req_response"],
        ["request_logs.req_device", "req_device"],
        ["request_logs.created_at", "created_at"]
      ]
    }
  },
  {
    "name": "Delete Error Log form",
    "entity_name": "delete_app_error_log_form",
    "entity_type": "job_builder_module",
    "static_page_content": null,
    "query_information": {
      "data": { "table1": [{ "deleted_at": true }] },
      "table": ["request_logs"],
      "action": ["delete"],
      "conditions": { "table1": [{ "id": "$unique_id" }] },
      "table_mapping": ["table1"]
    }
  },
  {
    "name": "Entity Grid",
    "entity_name": "master_entity",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "master_entities",
    "associated_tables": [
      {
        "table": "master_entity_line_items",
        "where_clause": "master_grid_id = $1 AND status_id != 3"
      }
    ],
    "query_information": {
      "sort_columns": [["master_entities.id", "desc"]],
      "group_by": ["master_entities.id"],
      "includes": [
        {
          "join_type": "LEFT",
          "table_name": "master_entity_line_items",
          "join_condition": "master_entities.id = master_entity_line_items.master_grid_id"
        }
      ]
    },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "master_entities.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "master_entities.uuid",
        "display_name": "uuid",
        "order_no": 1,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "master_entities.name",
        "display_name": "name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "master_entities.entity_type",
        "display_name": "entity_type",
        "order_no": 1,
        "enum_values":{
          "mode":"direct",
  "type": "master",
  "optionKey": "entity_type",  
  "optionValue": "entity_type",
  "value": {
	  "company_id": 1,
	  "primary_table": "entity_types",
	  "sort_columns": [
	    [
	      "entity_types.slug",
	      "asc"
	    ]
	  ],
	  "search_all": [
	   
	    
	  ],
	  "select_columns": [ [
	      "entity_types.slug",
"entity_type"
	    ]
	  ]
	}
},
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "master_entities.entity_name",
        "display_name": "entity_name",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "master_entities.primary_table",
        "display_name": "primary_table",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "COUNT(master_entity_line_items.id)",
        "display_name": "item_count",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "master_entities.status_id",
        "display_name": "status",
        "order_no": 5,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Import Template Grid",
    "entity_name": "import_template",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "import_templates",
    "associated_tables": [
      {
        "table": "import_template_line_items",
        "where_clause": "import_template_id = $1 AND status_id != 3"
      },
      {
        "table": "import_template_queries",
        "where_clause": "import_template_id = $1 AND status_id != 3"
      }
    ],
    "query_information": {
      "print_query": true,
      "group_by": [
        "import_templates.id",
        "li.columns_count",
        "iq.queries_count"
      ],
      "includes": [
        {
          "join_type": "LEFT",
          "table_name": "( SELECT import_template_id, COUNT(*) AS columns_count FROM import_template_line_items GROUP BY import_template_id ) li",
          "join_condition": " li.import_template_id = import_templates.id"
        },
        {
          "join_type": "LEFT",
          "table_name": "( SELECT import_template_id, COUNT(*) AS queries_count FROM import_template_queries GROUP BY import_template_id ) iq",
          "join_condition": " iq.import_template_id = import_templates.id"
        }
      ],
      "sort_columns": [["import_templates.id", "desc"]]
    },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "import_templates.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "import_templates.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "import_templates.name",
        "display_name": "name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "import_templates.description",
        "display_name": "description",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "import_templates.slug",
        "display_name": "slug",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "COALESCE(li.columns_count, 0)",
        "display_name": "columns_count",
        "order_no": 4,
        "link_mode": "none",
        "link_type": "child_grid",
        "link_action": "childgrid_import_template_lineitems",
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "COALESCE(iq.queries_count, 0)",
        "display_name": "queries_count",
        "order_no": 4,
        "link_mode": "none",
        "link_type": "child_grid",
        "link_action": "childgrid_import_template_queries",
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "import_templates.status_id",
        "display_name": "status",
        "order_no": 5,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "import_templates.uuid",
        "display_name": "gparam_1",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Import Template Line Items Child Grid",
    "entity_name": "childgrid_import_template_lineitems",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "import_template_line_items",
    "associated_tables": null,
    "query_information": {
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "import_templates",
          "join_condition": "import_templates.id = import_template_line_items.import_template_id"
        }
      ],
      "search_all": [
        {
          "value": "$gparam_1",
          "operator": "=",
          "column_name": "import_templates.uuid"
        }
      ],
      "sort_columns": [["import_template_line_items.id", "desc"]]
    },
    "company_id": 1,
    "lineitems": [
      {
        "company_id": 1,
        "order_no": 0,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "import_template_line_items.field_name",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "field_name",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true
      },
      {
        "company_id": 1,
        "order_no": 1,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "import_template_line_items.display_name",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "display_name",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true
      },
      {
        "company_id": 1,
        "order_no": 2,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "import_template_line_items.field_table",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "field_table",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true
      },
      {
        "company_id": 1,
        "order_no": 3,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "import_template_line_items.order_no",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "order_no",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true
      },
      {
        "company_id": 1,
        "order_no": 4,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "import_template_line_items.field_type_id",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "field_type_id",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true
      }
    ]
  },
  {
    "name": "Import Template Queries Child Grid",
    "entity_name": "childgrid_import_template_queries",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "import_template_queries",
    "associated_tables": null,
    "query_information": {
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "import_templates",
          "join_condition": "import_templates.id = import_template_queries.import_template_id"
        }
      ],
      "search_all": [
        {
          "value": "$gparam_1",
          "operator": "=",
          "column_name": "import_templates.uuid"
        }
      ],
      "sort_columns": [["import_template_queries.id", "desc"]]
    },
    "company_id": 1,
    "lineitems": [
      {
        "company_id": 1,
        "order_no": 0,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "import_template_queries.query_name",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "query_name",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true
      },
      {
        "company_id": 1,
        "order_no": 1,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "import_template_queries.query_string",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "query_string",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true
      },
      {
        "company_id": 1,
        "order_no": 3,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "import_template_queries.order_no",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "order_no",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true
      }
    ]
  },
  {
    "name": "Add Edit Import Template Page",
    "entity_name": "common_form_import_template",
    "entity_type": "import_template_module",
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Export Template Grid",
    "entity_name": "export_template",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "export_templates",
    "associated_tables": [
      {
        "table": "export_template_line_items",
        "where_clause": "export_template_id = $1 AND status_id != 3"
      }
    ],
    "query_information": {
      "group_by": [
        "export_templates.id",
        "li.columns_count",
        "iq.queries_count"
      ],
      "includes": [
        {
          "join_type": "LEFT",
          "table_name": "( SELECT export_template_id, COUNT(*) AS columns_count FROM export_template_line_items GROUP BY export_template_id ) li",
          "join_condition": " li.export_template_id = export_templates.id"
        },
        {
          "join_type": "LEFT",
          "table_name": "( SELECT export_template_id, COUNT(*) AS queries_count FROM export_template_queries GROUP BY export_template_id ) iq",
          "join_condition": " iq.export_template_id = export_templates.id"
        }
      ],
      "print_query": true,
      "sort_columns": [["export_templates.id", "desc"]]
    },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "export_templates.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "export_templates.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "export_templates.name",
        "display_name": "name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "export_templates.description",
        "display_name": "description",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "export_templates.slug",
        "display_name": "slug",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "COALESCE(li.columns_count, 0)",
        "display_name": "columns_count",
        "order_no": 4,
        "link_mode": "none",
        "link_type": "child_grid",
        "link_action": "childgrid_export_template_lineitems",
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "COALESCE(iq.queries_count, 0)",
        "display_name": "queries_count",
        "order_no": 4,
        "link_mode": "none",
        "link_type": "child_grid",
        "link_action": "grid_export_template_queries_child_grid",
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "export_templates.status_id",
        "display_name": "status",
        "order_no": 5,
        "link_mode": "none",
        "link_type": "child_grid",
        "link_action": "childgrid_export_template_queries",
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "export_templates.uuid",
        "display_name": "gparam_1",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Export Template Line Items Child Grid",
    "entity_name": "childgrid_export_template_lineitems",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "export_template_line_items",
    "associated_tables": null,
    "query_information": {
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "export_templates",
          "join_condition": "export_templates.id = export_template_line_items.export_template_id"
        }
      ],
      "search_all": [
        {
          "value": "$gparam_1",
          "operator": "=",
          "column_name": "export_templates.uuid"
        }
      ],
      "sort_columns": [["export_template_line_items.id", "desc"]]
    },
    "company_id": 1,
    "lineitems": [
      {
        "company_id": 1,
        "order_no": 0,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "export_template_line_items.field_name",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "field_name",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true
      },
      {
        "company_id": 1,
        "order_no": 1,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "export_template_line_items.display_name",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "display_name",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true
      },
      {
        "company_id": 1,
        "order_no": 2,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "export_template_line_items.field_table",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "field_table",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true
      },
      {
        "company_id": 1,
        "order_no": 3,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "export_template_line_items.order_no",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "order_no",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true
      },
      {
        "company_id": 1,
        "order_no": 4,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "export_template_line_items.field_type_id",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "field_type_id",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true
      }
    ]
  },
  {
    "name": "Export Template Queries Child Grid",
    "entity_name": "childgrid_export_template_queries",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "export_template_queries",
    "associated_tables": null,
    "query_information": {
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "export_templates",
          "join_condition": "export_templates.id = export_template_queries.export_template_id"
        }
      ],
      "search_all": [
        {
          "value": "$gparam_1",
          "operator": "=",
          "column_name": "export_templates.uuid"
        }
      ],
      "sort_columns": [["export_template_queries.id", "desc"]]
    },
    "company_id": 1,
    "lineitems": [
      {
        "company_id": 1,
        "order_no": 0,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "export_template_queries.query_name",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "query_name",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true
      },
      {
        "company_id": 1,
        "order_no": 1,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "export_template_queries.query_string",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "query_string",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true
      },
      {
        "company_id": 1,
        "order_no": 3,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "export_template_queries.order_no",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "order_no",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true
      }
    ]
  },
  {
    "name": "Add Edit Export Template Page",
    "entity_name": "common_form_export_template",
    "entity_type": "export_template_module",
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Menu Mapping",
    "entity_name": "menu_mapping",
    "entity_type": "menu_module",
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "User/Role Entity Map Page",
    "entity_name": "user_role_map_entity",
    "entity_type": "entity_user_role_map_module",
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Add Edit Entity Form Page",
    "entity_name": "master_add_edit_form_entity",
    "entity_type": "entity_form_module",
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "language_contents",
    "entity_name": "language_content",
    "entity_type": "language_contents_module",
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Notification Template Tags",
    "entity_name": "notification_template_tag",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "notification_template_tags",
    "query_information": {
      "sort_columns": [["notification_template_tags.id", "desc"]]
    },
    "company_id": 1,
    "associated_tables": [
      {
        "table": "notification_template_process_tags_mapping",
        "where_clause": "notification_template_tag_id = $1"
      }
    ],
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "notification_template_tags.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_tags.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_tags.name",
        "display_name": "name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_tags.slug",
        "display_name": "slug",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_tags.status_id",
        "display_name": "status",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Notification Template Recipient Tags",
    "entity_name": "notification_template_recipient_tag",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "notification_template_recipient_tags",
    "query_information": {
      "sort_columns": [["notification_template_recipient_tags.id", "desc"]]
    },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "notification_template_recipient_tags.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_recipient_tags.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_recipient_tags.name",
        "display_name": "name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_recipient_tags.slug",
        "display_name": "slug",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_recipient_tags.notification_type",
        "display_name": "type",
        "order_no": 3,
        "enum_values": {
  "mode": "from_config",
  "config_key": "dropdown_notify_type"
},
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_recipient_tags.status_id",
        "display_name": "status",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Notication Template Process",
    "entity_name": "email_template_process",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "notification_template_process",
    "query_information": {
      "search_all": [],
      "sort_columns": [["notification_template_process.id", "desc"]]
    },
    "company_id": 1,
    "associated_tables": [
      {
        "table": "notification_template_process_tags_mapping",
        "where_clause": "notification_template_process_id = $1"
      },
      {
        "table": "notification_templates",
        "where_clause": "notification_template_process_id = $1 AND status_id != 3"
      },
      {
        "table": "notification_template_assignments",
        "where_clause": "notification_template_process_id = $1"
      }
    ],
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.name",
        "display_name": "name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.slug",
        "display_name": "slug",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.status_id",
        "display_name": "status",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Notication Template Assignment",
    "entity_name": "email_template_assignment",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "notification_template_process",
    "query_information": {
      "search_all": [],
      "sort_columns": [["notification_template_process.id", "desc"]]
    },
    "company_id": 1,
    "associated_tables": [
      {
        "table": "notification_template_process_tags_mapping",
        "where_clause": "notification_template_process_id = $1"
      },
      {
        "table": "notification_templates",
        "where_clause": "notification_template_process_id = $1 AND status_id != 3"
      },
      {
        "table": "notification_template_assignments",
        "where_clause": "notification_template_process_id = $1"
      }
    ],
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.name",
        "display_name": "name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.slug",
        "display_name": "slug",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.notification_type",
        "display_name": "type",
        "enum_values":{
  "mode": "from_config",
  "config_key": "dropdown_notify_type"
},
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.status_id",
        "display_name": "status",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Whatsapp Template Process",
    "entity_name": "whatsapp_template_process",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "notification_template_process",
    "query_information": {
      "search_all": [
        {
          "column_name": "notification_template_process.notification_type",
          "operator": "=",
          "value": "whatsapp"
        }
      ],
      "sort_columns": [["notification_template_process.id", "desc"]]
    },
    "company_id": 1,
    "associated_tables": [
      {
        "table": "notification_template_process_tags_mapping",
        "where_clause": "notification_template_process_id = $1"
      },
      {
        "table": "notification_templates",
        "where_clause": "notification_template_process_id = $1 AND status_id != 3"
      },
      {
        "table": "notification_template_assignments",
        "where_clause": "notification_template_process_id = $1"
      }
    ],
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.name",
        "display_name": "name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.slug",
        "display_name": "slug",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.status_id",
        "display_name": "status",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Whatsapp Template Assignment",
    "entity_name": "whatsapp_template_assignment",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "notification_template_process",
    "query_information": {
      "search_all": [
        {
          "column_name": "notification_template_process.notification_type",
          "operator": "=",
          "value": "whatsapp"
        }
      ],
      "sort_columns": [["notification_template_process.id", "desc"]]
    },
    "company_id": 1,
    "associated_tables": [
      {
        "table": "notification_template_process_tags_mapping",
        "where_clause": "notification_template_process_id = $1"
      },
      {
        "table": "notification_templates",
        "where_clause": "notification_template_process_id = $1 AND status_id != 3"
      },
      {
        "table": "notification_template_assignments",
        "where_clause": "notification_template_process_id = $1"
      }
    ],
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.name",
        "display_name": "name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.slug",
        "display_name": "slug",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.status_id",
        "display_name": "status",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Documentation ",
    "entity_name": "documentation",
    "entity_type": "help_page_module",
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Menu Management",
    "entity_name": "menu_mangement",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "menu",
    "query_information": { "sort_columns": [["menu.id", "desc"]] },
    "associated_tables": [
      {
        "table": "menu_items",
        "where_clause": "menu_id = $1 AND status_id != 3"
      }
    ],
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "menu.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "menu.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "menu.name",
        "display_name": "name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "menu.status_id",
        "display_name": "status",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Wizard Group List",
    "entity_name": "wizard_group",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "wizard_group",
    "associated_tables": [
      {
        "table": "master_entities",
        "where_clause": "dashboard_wizard_group_id = $1 AND status_id != 3"
      }
    ],
    "query_information": { "sort_columns": [["wizard_group.id", "desc"]] },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "wizard_group.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "wizard_group.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "wizard_group.name",
        "display_name": "name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "wizard_group.status_id",
        "display_name": "status",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Data Transfer Queries",
    "entity_name": "data_transfer_queries",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "data_transfer_queries",
    "query_information": {
      "sort_columns": [["data_transfer_queries.id", "desc"]]
    },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "data_transfer_queries.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "data_transfer_queries.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "data_transfer_queries.transfer_type",
        "display_name": "transfer_type",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "data_transfer_queries.destination_table",
        "display_name": "destination_table",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "CASE WHEN clear_destination_table THEN 'Yes' ELSE 'No' END",
        "display_name": "clear_destination_table",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "data_transfer_queries.execution_order",
        "display_name": "execution_order",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "data_transfer_queries.command_type",
        "display_name": "command_type",
        "order_no": 5,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "data_transfer_queries.status_id",
        "display_name": "status",
        "order_no": 6,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Delete Data Transfer Queries",
    "entity_name": "delete_data_transfer_queries",
    "entity_type": "job_builder_module",
    "static_page_content": null,
    "query_information": {
      "data": { "table1": [{ "deleted_at": true, "deleted_by": true }] },
      "table": ["data_transfer_queries"],
      "action": ["delete"],
      "conditions": { "table1": [{ "id": "$unique_id" }] },
      "table_mapping": ["table1"]
    }
  },
  {
    "name": "Role Details Page",
    "entity_name": "role_details_page",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6 p-4\">  <!-- Role Name -->  <div class=\"flex flex-col\">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"role_name\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.name}}</div>  </div>  <!-- Status -->  <div class=\"flex flex-col\">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"form_label_status\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.status_name}}</div>  </div>  <!-- Description -->  <div class=\"flex flex-col \">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"form_label_description\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.description}}</div>  </div></div>",
    "query_information": {
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "statuses",
          "join_condition": "roles.status_id = statuses.id"
        }
      ],
      "company_id": 1,
      "search_all": [
        { "value": "$unique_id", "operator": "=", "column_name": "roles.uuid" },
        { "value": "3", "operator": "!=", "column_name": "roles.status_id" }
      ],
      "sort_columns": [["roles.id", "desc"]],
      "primary_table": "roles",
      "limit_range": 1,
      "print_query": false,
      "start_index": 0,
      "select_columns": [
        ["roles.name", "name"],
        ["statuses.name", "status_name"],
        ["roles.description", "description"]
      ]
    }
  },
  {
    "name": "User Details Page",
    "entity_name": "user_details_page",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6 p-4\">  <!-- User Code -->  <div class=\"flex flex-col\">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"user_code\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.code}}</div>  </div>  <!-- Firstname and Lastname -->  <div class=\"flex flex-col\">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"form_label_name\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.firstname}} {{result_data.lastname}}</div>  </div>  <!-- Email -->  <div class=\"flex flex-col\">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"email\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.email}}</div>  </div>  <!-- Roles -->  <div class=\"flex flex-col \">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"role\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.roles}}</div>  </div>  <!-- Status -->  <div class=\"flex flex-col\">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"status\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.status_name}}</div>  </div></div>",
    "query_information": {
      "group_by": [
        "user_details.code",
        "user_details.first_name",
        "user_details.last_name",
        "users.id",
        "users.email",
        "statuses.name"
      ],
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "user_details",
          "join_condition": "user_details.user_id = users.id"
        },
        {
          "join_type": "INNER",
          "table_name": "user_roles",
          "join_condition": "user_roles.user_id = users.id"
        },
        {
          "join_type": "INNER",
          "table_name": "roles",
          "join_condition": "roles.id = user_roles.role_id"
        },
        {
          "join_type": "INNER",
          "table_name": "statuses",
          "join_condition": "users.status_id = statuses.id"
        }
      ],
      "company_id": 1,
      "search_all": [
        { "value": "$unique_id", "operator": "=", "column_name": "users.uuid" },
        { "value": "3", "operator": "!=", "column_name": "users.status_id" }
      ],
      "sort_columns": [["users.id", "desc"]],
      "primary_table": "users",
      "limit_range": 1,
      "print_query": false,
      "start_index": 0,
      "select_columns": [
        ["user_details.code", "code"],
        ["user_details.first_name", "firstname"],
        ["user_details.last_name", "lastname"],
        ["users.email", "email"],
        ["STRING_AGG(roles.name, ', ')", "roles"],
        ["statuses.name", "status_name"]
      ]
    }
  },
  {
    "name": "Notification Details Page",
    "entity_name": "notification_details_page",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"space-y-4 p-4\">\r\n   <!-- Process Slug -->  \r\n   <div class=\"flex items-start\">\r\n      <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">{{hbp_translate \"process_slug\"}}:</label>    \r\n      <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">      {{result_data.process_slug}}    </div>\r\n   </div>\r\n   <!-- Notification Type -->  \r\n   <div class=\"flex items-start\">\r\n      <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">{{hbp_translate \"notification_type\"}}:</label>    \r\n      <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">      {{result_data.notification_type}}    </div>\r\n   </div>\r\n   <!-- Notification Subject -->  \r\n   <div class=\"flex items-start\">\r\n      <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">{{hbp_translate \"notification_subject\"}}:</label>    \r\n      <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">      {{result_data.notification_subject}}    </div>\r\n   </div>\r\n   <!-- Notification To -->  \r\n   <div class=\"flex items-start\">\r\n      <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">{{hbp_translate \"notification_to\"}}:</label>    \r\n      <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">      {{result_data.notification_to}}    </div>\r\n   </div>\r\n   <!-- Notification CC --> \r\n   <div class=\"flex items-start\">\r\n      <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">{{hbp_translate \"notification_cc\"}}:</label>    \r\n      <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">      {{result_data.notification_cc}}    </div>\r\n   </div>\r\n   <!--Notication Bcc --> \r\n   <div class=\"flex items-start\">\r\n      <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">{{hbp_translate \"notification_bcc\"}}:</label>    \r\n      <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">      {{result_data.notification_bcc}}    </div>\r\n   </div>\r\n   <!-- Notification Content -->  \r\n   <div class=\"flex items-start\">\r\n      <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">{{hbp_translate \"notification_content\"}}:</label>    \r\n      <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light overflow-auto\" style=\"min-height: 300px; max-height: 300px;\">\r\n         <render-html> {{result_data.notification_content}} </render-html>\r\n      </div>\r\n   </div>\r\n\r\n   <!-- Notification Content -->  \r\n   <div class=\"flex items-start\">\r\n      <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">{{hbp_translate \"no_of_attempts\"}}:</label>    \r\n      \r\n      \r\n      <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">      {{result_data.no_of_attempts}}    </div>\r\n   </div>\r\n\r\n   <!-- Notification Content -->  \r\n   <div class=\"flex items-start\">\r\n      <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">{{hbp_translate \"last_attempt_message\"}}:</label>    \r\n      \r\n      <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">      {{result_data.last_attempt_message}}    </div>\r\n   </div>\r\n   <!-- Created At -->  \r\n   <div class=\"flex items-start\">\r\n      <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">{{hbp_translate \"created_at\"}}:</label>    \r\n      <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">      {{result_data.created_at}}    </div>\r\n   </div>\r\n   <!-- Updated At -->  \r\n   <div class=\"flex items-start\">\r\n      <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">{{hbp_translate \"updated_at\"}}:</label>    \r\n      <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">      {{result_data.updated_at}}    </div>\r\n   </div>\r\n   <!-- Sent At -->  \r\n   <div class=\"flex items-start\">\r\n      <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">{{hbp_translate \"sent_at\"}}:</label>    \r\n      <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">      {{result_data.sent_at}}    </div>\r\n   </div>\r\n   <!-- Notification Status -->  \r\n   <div class=\"flex items-start\">\r\n      <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">{{hbp_translate \"notification_status\"}}:</label>    \r\n      <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">      {{result_data.notification_status}}    </div>\r\n   </div>\r\n</div>",
    "query_information": {
      "group_by": [
        "notification_jobs.id",
        "notification_jobs.process_slug",
        "cat_type.name",
        "cat_status.name",
        "notification_jobs.notification_subject",
        "notification_jobs.notification_to",
        "notification_jobs.notification_cc",
        "notification_jobs.notification_bcc",
        "notification_jobs.last_attempt_message",
        "notification_jobs.updated_at",
        "statuses.name"
      ],
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "app_categories as cat_type",
          "join_condition": "notification_jobs.notification_type_id = cat_type.category_id"
        },
        {
          "join_type": "INNER",
          "table_name": "statuses",
          "join_condition": "notification_jobs.status_id = statuses.id"
        },
        {
          "join_type": "INNER",
          "table_name": "app_categories as cat_status",
          "join_condition": "notification_jobs.notification_status_id = cat_status.category_id"
        }
      ],
      "company_id": 1,
      "search_all": [
        {
          "value": "$unique_id",
          "operator": "=",
          "column_name": "notification_jobs.uuid"
        },
        {
          "value": "3",
          "operator": "!=",
          "column_name": "notification_jobs.status_id"
        }
      ],
      "limit_range": 1,
      "print_query": false,
      "start_index": 0,
      "sort_columns": [["notification_jobs.id", "desc"]],
      "primary_table": "notification_jobs",
      "select_columns": [
        ["notification_jobs.process_slug", "process_slug"],
        ["cat_type.name", "notification_type"],
        ["notification_jobs.notification_subject", "notification_subject"],
        ["notification_jobs.notification_to", "notification_to"],
        ["notification_jobs.notification_cc", "notification_cc"],
        ["notification_jobs.notification_bcc", "notification_bcc"],
        ["notification_jobs.notification_content", "notification_content"],
        [
          "TO_CHAR(notification_jobs.created_at, 'YYYY-MM-DD HH24:MI:SS')",
          "created_at"
        ],
        [
          "TO_CHAR(notification_jobs.sent_at, 'YYYY-MM-DD HH24:MI:SS')",
          "sent_at"
        ],
        ["statuses.name", "status_name"],
        ["cat_status.name", "notification_status"],
        ["notification_jobs.last_attempt_message", "last_attempt_message"],
        ["notification_jobs.updated_at", "updated_at"]
      ]
    }
  },
  {
    "name": "Delete Role form",
    "entity_name": "delete_role_form",
    "entity_type": "job_builder_module",
    "static_page_content": null,
    "query_information": {
      "data": { "table1": [{ "deleted_at": true, "deleted_by": true }] },
      "table": ["roles"],
      "action": ["delete"],
      "reset_unique": {
        "table1": [{ "column_name": "name", "column_length": 100 }]
      },
      "conditions": { "table1": [{ "id": "$unique_id" }] },
      "table_mapping": ["table1"]
    }
  },
  {
    "name": "Configuration",
    "entity_name": "configuration",
    "entity_type": "configurations_module",
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Global Configuration",
    "entity_name": "globalconfiguration",
    "entity_type": "configurations_module",
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "User Configuration",
    "entity_name": "userconfiguration",
    "entity_type": "user_configurations_module",
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Global Configuration",
    "entity_name": "globaluserconfiguration",
    "entity_type": "user_configurations_module",
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Documentation Getting Started",
    "entity_name": "documentation_getting_started",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"panel\">\n  <h3 class=\"mb-5 text-xl font-bold text-success\">Introduction to LCP</h3>\n  <div class=\"\">\n    <p>\n      The LCP web application is a SaaS-based solution designed to streamline and manage the operations of salesmen who deliver goods and supplies from various\n      companies to restaurants, cafes, and similar establishments. This application facilitates efficient tracking and coordination of the delivery process,\n      ensuring that salesmen can effectively manage their routes, deliveries, and customer interactions. It centralizes the entire workflow, providing real-time\n      insights into inventory levels, delivery status, and sales performance, ultimately enhancing the efficiency of the distribution network and improving\n      customer satisfaction.\n    </p>\n  </div>\n</div>\n\n<div class=\"panel\">\n  <h3 class=\"mb-5 text-xl font-bold text-success\">Features</h3>\n  <ul class=\"grid gap-5 sm:grid-cols-2 lg:grid-cols-3\">\n    <li class=\"inline-flex items-center gap-3\">\n      <span class=\"flex h-[35px] w-[35px] flex-none items-center justify-center\"> </span>\n      Fully Responsive\n    </li>\n    <li class=\"inline-flex items-center gap-3\">\n      <span class=\"flex h-[35px] w-[35px] flex-none items-center justify-center\"> </span>\n      Functional Dashboard\n    </li>\n    <li class=\"inline-flex items-center gap-3\">\n      <span class=\"flex h-[35px] w-[35px] flex-none items-center justify-center\"> </span>\n      Coded with Tailwind CSS\n    </li>\n    <li class=\"inline-flex items-center gap-3\">\n      <span class=\"flex h-[35px] w-[35px] flex-none items-center justify-center\"> </span>\n      Huge Number of Components\n    </li>\n    <li class=\"inline-flex items-center gap-3\">\n      <span class=\"flex h-[35px] w-[35px] flex-none items-center justify-center\"> </span>\n      Clean Code\n    </li>\n    <li class=\"inline-flex items-center gap-3\">\n      <span class=\"flex h-[35px] w-[35px] flex-none items-center justify-center\"> </span>\n      Drag n Drop Section\n    </li>\n    <li class=\"inline-flex items-center gap-3\">\n      <span class=\"flex h-[35px] w-[35px] flex-none items-center justify-center\"> </span>\n      Working Apps Section\n    </li>\n    <li class=\"inline-flex items-center gap-3\">\n      <span class=\"flex h-[35px] w-[35px] flex-none items-center justify-center\"> </span>\n      Free Lifetime Updates\n    </li>\n    <li class=\"inline-flex items-center gap-3\">\n      <span class=\"flex h-[35px] w-[35px] flex-none items-center justify-center\"> </span>\n      Custom DataTables\n    </li>\n    <li class=\"inline-flex items-center gap-3\">\n      <span class=\"flex h-[35px] w-[35px] flex-none items-center justify-center\"> </span>\n      Fast Performance\n    </li>\n    <li class=\"inline-flex items-center gap-3\">\n      <span class=\"flex h-[35px] w-[35px] flex-none items-center justify-center\"> </span>\n      Built-in Tools\n    </li>\n    <li class=\"inline-flex items-center gap-3\">\n      <span class=\"flex h-[35px] w-[35px] flex-none items-center justify-center\"> </span>\n      Easy to Customize\n    </li>\n    <li class=\"inline-flex items-center gap-3\">\n      <span class=\"flex h-[35px] w-[35px] flex-none items-center justify-center\"> </span>\n      Fast & Dedicated Support\n    </li>\n    <li class=\"inline-flex items-center gap-3\">\n      <span class=\"flex h-[35px] w-[35px] flex-none items-center justify-center\"> </span>\n      Useful Pages\n    </li>\n    <li class=\"inline-flex items-center gap-3\">\n      <span class=\"flex h-[35px] w-[35px] flex-none items-center justify-center\"> </span>\n      Detailed Documentation\n    </li>\n  </ul>\n</div>\n\n<div class=\"panel\">\n  <h3 class=\"mb-5 text-xl font-bold text-success\">Browser Compatibility</h3>\n  <ul class=\"grid gap-5 sm:grid-cols-2 lg:grid-cols-3\">\n    <li class=\"inline-flex items-center gap-3\">\n      <span class=\"flex h-[35px] w-[35px] flex-none items-center justify-center\"> </span>\n      Edge (Latest)\n    </li>\n    <li class=\"inline-flex items-center gap-3\">\n      <span class=\"flex h-[35px] w-[35px] flex-none items-center justify-center\"> </span>\n      Opera (Latest)\n    </li>\n    <li class=\"inline-flex items-center gap-3\">\n      <span class=\"flex h-[35px] w-[35px] flex-none items-center justify-center\"> </span>\n      Safari (Latest)\n    </li>\n    <li class=\"inline-flex items-center gap-3\">\n      <span class=\"flex h-[35px] w-[35px] flex-none items-center justify-center\"> </span>\n      Firefox (Latest)\n    </li>\n    <li class=\"inline-flex items-center gap-3\">\n      <span class=\"flex h-[35px] w-[35px] flex-none items-center justify-center\"> </span>\n      Chrome (Latest)\n    </li>\n  </ul>\n</div>",
    "query_information": null,
    "company_id": 1
  },
  {
    "name": "Documentation App Installation",
    "entity_name": "documentation_app_installation",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"panel\">\n  <div class=\"space-y-4\">\n    <p class=\"text-black\">\n      <strong>The following process will be used to install admin dashboard using package manager.</strong>\n    </p>\n    <ul class=\"list-decimal space-y-2 pl-5\">\n      <li>\n        Install Node.js: Please install the latest version of Node.js from\n        <a href=\"https://nodejs.org\" class=\"font-semibold text-success hover:text-black\" target=\"_blank\">https://nodejs.org</a>\n      </li>\n      <li>Extract main template: Extract the admin template site to your suitable directory or folder.</li>\n      <li>\n        Access Command Prompt: Open Node.js command prompt.\n        <ul>\n          <li><strong>Note:-</strong> The process mentioned below can also be executed with the system command prompt.</li>\n        </ul>\n      </li>\n      <li>In CMD, Navigate to the location where the main folder is extracted.</li>\n      <li>Navigate to the root folder of the project where the package.json file exists.</li>\n      <li>Install node dependencies: Run <code class=\"text-black\">npm install</code>.</li>\n      <li>\n        To run <code class=\"text-black\">npm start</code>.\n        <ul class=\"space-y-2\">\n          <li><strong>Note:-</strong> When you run the above command, it will run the project in the browser automatically.</li>\n          <li><strong>Note:-</strong> It will enable the auto-refresh function every time you save a file.</li>\n        </ul>\n      </li>\n      <li>Run the command <code class=\"text-black\">npm run build</code> to build for production.</li>\n    </ul>\n    <!--<p>\n      In case you have any problems or queries, please\n      <a href=\"/documentation/support\" rel=\"noopener noreferrer\" target=\"_blank\" class=\"font-semibold text-success hover:text-black\">contact us</a>\n    </p>-->\n  </div>\n</div>\n\n<h2 class=\"text-2xl font-bold text-primary\">File Structure</h2>\n<div class=\"panel\">\n  <p class=\"mb-4\">The arrangement below describes our file structure.</p>\n\n  <ul class=\"font-semibold\">\n    <li class=\"py-[5px]\">\n      <button type=\"button\" (click)=\"toggleTreeview1('app')\">\n        <icon-caret-down [class]=\"'w-5 h-5 text-primary inline relative -top-1 ltr:mr-2 rtl:ml-2 ' + [treeview1.includes('app') ? 'rotate-180' : '']\" />\n        <icon-folder class=\"relative -top-1 inline text-primary ltr:mr-2 rtl:ml-2\" />\n        App\n      </button>\n      <div [@slideDownUp]=\"!treeview1.includes('app')\" class=\"accordion-content\">\n        <ul class=\"ltr:pl-14 rtl:pr-14\">\n          <li class=\"py-[5px]\">\n            <button type=\"button\" (click)=\"toggleTreeview1('components')\">\n              <icon-caret-down\n                [class]=\"'w-5 h-5 text-primary inline relative -top-1 ltr:mr-2 rtl:ml-2 ' + [treeview1.includes('components') ? 'rotate-180' : '']\"\n              />\n              <icon-folder class=\"relative -top-1 inline text-primary ltr:mr-2 rtl:ml-2\" />\n              Components\n            </button>\n            <div [@slideDownUp]=\"!treeview1.includes('components')\" class=\"accordion-content\">\n              <ul class=\"ltr:pl-14 rtl:pr-14\">\n                <li class=\"py-[5px]\">\n                  <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n                  All the components files and folders\n                </li>\n              </ul>\n            </div>\n          </li>\n\n          <li class=\"py-[5px]\">\n            <button type=\"button\" (click)=\"toggleTreeview1('config')\">\n              <icon-caret-down\n                [class]=\"'w-5 h-5 text-primary inline relative -top-1 ltr:mr-2 rtl:ml-2 ' + [treeview1.includes('config') ? 'rotate-180' : '']\"\n              />\n              <icon-folder class=\"relative -top-1 inline text-primary ltr:mr-2 rtl:ml-2\" />\n              Config\n            </button>\n            <div [@slideDownUp]=\"!treeview1.includes('config')\" class=\"accordion-content\">\n              <ul class=\"ltr:pl-14 rtl:pr-14\">\n                <li class=\"py-[5px]\">\n                  <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n                  Common Configuration File\n                </li>\n              </ul>\n            </div>\n          </li>\n\n          <li class=\"py-[5px]\">\n            <button type=\"button\" (click)=\"toggleTreeview1('directives')\">\n              <icon-caret-down\n                [class]=\"'w-5 h-5 text-primary inline relative -top-1 ltr:mr-2 rtl:ml-2 ' + [treeview1.includes('directives') ? 'rotate-180' : '']\"\n              />\n              <icon-folder class=\"relative -top-1 inline text-primary ltr:mr-2 rtl:ml-2\" />\n              Directives\n            </button>\n            <div [@slideDownUp]=\"!treeview1.includes('directives')\" class=\"accordion-content\">\n              <ul class=\"ltr:pl-14 rtl:pr-14\">\n                <li class=\"py-[5px]\">\n                  <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n                  All the directive files and folders\n                </li>\n              </ul>\n            </div>\n          </li>\n\n          <li class=\"py-[5px]\">\n            <button type=\"button\" (click)=\"toggleTreeview1('formly')\">\n              <icon-caret-down\n                [class]=\"'w-5 h-5 text-primary inline relative -top-1 ltr:mr-2 rtl:ml-2 ' + [treeview1.includes('formly') ? 'rotate-180' : '']\"\n              />\n              <icon-folder class=\"relative -top-1 inline text-primary ltr:mr-2 rtl:ml-2\" />\n              Formly\n            </button>\n            <div [@slideDownUp]=\"!treeview1.includes('formly')\" class=\"accordion-content\">\n              <ul class=\"ltr:pl-14 rtl:pr-14\">\n                <li class=\"py-[5px]\">\n                  <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n                  All the formly files and folders\n                </li>\n              </ul>\n            </div>\n          </li>\n\n          <li class=\"py-[5px]\">\n            <button type=\"button\" (click)=\"toggleTreeview1('guards')\">\n              <icon-caret-down\n                [class]=\"'w-5 h-5 text-primary inline relative -top-1 ltr:mr-2 rtl:ml-2 ' + [treeview1.includes('guards') ? 'rotate-180' : '']\"\n              />\n              <icon-folder class=\"relative -top-1 inline text-primary ltr:mr-2 rtl:ml-2\" />\n              Guards\n            </button>\n            <div [@slideDownUp]=\"!treeview1.includes('guards')\" class=\"accordion-content\">\n              <ul class=\"ltr:pl-14 rtl:pr-14\">\n                <li class=\"py-[5px]\">\n                  <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n                  It contains the authentication and permission guard files\n                </li>\n              </ul>\n            </div>\n          </li>\n\n          <li class=\"py-[5px]\">\n            <button type=\"button\" (click)=\"toggleTreeview1('interceptors')\">\n              <icon-caret-down\n                [class]=\"'w-5 h-5 text-primary inline relative -top-1 ltr:mr-2 rtl:ml-2 ' + [treeview1.includes('interceptors') ? 'rotate-180' : '']\"\n              />\n              <icon-folder class=\"relative -top-1 inline text-primary ltr:mr-2 rtl:ml-2\" />\n              Interceptors\n            </button>\n            <div [@slideDownUp]=\"!treeview1.includes('interceptors')\" class=\"accordion-content\">\n              <ul class=\"ltr:pl-14 rtl:pr-14\">\n                <li class=\"py-[5px]\">\n                  <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n                  All the interceptor files and folders\n                </li>\n              </ul>\n            </div>\n          </li>\n\n          <li class=\"py-[5px]\">\n            <button type=\"button\" (click)=\"toggleTreeview1('layouts')\">\n              <icon-caret-down\n                [class]=\"'w-5 h-5 text-primary inline relative -top-1 ltr:mr-2 rtl:ml-2 ' + [treeview1.includes('layouts') ? 'rotate-180' : '']\"\n              />\n              <icon-folder class=\"relative -top-1 inline text-primary ltr:mr-2 rtl:ml-2\" />\n              Layouts\n            </button>\n            <div [@slideDownUp]=\"!treeview1.includes('layouts')\" class=\"accordion-content\">\n              <ul class=\"ltr:pl-14 rtl:pr-14\">\n                <li class=\"py-[5px]\">\n                  <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n                  All the layout components\n                </li>\n              </ul>\n            </div>\n          </li>\n\n          <li class=\"py-[5px]\">\n            <button type=\"button\" (click)=\"toggleTreeview1('pages')\">\n              <icon-caret-down [class]=\"'w-5 h-5 text-primary inline relative -top-1 ltr:mr-2 rtl:ml-2 ' + [treeview1.includes('pages') ? 'rotate-180' : '']\" />\n              <icon-folder class=\"relative -top-1 inline text-primary ltr:mr-2 rtl:ml-2\" />\n              Pages\n            </button>\n            <div [@slideDownUp]=\"!treeview1.includes('pages')\" class=\"accordion-content\">\n              <ul class=\"ltr:pl-14 rtl:pr-14\">\n                <li class=\"py-[5px]\">\n                  <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n                  All the page components\n                </li>\n              </ul>\n            </div>\n          </li>\n\n          <li class=\"py-[5px]\">\n            <button type=\"button\" (click)=\"toggleTreeview1('pipes')\">\n              <icon-caret-down [class]=\"'w-5 h-5 text-primary inline relative -top-1 ltr:mr-2 rtl:ml-2 ' + [treeview1.includes('pipes') ? 'rotate-180' : '']\" />\n              <icon-folder class=\"relative -top-1 inline text-primary ltr:mr-2 rtl:ml-2\" />\n              Pipes\n            </button>\n            <div [@slideDownUp]=\"!treeview1.includes('pipes')\" class=\"accordion-content\">\n              <ul class=\"ltr:pl-14 rtl:pr-14\">\n                <li class=\"py-[5px]\">\n                  <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n                  All the pipe files and folders\n                </li>\n              </ul>\n            </div>\n          </li>\n\n          <li class=\"py-[5px]\">\n            <button type=\"button\" (click)=\"toggleTreeview1('service')\">\n              <icon-caret-down\n                [class]=\"'w-5 h-5 text-primary inline relative -top-1 ltr:mr-2 rtl:ml-2 ' + [treeview1.includes('service') ? 'rotate-180' : '']\"\n              />\n              <icon-folder class=\"relative -top-1 inline text-primary ltr:mr-2 rtl:ml-2\" />\n              Service\n            </button>\n            <div [@slideDownUp]=\"!treeview1.includes('service')\" class=\"accordion-content\">\n              <ul class=\"ltr:pl-14 rtl:pr-14\">\n                <li class=\"py-[5px]\">\n                  <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n                  All the service files and folders\n                </li>\n                <li class=\"py-[5px]\">\n                  <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n                  route-update.service.ts - It is dynamically loads the different entity components\n                </li>\n              </ul>\n            </div>\n          </li>\n\n          <li class=\"py-[5px]\">\n            <button type=\"button\" (click)=\"toggleTreeview1('shared')\">\n              <icon-caret-down\n                [class]=\"'w-5 h-5 text-primary inline relative -top-1 ltr:mr-2 rtl:ml-2 ' + [treeview1.includes('shared') ? 'rotate-180' : '']\"\n              />\n              <icon-folder class=\"relative -top-1 inline text-primary ltr:mr-2 rtl:ml-2\" />\n              Shared\n            </button>\n            <div [@slideDownUp]=\"!treeview1.includes('shared')\" class=\"accordion-content\">\n              <ul class=\"ltr:pl-14 rtl:pr-14\">\n                <li class=\"py-[5px]\">\n                  <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n                  All the shared module files and folders\n                </li>\n              </ul>\n            </div>\n          </li>\n\n          <li class=\"py-[5px]\">\n            <button type=\"button\" (click)=\"toggleTreeview1('store')\">\n              <icon-caret-down [class]=\"'w-5 h-5 text-primary inline relative -top-1 ltr:mr-2 rtl:ml-2 ' + [treeview1.includes('store') ? 'rotate-180' : '']\" />\n              <icon-folder class=\"relative -top-1 inline text-primary ltr:mr-2 rtl:ml-2\" />\n              Store\n            </button>\n            <div [@slideDownUp]=\"!treeview1.includes('store')\" class=\"accordion-content\">\n              <ul class=\"ltr:pl-14 rtl:pr-14\">\n                <li class=\"py-[5px]\">\n                  <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n                  Angular JS store file\n                </li>\n              </ul>\n            </div>\n          </li>\n        </ul>\n      </div>\n    </li>\n\n    <li class=\"py-[5px]\">\n      <button type=\"button\" (click)=\"toggleTreeview1('assets')\">\n        <icon-caret-down [class]=\"'w-5 h-5 text-primary inline relative -top-1 ltr:mr-2 rtl:ml-2 ' + [treeview1.includes('assets') ? 'rotate-180' : '']\" />\n        <icon-folder class=\"relative -top-1 inline text-primary ltr:mr-2 rtl:ml-2\" />\n        Assets\n      </button>\n      <div [@slideDownUp]=\"!treeview1.includes('assets')\" class=\"accordion-content\">\n        <ul class=\"ltr:pl-14 rtl:pr-14\">\n          <li class=\"py-[5px]\">\n            <button type=\"button\" (click)=\"toggleTreeview1('css')\">\n              <icon-caret-down [class]=\"'w-5 h-5 text-primary inline relative -top-1 ltr:mr-2 rtl:ml-2 ' + [treeview1.includes('css') ? 'rotate-180' : '']\" />\n              <icon-folder class=\"relative -top-1 inline text-primary ltr:mr-2 rtl:ml-2\" />\n              CSS\n            </button>\n            <div [@slideDownUp]=\"!treeview1.includes('css')\" class=\"accordion-content\">\n              <ul class=\"ltr:pl-14 rtl:pr-14\">\n                <li class=\"py-[5px]\">\n                  <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n                  All the css files and folders\n                </li>\n              </ul>\n            </div>\n          </li>\n\n          <li class=\"py-[5px]\">\n            <button type=\"button\" (click)=\"toggleTreeview1('images')\">\n              <icon-caret-down\n                [class]=\"'w-5 h-5 text-primary inline relative -top-1 ltr:mr-2 rtl:ml-2 ' + [treeview1.includes('images') ? 'rotate-180' : '']\"\n              />\n              <icon-folder class=\"relative -top-1 inline text-primary ltr:mr-2 rtl:ml-2\" />\n              Images\n            </button>\n            <div [@slideDownUp]=\"!treeview1.includes('images')\" class=\"accordion-content\">\n              <ul class=\"ltr:pl-14 rtl:pr-14\">\n                <li class=\"py-[5px]\">\n                  <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n                  All the image files and folders\n                </li>\n              </ul>\n            </div>\n          </li>\n\n          <li class=\"py-[5px]\">\n            <button type=\"button\" (click)=\"toggleTreeview1('i18n')\">\n              <icon-caret-down [class]=\"'w-5 h-5 text-primary inline relative -top-1 ltr:mr-2 rtl:ml-2 ' + [treeview1.includes('i18n') ? 'rotate-180' : '']\" />\n              <icon-folder class=\"relative -top-1 inline text-primary ltr:mr-2 rtl:ml-2\" />\n              i18n\n            </button>\n            <div [@slideDownUp]=\"!treeview1.includes('i18n')\" class=\"accordion-content\">\n              <ul class=\"ltr:pl-14 rtl:pr-14\">\n                <li class=\"py-[5px]\">\n                  <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n                  all the locales json files\n                </li>\n              </ul>\n            </div>\n          </li>\n        </ul>\n      </div>\n    </li>\n\n    <li class=\"py-[5px]\">\n      <button type=\"button\" (click)=\"toggleTreeview1('environments')\">\n        <icon-caret-down\n          [class]=\"'w-5 h-5 text-primary inline relative -top-1 ltr:mr-2 rtl:ml-2 ' + [treeview1.includes('environments') ? 'rotate-180' : '']\"\n        />\n        <icon-folder class=\"relative -top-1 inline text-primary ltr:mr-2 rtl:ml-2\" />\n        Environments\n      </button>\n      <div [@slideDownUp]=\"!treeview1.includes('environments')\" class=\"accordion-content\">\n        <ul class=\"ltr:pl-14 rtl:pr-14\">\n          <li class=\"py-[5px]\">\n            <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n            environments.development.ts\n          </li>\n          <li class=\"py-[5px]\">\n            <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n            environments.staging.ts\n          </li>\n          <li class=\"py-[5px]\">\n            <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n            environments.ts\n          </li>\n        </ul>\n      </div>\n    </li>\n    <li class=\"py-[5px] ltr:pl-7 rtl:pr-7\">\n      <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n      index.html\n    </li>\n    <li class=\"py-[5px] ltr:pl-7 rtl:pr-7\">\n      <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n      main.ts\n    </li>\n    <li class=\"py-[5px] ltr:pl-7 rtl:pr-7\">\n      <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n      styles.scss\n    </li>\n    <li class=\"py-[5px] ltr:pl-7 rtl:pr-7\">\n      <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n      angular.json\n    </li>\n    <li class=\"py-[5px] ltr:pl-7 rtl:pr-7\">\n      <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n      package.json\n    </li>\n    <li class=\"py-[5px] ltr:pl-7 rtl:pr-7\">\n      <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n      tailwind.config.js\n    </li>\n    <li class=\"py-[5px] ltr:pl-7 rtl:pr-7\">\n      <icon-txt-file class=\"inline h-4.5 w-4.5 text-primary ltr:mr-2 rtl:ml-2\" />\n      tsconfig.json\n    </li>\n  </ul>\n</div>\n\n<h2 class=\"text-2xl font-bold text-primary\">Code Structure</h2>\n\n<div class=\"panel\">\n  <!-- Section 1: Header Section -->\n  <div class=\"mb-5 space-y-4\">\n    <p class=\"mb-4 bg-black-light/5 p-4\">This section will give you a brief description of our code.</p>\n    <p><strong class=\"text-black\">1. Header Section:</strong> This is the default navbar section. It contains:</p>\n    <ul class=\"list-inside list-[lower-alpha] space-y-2 pl-5\">\n      <li>Sidebar Toggle button.</li>\n      <li>Quick access button for calendar.</li>\n      <li>Quick access button for todolist.</li>\n      <li>Quick access button for chat.</li>\n      <li>Search Bar</li>\n      <li>Theme toggle button.</li>\n      <li>Language Dropdown</li>\n      <li>Message Dropdown</li>\n      <li>Notification Dropdown</li>\n      <li>User Profile with Dropdown</li>\n      <li>Horizontal Menu</li>\n    </ul>\n    <p><strong>Note:-</strong> These categories are defined by us and you can modify as per your needs :)</p>\n    <div>\n      <pre class=\"bg-gray-800 text-white p-4 rounded-md overflow-auto\" ><code class=\"language-xml\">  &lt;!--  Navbar Component  --&gt;\n        &lt;header&gt;&lt;/header&gt;\n        ==========================================================\n      \n        &lt;!--  BEGIN NAVBAR  --&gt;\n        &lt;header class=&quot;shadow-sm&quot; [ngClass]=&quot;{ 'dark text-white-dark': store.semidark &amp;&amp; store.menu === 'horizontal'}&quot;&gt;\n              &lt;div class=&quot;relative flex w-full items-center bg-white px-5 py-2.5 dark:bg-[#0e1726]&quot;&gt;\n                  ..............................\n              &lt;/div&gt;\n      \n              &lt;!-- horizontal menu --&gt;\n              &lt;ul\n                  class=&quot;horizontal-menu hidden border-t border-[#ebedf2] bg-white py-1.5 px-6 font-semibold text-black rtl:space-x-reverse dark:border-[#191e3a] dark:bg-[#0e1726] dark:text-white-dark lg:space-x-1.5 xl:space-x-8&quot;\n              &gt;\n                  ..............................\n              &lt;/ul&gt;\n        &lt;/header&gt;\n        &lt;!--  END NAVBAR  --&gt;  </code></pre>\n    </div>\n  </div>\n\n  <!-- Section 2: Main Container Section -->\n  <div class=\"mb-5 space-y-4\">\n    <p><strong class=\"text-black\">2. Main Container Section:</strong> The main container section includes header, footer, and main content section.</p>\n    <ul class=\"list-inside list-[lower-alpha] space-y-2 pl-5\">\n      <li>Sidebar Section</li>\n      <li>Header Section</li>\n      <li>Main Content Section</li>\n      <li>Footer Section</li>\n    </ul>\n    <div>\n      <pre class=\"bg-gray-800 text-white p-4 rounded-md overflow-auto\" ><code class=\"language-xml\">  &lt;!--  BEGIN MAIN CONTAINER  --&gt;\n        &lt;div\n              class=&quot;main-section relative font-nunito text-sm font-normal antialiased&quot;\n              [ngClass]=&quot;[store.sidebar ? 'toggle-sidebar' : '', store.menu, store.layout, store.rtlClass]&quot;\n        &gt;\n            ..............................\n        &lt;/div&gt;\n        &lt;!-- END MAIN CONTAINER --&gt;\n      \n      </code>\n    </pre>\n    </div>\n  </div>\n\n  <!-- Section 3: Sidebar -->\n  <div class=\"mb-5 space-y-4\">\n    <p><strong class=\"text-black\">3. Sidebar:</strong> This is the sidebar code.</p>\n    <div>\n      <pre class=\"bg-gray-800 text-white p-4 rounded-md overflow-auto\" ><code class=\"language-xml\"> &lt;!--  Sidebar Component  --&gt;\n        &lt;sidebar&gt;&lt;/sidebar&gt;\n        ==========================================================\n      \n        &lt;!--  BEGIN SIDEBAR  --&gt;\n        &lt;div [ngClass]=&quot;{ 'dark text-white-dark': store.semidark }&quot;&gt;\n            &lt;nav class=&quot;sidebar fixed top-0 bottom-0 z-50 h-full min-h-screen w-[260px] shadow-[5px_0_25px_0_rgba(94,92,154,0.1)] transition-all duration-300&quot;&gt;\n                ..............................\n            &lt;/nav&gt;\n        &lt;/div&gt;\n        &lt;!--  END SIDEBAR  --&gt;\n        </code>\n    </pre>\n    </div>\n  </div>\n\n  <!-- Section 4: Main Content -->\n  <div class=\"mb-5 space-y-4\">\n    <p><strong class=\"text-black\">4. Main Content:</strong> This is the Main Content code section.</p>\n    <p class=\"pl-5\">This is the root structure where you can create widgets, charts, tables etc.</p>\n    <div>\n      <pre>\n        <pre class=\"bg-gray-800 text-white p-4 rounded-md overflow-auto\" ><code class=\"language-xml\"> &lt;!--  BEGIN CONTENT PART  --&gt;\n        &lt;div class=&quot;main-content&quot;&gt;\n            ..............................\n        &lt;/div&gt;\n      \n        &lt;!--  END CONTENT PART  --&gt;</code>\n    </pre>\n    </div>\n  </div>\n\n  <!-- Section 5: Footer -->\n  <div class=\"mb-5 space-y-4\">\n    <p><strong class=\"text-black\">5. Footer:</strong> This is the Footer code.</p>\n    <div>\n      <pre>\n        <pre class=\"bg-gray-800 text-white p-4 rounded-md overflow-auto\" ><code class=\"language-xml\"> &lt;!--  Footer Component  --&gt;\n        &lt;footer&gt;&lt;/footer&gt;\n        ==========================================================\n      \n        &lt;!--  BEGIN FOOTER  --&gt;\n        &lt;p class=&quot;pt-6 text-center dark:text-white-dark ltr:sm:text-left rtl:sm:text-right&quot;&gt;\n            ..............................\n        &lt;/p&gt;\n        &lt;!--  END FOOTER  --&gt;</code>\n    </pre>\n    </div>\n  </div>\n\n  <div class=\"mb-5 space-y-4\">\n    <h3 class=\"mb-5 text-xl font-bold text-success\">The Combined Code</h3>\n    <p>Now, after a brief description of our admin template. Below is the combined code of the snippets we have discuss above.</p>\n\n    <pre class=\"bg-gray-800 text-white p-4 rounded-md overflow-auto\" ><code class=\"language-xml\"> &lt;!--  BEGIN MAIN CONTAINER  --&gt;\n      &lt;div\n      class=&quot;main-section relative font-nunito text-sm font-normal antialiased&quot;\n      [ngClass]=&quot;[store.sidebar ? 'toggle-sidebar' : '', store.menu, store.layout, store.rtlClass]&quot;\n      &gt;\n      &lt;!-- BEGIN SIDEBAR MENU OVERLAY --&gt;\n      &lt;div class=&quot;fixed inset-0 z-50 bg-[black]/60 lg:hidden&quot;  [ngClass]=&quot;{ hidden: !store.sidebar }&quot;  (click)=&quot;storeData.dispatch({ type: 'toggleSidebar' })&quot;&gt;&lt;/div&gt;\n      &lt;!-- END SIDEBAR MENU OVERLAY --&gt;\n      \n      &lt;!-- BEGIN SCREEN LOADER --&gt;\n      &lt;div\n      *ngIf=&quot;store.isShowMainLoader&quot;\n      class=&quot;screen_loader fixed inset-0 bg-[#fafafa] dark:bg-[#060818] z-[60] grid place-content-center animate__animated&quot;\n      &gt;\n      &lt;svg&gt;...&lt;/svg&gt;\n      &lt;/div&gt;\n      &lt;!-- END SCREEN LOADER --&gt;\n      \n      &lt;!-- BEGIN SCROLL TO TOP BUTTON --&gt;\n      &lt;div *ngIf=&quot;showTopButton&quot; class=&quot;fixed bottom-6 z-50 ltr:right-6 rtl:left-6&quot;&gt;\n      &lt;button type=&quot;button&quot; class=&quot;btn btn-outline-primary animate-pulse rounded-full bg-[#fafafa] p-2 dark:bg-[#060818] dark:hover:bg-primary&quot; @click=&quot;goToTop&quot;&gt;\n          &lt;svg&gt;...&lt;/svg&gt;\n      &lt;/button&gt;\n      &lt;/div&gt;\n      &lt;!-- END SCROLL TO TOP BUTTON --&gt;\n      \n      &lt;!-- BEGIN APP SETTING LAUNCHER --&gt;\n      &lt;setting&gt;&lt;/setting&gt;\n      &lt;!-- END APP SETTING LAUNCHER --&gt;\n      \n      &lt;div class=&quot;main-container text-black dark:text-white-dark min-h-screen&quot; :class=&quot;[store.navbar]&quot;&gt;\n      &lt;!--  BEGIN SIDEBAR  --&gt;\n      &lt;sidebar&gt;&lt;/sidebar&gt;\n      &lt;!--  END SIDEBAR  --&gt;\n      \n      &lt;!--  BEGIN CONTENT AREA  --&gt;\n      &lt;div class=&quot;main-content&quot;&gt;\n        &lt;!--  BEGIN NAVBAR  --&gt;\n        &lt;header&gt;&lt;/header&gt;\n        &lt;!--  END NAVBAR  --&gt;\n      \n        &lt;div class=&quot;p-6 animation&quot;&gt;\n            &lt;!--  BEGIN PAGE CONTENT  --&gt;\n            &lt;router-outlet&gt;&lt;/router-outlet&gt;\n            &lt;!--  END PAGE CONTENT  --&gt;\n      \n            &lt;!-- BEGIN FOOTER --&gt;\n            &lt;footer&gt;&lt;/footer&gt;\n            &lt;!-- END FOOTER --&gt;\n        &lt;/div&gt;\n      &lt;/div&gt;\n      &lt;!--  END CONTENT AREA  --&gt;\n      &lt;/div&gt;\n      &lt;/div&gt;\n      &lt;!--  END MAIN CONTAINER  --&gt;</code>\n  </pre>\n  </div>\n\n  <h2 class=\"text-2xl font-bold text-primary\">Admin JS Code Structure</h2>\n\n  <div class=\"panel\">\n    <div class=\"space-y-4\">\n      <p class=\"mb-4 bg-black-light/5\">This section will give you a brief description of our admin template JS code.</p>\n\n      <p>\n        <strong class=\"text-black\">1. app.service.ts : </strong>This is primary js file. It is necessary for the layout to work. It contains the code as follows\n        :-\n      </p>\n\n      <ul class=\"list-inside list-[lower-alpha] space-y-2 pl-5\">\n        <li>Set default layout</li>\n\n        <li>Set Navigation Position</li>\n\n        <li>Set Navbar Type</li>\n\n        <li>Set Router Animation</li>\n\n        <li>Theme change funtionality</li>\n\n        <li>Direction change funtionality</li>\n      </ul>\n\n     <pre class=\"bg-gray-800 text-white p-4 rounded-md overflow-auto\" ><code class=\"language-typescript\">${ import { Injectable } from '@angular/core';\n            import { Store } from '@ngrx/store';\n            import { $themeConfig } from '../theme.config';\n            import { TranslateService } from '@ngx-translate/core';\n            \n            @Injectable()\n            export class AppService {\n            storeData: any;\n            constructor(public translate: TranslateService, public store: Store&lt;any&gt;) {\n                this.initStoreData();\n            }\n            \n            initStoreData() {\n                this.store\n                    .select((d: any) =&gt; d.index)\n                    .subscribe((d: any) =&gt; {\n                        this.storeData = d;\n                    });\n            \n                // set default styles\n                let val: any = localStorage.getItem('theme'); // light, dark, system\n                val = val || $themeConfig.theme;\n                this.store.dispatch({ type: 'toggleTheme', payload: val });\n            \n                val = localStorage.getItem('menu'); // vertical, collapsible-vertical, horizontal\n                val = val || $themeConfig.menu;\n                this.store.dispatch({ type: 'toggleMenu', payload: val });\n            \n                val = localStorage.getItem('layout'); // full, boxed-layout\n                val = val || $themeConfig.layout;\n                this.store.dispatch({ type: 'toggleLayout', payload: val });\n            \n                val = localStorage.getItem('i18n_locale'); // en, da, de, el, es, fr, hu, it, ja, pl, pt, ru, sv, tr, zh\n                val = val || $themeConfig.locale;\n            \n                const list = this.storeData.languageList;\n                const item = list.find((item: any) =&gt; item.code === val);\n                if (item) {\n                    this.toggleLanguage(item);\n                }\n            \n                val = localStorage.getItem('rtlClass'); // rtl, ltr\n                val = val || $themeConfig.rtlClass;\n                this.store.dispatch({ type: 'toggleRTL', payload: val });\n            \n                val = localStorage.getItem('animation'); // animate__fadeIn, animate__fadeInDown, animate__fadeInUp, animate__fadeInLeft, animate__fadeInRight, animate__slideInDown, animate__slideInLeft, animate__slideInRight, animate__zoomIn\n                val = val || $themeConfig.animation;\n                this.store.dispatch({ type: 'toggleAnimation', payload: val });\n            \n                val = localStorage.getItem('navbar'); // navbar-sticky, navbar-floating, navbar-static\n                val = val || $themeConfig.navbar;\n                this.store.dispatch({ type: 'toggleNavbar', payload: val });\n            \n                val = localStorage.getItem('semidark');\n                val = val === 'true' ? true : $themeConfig.semidark;\n                this.store.dispatch({ type: 'toggleSemidark', payload: val });\n            }\n            \n            toggleLanguage(item: any) {\n                let lang: any = null;\n                lang = 'en';\n                if (item) {\n                    lang = item;\n                } else {\n                    let code = this.translate.currentLang || null;\n                    if (!code) {\n                        code = localStorage.getItem('i18n_locale');\n                    }\n            \n                    item = this.storeData.languageList.find((d: any) =&gt; d.code === code);\n                    if (item) {\n                        lang = item;\n                    }\n                }\n            \n                if (!lang) {\n                    lang = this.storeData.languageList.find((d: any) =&gt; d.code === 'en');\n                }\n            \n                this.translate.use(lang.code); // set language\n                this.store.dispatch({ type: 'toggleLocale', payload: lang.code });\n                return lang;\n            }\n            \n            changeAnimation(type = 'add') {\n                if (this.storeData.animation) {\n                    const ele: any = document.querySelector('.animation');\n                    if (type === 'add') {\n                        ele?.classList.add('animate__animated');\n                        ele?.classList.add(this.storeData.animation);\n                    } else {\n                        ele?.classList.remove('animate__animated');\n                        ele?.classList.remove(this.storeData.animation);\n                    }\n                }\n            }\n            } }</code></pre>\n\n      <p>\n        <strong class=\"text-black\">2. theme.config.ts : </strong>This is theme configuration js file. This file contains optional setting for set defaut layout,\n        theme and language functionality. It contains the code as follows :-\n      </p>\n\n      <ul class=\"list-inside list-[lower-alpha] space-y-2 pl-5\">\n        <li>Language</li>\n        <li>Theme</li>\n        <li>Navigation</li>\n        <li>Layout</li>\n        <li>Direction</li>\n        <li>Animation</li>\n        <li>Navbar</li>\n        <li>Semidark</li>\n      </ul>\n\n     <pre class=\"bg-black text-white p-4 rounded-md overflow-auto\">\n  <code class=\"language-typescript\">\n    <span class=\"text-yellow\">// APP CONFIG</span><br>\n    export const <span class=\"text-green\">$themeConfig</span> = {<br>\n      locale: '<span class=\"text-blue\">en</span>', // en, da, de, el, es, fr, hu, it, ja, pl, pt, ru, sv, tr, zh<br>\n      theme: '<span class=\"text-blue\">light</span>', // light, dark, system<br>\n      menu: '<span class=\"text-blue\">vertical</span>', // vertical, collapsible-vertical, horizontal<br>\n      layout: '<span class=\"text-blue\">full</span>', // full, boxed-layout<br>\n      rtlClass: '<span class=\"text-blue\">ltr</span>', // rtl, ltr<br>\n      animation: '', // animate__fadeIn, animate__fadeInDown, animate__fadeInUp, animate__fadeInLeft, animate__fadeInRight, animate__slideInDown, animate__slideInLeft, animate__slideInRight, animate__zoomIn<br>\n      navbar: '<span class=\"text-blue\">navbar-sticky</span>', // navbar-sticky, navbar-floating, navbar-static<br>\n      semidark: <span class=\"text-red\">false</span>,<br>\n    };\n  </code>\n</pre>\n\n    </div>\n  </div>\n</div>\n",
    "query_information": null,
    "company_id": 1
  },
  {
    "name": "Documentation Master Entity Module",
    "entity_name": "documentation_master_entity_module",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"panel\">\n  <!-- Section 1: Header Section -->\n  <div class=\"mb-5 space-y-4\">\n    <p><strong class=\"text-black\">Introduction</strong></p>\n    <p class=\"mb-4 bg-black-light/5 p-4\">\n      The Master Entity page is a powerful tool that allows users to manage and interact with a list of entities stored in the backend database. This page\n      presents the data in a common datatable format, making it easy to view, filter, and manipulate the information. The Master Entity is designed to be highly\n      flexible, accommodating various use cases by allowing customization of the data presentation, filtering options, and export capabilities. It serves as a\n      central point for managing different entities across the application, streamlining workflows and enhancing productivity.\n    </p>\n\n    <p><strong class=\"text-black\">Master Entity Add/Edit Screen:</strong></p>\n    <p class=\"mb-4 bg-black-light/5 p-4\">\n      The Master Entity Add/Edit screen is designed to provide a seamless experience for creating and managing entities within the system. This screen allows\n      users to define the parameters of a new entity or modify an existing one. Below are the key fields and functionalities available on this screen:\n    </p>\n    <ul class=\"list-inside list-[lower-alpha] space-y-2 pl-5\">\n      <li>\n        <strong class=\"text-black\">Entity Name:</strong>This is the name of the entity being created or edited. For example, the entity name could be \"User\n        Grid.\"\n      </li>\n      <li>\n        <strong class=\"text-black\">Entity Type:</strong>\n        Defines the type of entity being managed. In this case, it could be a \"Grid Builder Module,\" which specifies that the entity is a part of the\n        grid-building framework within the application.\n      </li>\n\n      <li>\n        <strong class=\"text-black\">Choose Entity Permission:</strong>\n        This section allows you to assign permissions to the entity, including options like view, add, edit, delete, view details, and export. These permissions\n        control what actions users can perform on this entity.\n      </li>\n\n      <li>\n        <strong class=\"text-black\">Primary Table:</strong>\n        This is the main database table associated with the entity. For example, the primary table could be 'users,' indicating that the data for this entity\n        will be fetched from the users' table.\n      </li>\n\n      <li>\n        <strong class=\"text-black\">Query Information:</strong>\n        This section is crucial for defining how data is fetched and displayed for the entity. It includes:\n        <ul class=\"list-inside list-[lower-alpha] space-y-2 pl-5\">\n          <li>\n            <strong class=\"text-black\">Includes:</strong>Specifies the tables to be joined with the primary table and the join conditions. For example, in a\n            query, you might join the 'users' table with another table to retrieve additional related information.\n          </li>\n          <li>\n            <strong class=\"text-black\">Group By:</strong>Defines the fields by which the data should be grouped. Grouping helps in aggregating data and\n            displaying it in a meaningful way.\n          </li>\n          <li>\n            <strong class=\"text-black\">Order By:</strong>Specifies the order in which the data should be sorted. This ensures that the data is displayed in a\n            logical and user-friendly manner.\n          </li>\n        </ul>\n      </li>\n    </ul>\n\n    <div>\n      <p class=\"pb-5\"><strong> Screenshot</strong></p>\n      <img class=\"w-90 inline ltr:-ml-1 rtl:-mr-1\" src=\"assets/images/documentation/add-grid-builder.png\" alt appDynamicFontSize=\"headerlogo\" />\n      <p class=\"pb-5 pt-5\"><strong>Query Information Code Snippet</strong></p>\n      <pre class=\"bg-gray-800 text-white p-4 rounded-md overflow-auto\" ><code class=\"json\"> {\n        'name': 'Route Outlet Mapping Grid', \n        'entity_name': 'route_outlet_mapping',  // This is the name of the entity being created or edited.\n        'entity_type': 'grid_builder_module', // Defines the type of entity being managed.\n        \n        'primary_table': 'routes', // This is the main database table associated with the entity. \n        'query_information': { // Defining how data is fetched and displayed for the entity. \n          'group_by': [ // Defines the fields by which the data should be grouped\n            'route_outlet_mappings.route_id,routes.code, routes.id'\n          ],\n          'includes': [ // Specifies the tables to be joined with the primary table and the join conditions.\n            {\n              'join_type': 'LEFT',\n              'table_name': 'route_outlet_mappings',\n              'join_condition': 'routes.id = route_outlet_mappings.route_id'\n            }\n          ]\n        }\n        \n              </code></pre>\n\n      <p class=\"pb-5 pt-5\"><strong>Raw Query comes like below</strong></p>\n      <pre class=\"bg-gray-800 text-white p-4 rounded-md overflow-auto\" ><code class=\"xml\"> SELECT users.id AS user_id, users.name AS user_name, COUNT(DISTINCT user_roles.role_id) AS role_count \n        FROM users \n        LEFT JOIN user_roles ON users.id = user_roles.user_id \n        WHERE users.status_id != '3' \n        GROUP BY users.id, users.name \n        ORDER BY users.name ASC \n        LIMIT 10 OFFSET 0\n        \n        \n              </code></pre>\n\n      <p class=\"pb-5 pt-5\"><strong>Entity List Page Output:</strong></p>\n      <img class=\"w-90 inline ltr:-ml-1 rtl:-mr-1\" src=\"assets/images/documentation/entity-list-module.png\" alt appDynamicFontSize=\"headerlogo\" />\n    </div>\n  </div>\n</div>\n",
    "query_information": null,
    "company_id": 1
  },
  {
    "name": "Documentation Page Builder",
    "entity_name": "documentation_page_builder",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"panel\">\n  <!-- Section 1: Header Section -->\n  <div class=\"mb-5 space-y-4\">\n    <p><strong class=\"text-black\">Introduction</strong></p>\n    <p class=\"mb-4 bg-black-light/5 p-4\">\n      The Static Page Builder is a flexible and dynamic tool that allows developers to create customized web pages within the application using embedded HTML\n      content and data fetched from a PostgreSQL database. By leveraging the Static Page Builder, users can easily design and implement pages that display\n      real-time data, formatted and styled according to specific requirements.\n    </p>\n    <p class=\"mb-4 bg-black-light/5 p-4\">\n      This tool is particularly useful for creating dashboards, reports, or any page where the content needs to be dynamically generated based on the current\n      data in the system. The Static Page Builder combines the power of HTML for designing the layout with SQL queries for retrieving and displaying data,\n      making it a versatile solution for various use cases.\n    </p>\n\n    <p><strong class=\"text-black\">How to Create a Page Using Static Page Builder</strong></p>\n    <p class=\"mb-4 bg-black-light/5 p-4\">To create a page using the Static Page Builder, follow these steps:</p>\n    <ul class=\"list-inside list-[lower-alpha] space-y-2 pl-5\">\n      <li>\n        <strong class=\"text-black\">Define the Entity Information:</strong>\n\n        <ul class=\"list-inside list-[lower-alpha] space-y-2 pl-5\">\n          <li><strong class=\"text-black\">Entity Name:</strong> Choose a meaningful name for the entity, such as \"User Grid.\"</li>\n          <li><strong class=\"text-black\">Entity Type:</strong> Specify the type of entity, which could be a \"Grid Builder Module.\"</li>\n        </ul>\n      </li>\n\n      <li>\n        <strong class=\"text-black\">Embed HTML Content</strong>\n\n        <ul class=\"list-inside list-[lower-alpha] space-y-2 pl-5\">\n          <li>Use the static_page_content field to embed HTML code that defines the layout and structure of the page.</li>\n          <li>\n            You can include placeholders in the HTML where dynamic data will be injected. These placeholders will be replaced with actual data retrieved from\n            the database.\n          </li>\n        </ul>\n      </li>\n\n      <li>\n        <strong class=\"text-black\">Configure Query Information:</strong>\n\n        <ul class=\"list-inside list-[lower-alpha] space-y-2 pl-5\">\n          <li>Use the query_information field to define the SQL query that will fetch the necessary data from the database.</li>\n          <li>This includes specifying the tables, columns, join conditions, filters, and sorting criteria.</li>\n        </ul>\n      </li>\n    </ul>\n\n    <div>\n      <p class=\"pb-5\"><strong> Example of Creating a Page</strong></p>\n      <p class=\"pb-5\">Below is an example configuration for creating a \"User Grid\" page using the Static Page Builder:</p>\n      <p class=\"pb-5\"><strong> Screenshot </strong></p>\n      <img class=\"w-90 inline ltr:-ml-1 rtl:-mr-1\" src=\"assets/images/documentation/add-page-builder.png\" alt appDynamicFontSize=\"headerlogo\" />\n      <p class=\"pb-5 pt-5\"><strong>Static Page Content (HTML)</strong></p>\n      \n\n      <p class=\"pb-5 pt-5\">\n        This HTML code generates a table with columns for Email, First Name, Last Name, Role, and Status. The `#each data_list` block is where the dynamic data\n        will be inserted.\n      </p>\n\n      <p class=\"pb-5 pt-5\"><strong>Query Information (Postgres)</strong></p>\n      <pre class=\"bg-gray-800 text-white p-4 rounded-md overflow-auto\" ><code class=\"json\"> {\n        'group_by': [\n            'users.id',\n            'user_details.first_name',\n            'user_details.last_name'\n        ],\n        'includes': [\n            {\n                'join_type': 'INNER',\n                'table_name': 'user_details',\n                'join_condition': 'user_details.user_id = users.id'\n            }\n        ],\n        'company_id': 1,\n        'limit_range': 10,\n        'print_query': true,\n        'start_index': 0,\n        'sort_columns': [\n            [\n                'users.id',\n                'desc'\n            ]\n        ],\n        'primary_table': 'users',\n        'select_columns': [\n            [\n                'users.email',\n                'email'\n            ],\n            [\n                'users.role',\n                'role'\n            ],\n            [\n                'users.status_id',\n                'status_id'\n            ],\n            [\n                'user_details.first_name',\n                'first_name'\n            ],\n            [\n                'user_details.last_name',\n                'last_name'\n            ]\n        ]\n    }\n    \n        \n              </code></pre>\n\n      <p class=\"pb-5 pt-5\"><strong>Page Builder Output:</strong></p>\n      <img class=\"w-90 inline ltr:-ml-1 rtl:-mr-1\" src=\"assets/images/documentation/page-builder-output.png\" alt appDynamicFontSize=\"headerlogo\" />\n    </div>\n  </div>\n</div>\n",
    "query_information": null,
    "company_id": 1
  },
  {
    "name": "Documentation Dashboard Wizard",
    "entity_name": "documentation_dashboard_wizard",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"panel\">\n  <div class=\"mb-5 space-y-4\">\n    <p><strong class=\"text-black\">Introduction to Dashboard Static Wizard Builder</strong></p>\n    <p class=\"mb-4 bg-black-light/5 p-4\">\n      The \"Dashboard Static Wizard Builder\" is a powerful tool designed to enable users to create customizable widgets that can be added to any tab (wizard\n      group) within the dashboard. This builder allows you to embed dynamic HTML content and fetch relevant information from a PostgreSQL database through a\n      structured query. The flexibility provided by this tool makes it ideal for creating various dashboard components, such as charts, tables, and informative\n      panels, that can be placed across different tabs or groups within the dashboard.\n    </p>\n\n    <p><strong class=\"text-black\">How to Use the Dashboard Static Wizard Builder</strong></p>\n    <p class=\"mb-4 bg-black-light/5 p-4\">\n      To create a widget using the Dashboard Static Wizard Builder, you need to define the content and the data source that will populate this content. The\n      builder consists of two primary components: query_information and static_page_content.\n    </p>\n    <ul class=\"list-inside list-[lower-alpha] space-y-2 pl-5\">\n      <li>\n        <strong class=\"text-black\">Define the Entity:</strong>\n\n        <ul class=\"list-inside list-[lower-alpha] space-y-2 pl-5\">\n          <li>\n            Specify the name, type, and the wizard group where the widget will appear. For example, an error log panel might be created under the name \"Error\n            Logs\" in the dashboard_wizard_builder_module.\n          </li>\n        </ul>\n      </li>\n\n      <li>\n        <strong class=\"text-black\">Query Information:</strong>\n\n        <ul class=\"list-inside list-[lower-alpha] space-y-2 pl-5\">\n          <li>\n            This section defines how the data will be retrieved from the database. You specify the primary table, the columns to select, any joins needed, and\n            conditions such as group_by, sort_columns, and limit_range. The example provided retrieves a count of error logs from the webservice_logs table,\n            grouped by the id column.\n          </li>\n        </ul>\n      </li>\n\n      <li>\n        <strong class=\"text-black\">Static Page Content: </strong>\n\n        <ul class=\"list-inside list-[lower-alpha] space-y-2 pl-5\">\n          <li>\n            This section contains the HTML structure and styling that will display the data fetched by the query. You can use placeholders (e.g., count) to\n            embed dynamic data into your HTML content. The example provided creates a panel that shows the count of error logs.\n          </li>\n        </ul>\n      </li>\n\n      <li>\n        <strong class=\"text-black\">Place the Widget:</strong>\n\n        <ul class=\"list-inside list-[lower-alpha] space-y-2 pl-5\">\n          <li>Finally, configure the widget's placement on the dashboard by specifying the row, column, and order number.</li>\n        </ul>\n      </li>\n    </ul>\n\n    <div>\n      <p class=\"pb-5\"><strong> Example of Creating a Widget</strong></p>\n      <p class=\"pb-5\">Here is an example of a widget configuration:</p>\n      <p class=\"pb-5\"><strong> Screenshot </strong></p>\n      <img class=\"w-90 inline ltr:-ml-1 rtl:-mr-1\" src=\"assets/images/documentation/dashboard-wizard-builder-static.png\" alt appDynamicFontSize=\"headerlogo\" />\n      <p class=\"pb-5 pt-5\"><strong>Static Page Content (HTML)</strong></p>\n      \n\n      <p class=\"pb-5 pt-5\"><strong>Query Information (JSON)</strong></p>\n      <pre class=\"bg-gray-800 text-white p-4 rounded-md overflow-auto\" ><code class=\"json\">{\n        'group_by': [\n          'webservice_logs.id'\n        ],\n        'company_id': 1,\n        'limit_range': 1,\n        'print_query': true,\n        'start_index': 0,\n        'sort_columns': [\n          [\n            'webservice_logs.id',\n            'desc'\n          ]\n        ],\n        'primary_table': 'webservice_logs',\n        'select_columns': [\n          [\n            'COUNT(*)',\n            'count'\n          ],\n          [\n            'webservice_logs.id',\n            'id'\n          ]\n        ]\n      }\n      \n    \n        \n              </code></pre>\n    </div>\n  </div>\n\n  <div class=\"mb-5 space-y-4\">\n    <p><strong class=\"text-black\">Introduction to Dashboard Chart Widget</strong></p>\n    <p class=\"mb-4 bg-black-light/5 p-4\">\n      The Dashboard Chart Widget is a dynamic tool within the Dashboard Static Wizard Builder that allows users to create visually appealing and data-driven\n      charts directly on their dashboard. Instead of using static HTML content, this widget leverages dashboard_wizard_options for configuring chart properties\n      and styling, using ApexCharts as the charting library. The widget pulls data through a structured query and then visualizes it in the form of bar charts,\n      line charts, pie charts, or other types.\n    </p>\n\n    <p><strong class=\"text-black\">How to Use the Dashboard Chart Widget</strong></p>\n\n    <ul class=\"list-inside list-[lower-alpha] space-y-2 pl-5\">\n      <li>\n        <strong class=\"text-black\">Define the Entity:</strong>\n\n        <ul class=\"list-inside list-[lower-alpha] space-y-2 pl-5\">\n          <li>\n            Start by specifying the name, type, and the wizard group where the chart will appear. The example provided is for an \"Outlet Credit Limits Bar\"\n            chart.\n          </li>\n        </ul>\n      </li>\n\n      <li>\n        <strong class=\"text-black\">Set Up Query Information: </strong>\n\n        <ul class=\"list-inside list-[lower-alpha] space-y-2 pl-5\">\n          <li>\n            Define the data that will be fetched from the database. This involves specifying the primary table, the columns to select, how to group the data,\n            and how to sort it. In the example, the chart will display data grouped by the month of start_date and will show the quantity.\n          </li>\n        </ul>\n      </li>\n\n      <li>\n        <strong class=\"text-black\">Design Chart Options: </strong>\n\n        <ul class=\"list-inside list-[lower-alpha] space-y-2 pl-5\">\n          <li>\n            Use the dashboard_wizard_options to customize the chart's appearance. You can define the type of chart, its height, colors, axes, tooltips, and\n            other styling properties.\n          </li>\n        </ul>\n      </li>\n\n      <li>\n        <strong class=\"text-black\">Place the Widget:</strong>\n\n        <ul class=\"list-inside list-[lower-alpha] space-y-2 pl-5\">\n          <li>\n            Finally, configure the widget's placement on the dashboard by specifying the number of rows and columns it will span, and its order number within\n            the group.\n          </li>\n        </ul>\n      </li>\n    </ul>\n\n    <div>\n      <p class=\"pb-5\"><strong> Example Chart Widget </strong></p>\n      <p class=\"pb-5\">Here is an example of a widget configuration:</p>\n      <p class=\"pb-5\"><strong> Screenshot </strong></p>\n      <img class=\"w-90 inline ltr:-ml-1 rtl:-mr-1\" src=\"assets/images/documentation/dashboard-wizard-builder-chart.png\" alt appDynamicFontSize=\"headerlogo\" />\n      <p class=\"pb-5 pt-5\"><strong>Chart Options (JSON)</strong></p>\n      <pre class=\"bg-gray-800 text-white p-4 rounded-md overflow-auto\" ><code class=\"json\">[\n        {\n          'grid': {\n            'borderColor': '#e0e6ed'\n          },\n          'chart': {\n            'type': 'bar',\n            'height': 300,\n            'toolbar': {\n              'show': false\n            }\n          },\n          'xaxis': {\n            'axisBorder': {\n              'color': '#e0e6ed'\n            }\n           \n          },\n          'yaxis': {\n            'labels': {\n              'offsetX': 0\n            },\n            'opposite': false\n          },\n          'colors': [\n            '#4361ee'\n          ],\n          \n          'stroke': {\n            'curve': 'smooth',\n            'width': 2\n          },\n          'tooltip': {\n            'y': {\n              'formatter': 'function (number) { return '$' + number; }'\n            },\n            'theme': 'light',\n            'marker': false\n          }\n        }\n      ]\n        \n              </code></pre>\n\n      <p class=\"pb-5 pt-5\"><strong>Query Information (JSON)</strong></p>\n      <pre class=\"bg-gray-800 text-white p-4 rounded-md overflow-auto\" ><code class=\"json\">{\n        'group_by': [\n          'EXTRACT(MONTH FROM start_date)',\n          'TO_CHAR(start_date, 'Mon')',\n          'quantity'\n        ],\n        'company_id': 1,\n        'search_all': [],\n        'print_query': false,\n        'start_index': 0,\n        'sort_columns': [\n          [\n            'EXTRACT(MONTH FROM start_date)',\n            'asc'\n          ]\n        ],\n        'primary_table': 'free_items',\n        'select_columns': [\n          [\n            'TO_CHAR(start_date, 'Mon')',\n            'labels'\n          ],\n          [\n            'quantity',\n            'quantity'\n          ]\n        ]\n      }\n      \n    \n        \n              </code></pre>\n\n      <p class=\"pb-5 pt-5\"><strong>Dashboard Page Output:</strong></p>\n      <img class=\"w-90 inline ltr:-ml-1 rtl:-mr-1\" src=\"assets/images/documentation/dashboard-screen.png\" alt appDynamicFontSize=\"headerlogo\" />\n    </div>\n  </div>\n</div>\n",
    "query_information": null,
    "company_id": 1
  },
  {
    "name": "Documentation Examples",
    "entity_name": "documentation_examples",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"panel mb-5\">\r\n    <div class=\"mb-5 flex items-center justify-between\">\r\n        <h5 appDynamicFontSize=\"title\" class=\"text-lg font-semibold dark:text-white-light\">Tabs</h5>\r\n\r\n      \r\n      </div>\r\n<div class=\"mb-5\">\r\n    <div class=\"mt-3 flex flex-wrap border-b border-white-light dark:border-[#191e3a]\">\r\n       <a href=\"javascript:;\" data-tab=\"home\"  class=\"-mb-[1px] block border border-transparent p-3.5 py-2 !outline-none transition duration-300 hover:text-primary dark:hover:border-b-black {{#hbp_ifCond  currentTab '==' 'home'}}!border-white-light !border-b-white  text-primary dark:!border-[#191e3a] dark:!border-b-black{{/hbp_ifCond}}\"\r\n            >Home</a>\r\n        <a href=\"javascript:;\" data-tab=\"profile\"    class=\"-mb-[1px] block border border-transparent p-3.5 py-2 !outline-none transition duration-300 hover:text-primary dark:hover:border-b-black  {{#hbp_ifCond  currentTab '==' 'profile'}}!border-white-light !border-b-white  text-primary dark:!border-[#191e3a] dark:!border-b-black{{/hbp_ifCond}}\"\r\n            >Profile</a>\r\n        <a href=\"javascript:;\" data-tab=\"contact\"  class=\"-mb-[1px] block border border-transparent p-3.5 py-2 !outline-none transition duration-300 hover:text-primary dark:hover:border-b-black {{#hbp_ifCond  currentTab '==' 'contact'}}!border-white-light !border-b-white  text-primary dark:!border-[#191e3a] dark:!border-b-black{{/hbp_ifCond}}\"\r\n        \r\n             >Contact</a>\r\n    </div>\r\n    <div class=\"flex-1 pt-5 text-sm\">\r\n        {{#hbp_ifCond  currentTab '==' 'home' }}\r\n        <div >\r\n            <h4 class=\"mb-4 text-2xl font-semibold\">We move your world!</h4>\r\n            <p class=\"mb-4\">\r\n                Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut\r\n                enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\r\n            </p>\r\n            <p>\r\n                Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut\r\n                enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\r\n            </p>\r\n        </div>\r\n        {{/hbp_ifCond}}\r\n        {{#hbp_ifCond  currentTab '==' 'profile' }}\r\n        <div >\r\n            <div class=\"flex items-start\">\r\n                <div class=\"h-20 w-20 flex-none ltr:mr-4 rtl:ml-4\">\r\n                    <img\r\n                        src=\"/assets/images/logo.png\"\r\n                        alt=\"\"\r\n                        class=\"m-0 h-20 w-20 rounded-full object-cover ring-2 ring-[#ebedf2] dark:ring-white-dark\"\r\n                    />\r\n                </div>\r\n                <div class=\"flex-auto\">\r\n                    <h5 class=\"mb-4 text-xl font-medium\">Media heading</h5>\r\n                    <p class=\"text-white-dark\">\r\n                        Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin. Cras purus odio, vestibulum\r\n                        in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis\r\n                        in faucibus.\r\n                    </p>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        {{/hbp_ifCond}}\r\n\r\n    {{#hbp_ifCond  currentTab '==' 'contact' }}\r\n        <div >\r\n            <p>\r\n                Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut\r\n                enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor\r\n                in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident,\r\n                sunt in culpa qui officia deserunt mollit anim id est laborum.\r\n            </p>\r\n        </div>\r\n       {{/hbp_ifCond}}\r\n\r\n    </div>\r\n</div>\r\n\r\n\r\n\r\n</div>\r\n\r\n<div class=\"panel mb-5\">\r\n\r\n<div class=\"mb-5 flex items-center justify-between\">\r\n        <h5 appDynamicFontSize=\"title\" class=\"text-lg font-semibold dark:text-white-light\">Tabs (CODE) </h5>\r\n\r\n      \r\n      </div>\r\n\r\n<div class=\"mb-5\">\r\n    <pre class=\"bg-gray-800 text-white p-4 rounded-md overflow-auto\" ><code class=\"xml\">\r\n\r\n<div class=\"panel mb-5\">\r\n    <div class=\"mb-5 flex items-center justify-between\">\r\n        <h5 appDynamicFontSize=\"title\" class=\"text-lg font-semibold dark:text-white-light\">Tabs</h5>\r\n\r\n      \r\n      </div>\r\n<div class=\"mb-5\">\r\n    <div class=\"mt-3 flex flex-wrap border-b border-white-light dark:border-[#191e3a]\">\r\n       <a href=\"javascript:;\" data-tab=\"home\"  class=\"-mb-[1px] block border border-transparent p-3.5 py-2 !outline-none transition duration-300 hover:text-primary dark:hover:border-b-black {{#hbp_ifCond  currentTab '==' 'home'}}!border-white-light !border-b-white  text-primary dark:!border-[#191e3a] dark:!border-b-black{{/hbp_ifCond}}\"\r\n            >Home</a>\r\n        <a href=\"javascript:;\" data-tab=\"profile\"    class=\"-mb-[1px] block border border-transparent p-3.5 py-2 !outline-none transition duration-300 hover:text-primary dark:hover:border-b-black  {{#hbp_ifCond  currentTab '==' 'profile'}}!border-white-light !border-b-white  text-primary dark:!border-[#191e3a] dark:!border-b-black{{/hbp_ifCond}}\"\r\n            >Profile</a>\r\n        <a href=\"javascript:;\" data-tab=\"contact\"  class=\"-mb-[1px] block border border-transparent p-3.5 py-2 !outline-none transition duration-300 hover:text-primary dark:hover:border-b-black {{#hbp_ifCond  currentTab '==' 'contact'}}!border-white-light !border-b-white  text-primary dark:!border-[#191e3a] dark:!border-b-black{{/hbp_ifCond}}\"\r\n        \r\n             >Contact</a>\r\n    </div>\r\n    <div class=\"flex-1 pt-5 text-sm\">\r\n        {{#hbp_ifCond  currentTab '==' 'home' }}\r\n        <div >\r\n            <h4 class=\"mb-4 text-2xl font-semibold\">We move your world!</h4>\r\n            <p class=\"mb-4\">\r\n                Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut\r\n                enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\r\n            </p>\r\n            <p>\r\n                Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut\r\n                enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\r\n            </p>\r\n        </div>\r\n        {{/hbp_ifCond}}\r\n        {{#hbp_ifCond  currentTab '==' 'profile' }}\r\n        <div >\r\n            <div class=\"flex items-start\">\r\n                <div class=\"h-20 w-20 flex-none ltr:mr-4 rtl:ml-4\">\r\n                    <img\r\n                        src=\"/assets/images/logo.png\"\r\n                        alt=\"\"\r\n                        class=\"m-0 h-20 w-20 rounded-full object-cover ring-2 ring-[#ebedf2] dark:ring-white-dark\"\r\n                    />\r\n                </div>\r\n                <div class=\"flex-auto\">\r\n                    <h5 class=\"mb-4 text-xl font-medium\">Media heading</h5>\r\n                    <p class=\"text-white-dark\">\r\n                        Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin. Cras purus odio, vestibulum\r\n                        in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis\r\n                        in faucibus.\r\n                    </p>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        {{/hbp_ifCond}}\r\n\r\n    {{#hbp_ifCond  currentTab '==' 'contact' }}\r\n        <div >\r\n            <p>\r\n                Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut\r\n                enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor\r\n                in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident,\r\n                sunt in culpa qui officia deserunt mollit anim id est laborum.\r\n            </p>\r\n        </div>\r\n       {{/hbp_ifCond}}\r\n\r\n    </div>\r\n</div>\r\n</div>\r\n\r\n    </code></pre>\r\n</div>\r\n\r\n</div>\r\n\r\n\r\n\r\n<div class=\"panel mb-5\">\r\n    <div class=\"mb-5 flex items-center justify-between\">\r\n        <h5 appDynamicFontSize=\"title\" class=\"text-lg font-semibold dark:text-white-light\">Accordion</h5>\r\n\r\n      </div>\r\n<div class=\"space-y-2 font-semibold\">\r\n    <div class=\"rounded border border-[#d3d3d3] dark:border-[#1b2e4b]\">\r\n        <button\r\n            type=\"button\"\r\n            class=\"flex w-full items-center p-4 text-white-dark dark:bg-[#1b2e4b] {{#hbp_ifCond  currentAccordion '==' 'home'}}!text-primary{{/hbp_ifCond}}\"\r\n            data-accordion=\"home\"\r\n            \r\n            \r\n        >\r\n            Accordion 1 home\r\n            <div class=\"ltr:ml-auto rtl:mr-auto {{#hbp_ifCond  currentAccordion '==' 'home'}}rotate-180{{/hbp_ifCond}}\" >\r\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"h-4 w-4\">\r\n                    <path d=\"M19 9L12 15L5 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n                </svg>\r\n            </div>\r\n        </button>\r\n        <div class=\"overflow-hidden transition-all duration-300 {{#hbp_ifCond  currentAccordion '==' 'home'}}max-h-screen{{else}}max-h-0{{/hbp_ifCond}}\">\r\n            <div class=\"space-y-2 border-t border-[#d3d3d3] p-4 text-[13px] text-white-dark dark:border-[#1b2e4b]\">\r\n                <p>\r\n                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\r\n                    aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\r\n                </p>\r\n                <p>\r\n                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\r\n                    aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\r\n                </p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n     <div class=\"rounded border border-[#d3d3d3] dark:border-[#1b2e4b]\">\r\n        <button\r\n            type=\"button\"\r\n            class=\"flex w-full items-center p-4 text-white-dark dark:bg-[#1b2e4b] {{#hbp_ifCond  currentAccordion '==' 'profile'}}!text-primary{{/hbp_ifCond}}\"\r\n            data-accordion=\"profile\"\r\n            \r\n            \r\n        >\r\n            Accordion 1 profile\r\n            <div class=\"ltr:ml-auto rtl:mr-auto {{#hbp_ifCond  currentAccordion '==' 'profile'}}rotate-180{{/hbp_ifCond}}\" >\r\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"h-4 w-4\">\r\n                    <path d=\"M19 9L12 15L5 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n                </svg>\r\n            </div>\r\n        </button>\r\n        <div class=\"overflow-hidden transition-all duration-300 {{#hbp_ifCond  currentAccordion '==' 'profile'}}max-h-screen{{else}}max-h-0{{/hbp_ifCond}}\">\r\n             <div class=\"space-y-2 border-t border-[#d3d3d3] p-4 text-[13px] text-white-dark dark:border-[#1b2e4b]\">\r\n                <p>\r\n                    Profile\r\n                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\r\n                    aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\r\n                </p>\r\n                <p>\r\n                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\r\n                    aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\r\n                </p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n     <div class=\"rounded border border-[#d3d3d3] dark:border-[#1b2e4b]\">\r\n        <button\r\n            type=\"button\"\r\n            class=\"flex w-full items-center p-4 text-white-dark dark:bg-[#1b2e4b] {{#hbp_ifCond  currentAccordion '==' 'contact'}}!text-primary{{/hbp_ifCond}}\"\r\n            data-accordion=\"contact\"\r\n            \r\n            \r\n        >\r\n            Accordion 1 contact\r\n            <div class=\"ltr:ml-auto rtl:mr-auto {{#hbp_ifCond  currentAccordion '==' 'contact'}}rotate-180{{/hbp_ifCond}}\" >\r\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"h-4 w-4\">\r\n                    <path d=\"M19 9L12 15L5 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n                </svg>\r\n            </div>\r\n        </button>\r\n        <div class=\"overflow-hidden transition-all duration-300 {{#hbp_ifCond  currentAccordion '==' 'contact'}}max-h-screen{{else}}max-h-0{{/hbp_ifCond}}\">\r\n             <div class=\"space-y-2 border-t border-[#d3d3d3] p-4 text-[13px] text-white-dark dark:border-[#1b2e4b]\">\r\n                <p>\r\n                    Contact\r\n                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\r\n                    aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\r\n                </p>\r\n                <p>\r\n                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\r\n                    aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\r\n                </p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \r\n</div>\r\n</div>\r\n\r\n\r\n\r\n<div class=\"panel mb-5\">\r\n\r\n<div class=\"mb-5 flex items-center justify-between\">\r\n        <h5 appDynamicFontSize=\"title\" class=\"text-lg font-semibold dark:text-white-light\">Accordion (CODE) </h5>\r\n\r\n      \r\n      </div>\r\n\r\n<div class=\"mb-5\">\r\n    <pre class=\"bg-gray-800 text-white p-4 rounded-md overflow-auto\" ><code class=\"xml\">\r\n\r\n<div class=\"panel mb-5\">\r\n    <div class=\"mb-5 flex items-center justify-between\">\r\n        <h5 appDynamicFontSize=\"title\" class=\"text-lg font-semibold dark:text-white-light\">Accordion</h5>\r\n\r\n      </div>\r\n<div class=\"space-y-2 font-semibold\">\r\n    <div class=\"rounded border border-[#d3d3d3] dark:border-[#1b2e4b]\">\r\n        <button\r\n            type=\"button\"\r\n            class=\"flex w-full items-center p-4 text-white-dark dark:bg-[#1b2e4b] {{#hbp_ifCond  currentAccordion '==' 'home'}}!text-primary{{/hbp_ifCond}}\"\r\n            data-accordion=\"home\"\r\n            \r\n            \r\n        >\r\n            Accordion 1 home\r\n            <div class=\"ltr:ml-auto rtl:mr-auto {{#hbp_ifCond  currentAccordion '==' 'home'}}rotate-180{{/hbp_ifCond}}\" >\r\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"h-4 w-4\">\r\n                    <path d=\"M19 9L12 15L5 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n                </svg>\r\n            </div>\r\n        </button>\r\n        <div class=\"overflow-hidden transition-all duration-300 {{#hbp_ifCond  currentAccordion '==' 'home'}}max-h-screen{{else}}max-h-0{{/hbp_ifCond}}\">\r\n            <div class=\"space-y-2 border-t border-[#d3d3d3] p-4 text-[13px] text-white-dark dark:border-[#1b2e4b]\">\r\n                <p>\r\n                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\r\n                    aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\r\n                </p>\r\n                <p>\r\n                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\r\n                    aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\r\n                </p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n     <div class=\"rounded border border-[#d3d3d3] dark:border-[#1b2e4b]\">\r\n        <button\r\n            type=\"button\"\r\n            class=\"flex w-full items-center p-4 text-white-dark dark:bg-[#1b2e4b] {{#hbp_ifCond  currentAccordion '==' 'profile'}}!text-primary{{/hbp_ifCond}}\"\r\n            data-accordion=\"profile\"\r\n            \r\n            \r\n        >\r\n            Accordion 1 profile\r\n            <div class=\"ltr:ml-auto rtl:mr-auto {{#hbp_ifCond  currentAccordion '==' 'profile'}}rotate-180{{/hbp_ifCond}}\" >\r\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"h-4 w-4\">\r\n                    <path d=\"M19 9L12 15L5 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n                </svg>\r\n            </div>\r\n        </button>\r\n        <div class=\"overflow-hidden transition-all duration-300 {{#hbp_ifCond  currentAccordion '==' 'profile'}}max-h-screen{{else}}max-h-0{{/hbp_ifCond}}\">\r\n             <div class=\"space-y-2 border-t border-[#d3d3d3] p-4 text-[13px] text-white-dark dark:border-[#1b2e4b]\">\r\n                <p>\r\n                    Profile\r\n                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\r\n                    aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\r\n                </p>\r\n                <p>\r\n                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\r\n                    aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\r\n                </p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n     <div class=\"rounded border border-[#d3d3d3] dark:border-[#1b2e4b]\">\r\n        <button\r\n            type=\"button\"\r\n            class=\"flex w-full items-center p-4 text-white-dark dark:bg-[#1b2e4b] {{#hbp_ifCond  currentAccordion '==' 'contact'}}!text-primary{{/hbp_ifCond}}\"\r\n            data-accordion=\"contact\"\r\n            \r\n            \r\n        >\r\n            Accordion 1 contact\r\n            <div class=\"ltr:ml-auto rtl:mr-auto {{#hbp_ifCond  currentAccordion '==' 'contact'}}rotate-180{{/hbp_ifCond}}\" >\r\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"h-4 w-4\">\r\n                    <path d=\"M19 9L12 15L5 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n                </svg>\r\n            </div>\r\n        </button>\r\n        <div class=\"overflow-hidden transition-all duration-300 {{#hbp_ifCond  currentAccordion '==' 'contact'}}max-h-screen{{else}}max-h-0{{/hbp_ifCond}}\">\r\n             <div class=\"space-y-2 border-t border-[#d3d3d3] p-4 text-[13px] text-white-dark dark:border-[#1b2e4b]\">\r\n                <p>\r\n                    Contact\r\n                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\r\n                    aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\r\n                </p>\r\n                <p>\r\n                    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\r\n                    aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\r\n                </p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \r\n</div>\r\n</div>\r\n\r\n\r\n    </code></pre>\r\n</div>\r\n\r\n</div>\r\n\r\n<div class=\"panel mb-5\">\r\n\r\n<div class=\"mb-5 flex items-center justify-between\">\r\n        <h5 appDynamicFontSize=\"title\" class=\"text-lg font-semibold dark:text-white-light\">Model (HTML) </h5>\r\n\r\n      \r\n      </div>\r\n\r\n<div class=\"mb-5\">\r\n    <pre class=\"bg-gray-800 text-white p-4 rounded-md overflow-auto\" ><code class=\"xml\">\r\n\r\n        <!-- start -->\r\n    <pre class=\"bg-gray-800 text-white p-4 rounded-md overflow-auto\" ><code class=\"xml\">\r\n\r\n<div class=\"panel mb-5\">\r\n    <div class=\"mb-5 flex items-center justify-between\">\r\n        <h5 appDynamicFontSize=\"title\" class=\"text-lg font-semibold dark:text-white-light\">Accordion</h5>\r\n\r\n      </div>\r\n\r\n</div>\r\n\r\n\r\n    <code><pre>\r\n        <!-- In the end add backslash to code and pre -->\r\n\r\n\r\n    </code></pre>\r\n</div>\r\n\r\n</div>\r\n\r\n<div class=\"panel mb-5\">\r\n\r\n<div class=\"mb-5 flex items-center justify-between\">\r\n        <h5 appDynamicFontSize=\"title\" class=\"text-lg font-semibold dark:text-white-light\">Model (TYPESCRIPT/JSON/QUERY) </h5>\r\n\r\n      \r\n      </div>\r\n<div class=\"mb-5\">\r\n    <pre class=\"bg-gray-800 text-white p-4 rounded-md overflow-auto\" ><code class=\"xml\">\r\n\r\n        <!-- start -->\r\n    <pre class=\"bg-gray-800 text-white p-4 rounded-md overflow-auto\" ><code class=\"xml\">\r\n${ import { Injectable } from '@angular/core';\r\n            import { Store } from '@ngrx/store';\r\n            import { $themeConfig } from '../theme.config';\r\n            import { TranslateService } from '@ngx-translate/core';\r\n            \r\n            @Injectable()\r\n            export class AppService {\r\n            storeData: any;\r\n            constructor(public translate: TranslateService, public store: Store<any>) {\r\n                this.initStoreData();\r\n            }\r\n            \r\n            initStoreData() {\r\n                this.store\r\n                    .select((d: any) => d.index)\r\n                    .subscribe((d: any) => {\r\n                        this.storeData = d;\r\n                    });\r\n            \r\n                // set default styles\r\n                let val: any = localStorage.getItem('theme'); // light, dark, system\r\n                val = val || $themeConfig.theme;\r\n                this.store.dispatch({ type: 'toggleTheme', payload: val });\r\n            \r\n                val = localStorage.getItem('menu'); // vertical, collapsible-vertical, horizontal\r\n                val = val || $themeConfig.menu;\r\n                this.store.dispatch({ type: 'toggleMenu', payload: val });\r\n            \r\n                val = localStorage.getItem('layout'); // full, boxed-layout\r\n                val = val || $themeConfig.layout;\r\n                this.store.dispatch({ type: 'toggleLayout', payload: val });\r\n            \r\n                val = localStorage.getItem('i18n_locale'); // en, da, de, el, es, fr, hu, it, ja, pl, pt, ru, sv, tr, zh\r\n                val = val || $themeConfig.locale;\r\n            \r\n                const list = this.storeData.languageList;\r\n                const item = list.find((item: any) => item.code === val);\r\n                if (item) {\r\n                    this.toggleLanguage(item);\r\n                }\r\n            \r\n                val = localStorage.getItem('rtlClass'); // rtl, ltr\r\n                val = val || $themeConfig.rtlClass;\r\n                this.store.dispatch({ type: 'toggleRTL', payload: val });\r\n            \r\n                val = localStorage.getItem('animation'); // animate__fadeIn, animate__fadeInDown, animate__fadeInUp, animate__fadeInLeft, animate__fadeInRight, animate__slideInDown, animate__slideInLeft, animate__slideInRight, animate__zoomIn\r\n                val = val || $themeConfig.animation;\r\n                this.store.dispatch({ type: 'toggleAnimation', payload: val });\r\n            \r\n                val = localStorage.getItem('navbar'); // navbar-sticky, navbar-floating, navbar-static\r\n                val = val || $themeConfig.navbar;\r\n                this.store.dispatch({ type: 'toggleNavbar', payload: val });\r\n            \r\n                val = localStorage.getItem('semidark');\r\n                val = val === 'true' ? true : $themeConfig.semidark;\r\n                this.store.dispatch({ type: 'toggleSemidark', payload: val });\r\n            }\r\n            \r\n            toggleLanguage(item: any) {\r\n                let lang: any = null;\r\n                lang = 'en';\r\n                if (item) {\r\n                    lang = item;\r\n                } else {\r\n                    let code = this.translate.currentLang || null;\r\n                    if (!code) {\r\n                        code = localStorage.getItem('i18n_locale');\r\n                    }\r\n            \r\n                    item = this.storeData.languageList.find((d: any) => d.code === code);\r\n                    if (item) {\r\n                        lang = item;\r\n                    }\r\n                }\r\n            \r\n                if (!lang) {\r\n                    lang = this.storeData.languageList.find((d: any) => d.code === 'en');\r\n                }\r\n            \r\n                this.translate.use(lang.code); // set language\r\n                this.store.dispatch({ type: 'toggleLocale', payload: lang.code });\r\n                return lang;\r\n            }\r\n            \r\n            changeAnimation(type = 'add') {\r\n                if (this.storeData.animation) {\r\n                    const ele: any = document.querySelector('.animation');\r\n                    if (type === 'add') {\r\n                        ele?.classList.add('animate__animated');\r\n                        ele?.classList.add(this.storeData.animation);\r\n                    } else {\r\n                        ele?.classList.remove('animate__animated');\r\n                        ele?.classList.remove(this.storeData.animation);\r\n                    }\r\n                }\r\n            }\r\n            } }\r\n<code><pre>\r\n        <!-- In the end add backslash to code and pre -->\r\n\r\n\r\n    </code></pre>\r\n</div>\r\n\r\n</div>",
    "query_information": null,
    "company_id": 1
  },
  {
    "name": "Documentation Postgres Queries",
    "entity_name": "documentation_postgres_queries",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"panel mb-5\">\r\n    <div class=\"mb-5 flex items-center justify-between\">\r\n        <h5 appDynamicFontSize=\"title\" class=\"text-lg font-semibold dark:text-white-light\">Cloning Database</h5>\r\n    </div>\r\n    <div class=\"mb-5\">\r\n        <div class=\"flex-1 pt-5 text-sm\">\r\n            <h4 class=\"mt-4 mb-4 text-2xl font-semibold\">Overview</h4>\r\n            <p class=\"mt-4 mb-4\">\r\n                PostgreSQL provides a convenient way to clone a database along with its data using a simple command. This method allows you to quickly create a new database based on an existing one without the need for exporting and importing data.\r\n            </p>\r\n            <h4 class=\"mt-4 mb-4 text-xl font-semibold\">Usage</h4>\r\n            <p class=\"mt-4 mb-4\">\r\n                To clone a database, you can use the following syntax:\r\n            </p>\r\n             <pre class=\"bg-gray-800 text-white p-4 rounded-md overflow-auto\" ><code class=\"xml\">\r\n\r\ncreate database [new_database_name] with template [source_database_name] owner postgres;\r\n</code>\r\n            </pre>\r\n            <p class=\"mt-4 mb-4\">\r\n                Here is an example:\r\n            </p>\r\n             <pre class=\"bg-gray-800 text-white p-4 rounded-md overflow-auto\" ><code class=\"xml\">\r\n\r\ncreate database lcp_zain_wms with template lcp_framework owner postgres;\r\n</code>\r\n            </pre>\r\n            <h4 class=\"mt-4 mb-4 text-xl font-semibold\">Handling Active Sessions</h4>\r\n            <p class=\"mt-4 mb-4\">\r\n                If you encounter any issues related to active sessions when cloning the database, you can terminate those sessions using the following query:\r\n            </p>\r\n             <pre class=\"bg-gray-800 text-white p-4 rounded-md overflow-auto\" ><code class=\"xml\">\r\n\r\nSELECT pg_terminate_backend(pg_stat_activity.pid)\r\nFROM pg_stat_activity\r\nWHERE pg_stat_activity.datname = 'lcp_framework'\r\nAND pid <> pg_backend_pid();\r\n</code>\r\n            </pre>\r\n            <p>\r\n                This query will terminate all active sessions connected to the specified database, allowing you to proceed with cloning it without any conflicts.\r\n            </p>\r\n        </div>\r\n    </div>\r\n</div>\r\n",
    "query_information": null,
    "company_id": 1
  },
  {
    "name": "Notifications Grid",
    "entity_name": "notification",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "notification_jobs",
    "associated_tables": [],
    "query_information": {
      "includes": [
        {
          "join_type": "LEFT",
          "table_name": "app_categories as cat_type",
          "join_condition": "notification_jobs.notification_type_id = cat_type.category_id"
        },
        {
          "table_name": "app_categories as cat_status",
          "join_type": "LEFT",
          "join_condition": "notification_jobs.notification_status_id = cat_status.category_id"
        }
      ],
      "group_by": [
        "notification_jobs.id",
        "notification_jobs.uuid",
        "notification_jobs.process_slug",
        "cat_type.name",
        "cat_status.name",
        "notification_jobs.notification_subject",
        "notification_jobs.notification_to",
        "notification_jobs.status_id",
        "notification_jobs.no_of_attempts",
        "notification_jobs.notification_cc",
        "notification_jobs.notification_bcc"
      ],
      "search_all": [
        {
          "column_name": "notification_jobs.status_id",
          "value": 3,
          "operator": "!="
        }
      ],
      "sort_columns": [["notification_jobs.id", "desc"]]
    },
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "notification_jobs.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_jobs.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_jobs.process_slug",
        "display_name": "process_slug",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "cat_type.name",
        "display_name": "type",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "cat_status.name",
        "display_name": "notify_status",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_jobs.notification_subject",
        "display_name": "subject",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_jobs.notification_to",
        "display_name": "sent_to",
        "order_no": 5,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "TO_CHAR(notification_jobs.created_at, 'YYYY-MM-DD HH24:MI:SS')",
        "display_name": "create_at",
        "order_no": 6,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 7,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "TO_CHAR(notification_jobs.sent_at, 'YYYY-MM-DD HH24:MI:SS')",
        "display_name": "sent_at",
        "order_no": 7,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 7,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_jobs.notification_cc",
        "display_name": "notification_cc",
        "order_no": 8,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_jobs.notification_bcc",
        "display_name": "notification_bcc",
        "order_no": 9,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_jobs.no_of_attempts",
        "display_name": "no_of_attempts",
        "order_no": 10,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ],
    "company_id": 1
  },
  {
    "name": "Delete Notifications form",
    "entity_name": "delete_notification_form",
    "entity_type": "job_builder_module",
    "static_page_content": null,
    "query_information": {
      "data": { "table1": [{ "deleted_at": true, "deleted_by": true }] },
      "table": ["notification_jobs"],
      "action": ["delete"],
      "conditions": { "table1": [{ "id": "$unique_id" }] },
      "table_mapping": ["table1"]
    }
  },
  {
    "name": "Import",
    "entity_name": "import_entity",
    "entity_type": "import_module",
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Transfer Data",
    "entity_name": "transfer_data_entity",
    "entity_type": "transfer_data_module",
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Master Entity Export Job",
    "entity_name": "master_entity_export_job",
    "entity_type": "export_module",
    "is_admin_module": true,
    "export_template_id": "master_entities_export_template",
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Menu Items Export Job",
    "entity_name": "menu_items_export_job",
    "entity_type": "export_module",
    "is_admin_module": true,
    "export_template_id": "menu_items_export_template",
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Export User Job",
    "entity_name": "users_export_job",
    "entity_type": "export_module",
    "is_admin_module": true,
    "export_template_id": "users_export_template",
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Export User PDF Job",
    "entity_name": "users_list_export_pdf_job",
    "entity_type": "export_module",
    "is_admin_module": true,
    "export_template_id": "users_export_pdf_template",
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "User PDF Record Export Job",
    "entity_name": "users_list_pdf_record_export_job",
    "entity_type": "export_module",
    "is_admin_module": true,
    "export_template_id": "users_list_pdf_record_export_template",
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Export Role Job",
    "entity_name": "export_excel_role",
    "entity_type": "common_permission_module",
    "is_admin_module": true,
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": [],
    "export_template_file_name": "Roles List"
  },
  {
    "name": "Export App Error Log Job",
    "entity_name": "export_excel_app_error_log",
    "entity_type": "common_permission_module",
    "is_admin_module": true,
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Reset Password User Job",
    "entity_name": "reset_password_user",
    "entity_type": "common_permission_module",
    "is_admin_module": true,
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Export Notification Template Job",
    "entity_name": "export_excel_email_template",
    "entity_type": "common_permission_module",
    "is_admin_module": true,
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Export Notifications Job",
    "entity_name": "export_excel_notification",
    "entity_type": "common_permission_module",
    "is_admin_module": true,
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Export Whatsapp Template Job",
    "entity_name": "export_excel_whatsapp_template",
    "entity_type": "common_permission_module",
    "is_admin_module": true,
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Document Sequence Grid",
    "entity_name": "document_sequences",
    "entity_type": "grid_builder_module",
    "is_admin_module": true,
    "static_page_content": null,
    "primary_table": "document_sequences",
    "associated_tables": null,
    "query_information": {
      "includes": [
        {
          "join_type": "LEFT",
          "table_name": "financial_years",
          "join_condition": "financial_years.id = document_sequences.financial_year_id"
        }
      ],
      "sort_columns": [["document_sequences.id", "desc"]]
    },
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "document_sequences.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "document_sequences.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "document_sequences.module_name",
        "display_name": "module_name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "financial_years.name",
        "display_name": "financial_year",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "document_sequences.current_sequence_no",
        "display_name": "current_sequence_no",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "document_sequences.start_sequence_no",
        "display_name": "start_sequence_no",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "document_sequences.end_sequence_no",
        "display_name": "end_sequence_no",
        "order_no": 5,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "document_sequences.sequence_length",
        "display_name": "sequence_length",
        "order_no": 6,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "document_sequences.code_format",
        "display_name": "code_format",
        "order_no": 7,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "document_sequences.status_id",
        "display_name": "status",
        "order_no": 8,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ],
    "company_id": 1
  },
  {
    "name": "Financial Year Grid",
    "entity_name": "financial_years",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "financial_years",
    "associated_tables": null,
    "query_information": { "sort_columns": [["financial_years.id", "desc"]] },
    "is_admin_module": true,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "financial_years.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "financial_years.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "financial_years.name",
        "display_name": "name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "financial_years.code",
        "display_name": "code",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "CASE WHEN financial_years.is_freezed = true THEN 'Yes' ELSE 'No' END",
        "display_name": "is_freezed",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "DATE(financial_years.start_date)",
        "display_name": "start_date",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 7,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "DATE(financial_years.end_date)",
        "display_name": "end_date",
        "order_no": 5,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 7,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "financial_years.status_id",
        "display_name": "status",
        "order_no": 5,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ],
    "company_id": 1
  },
  {
    "name": "Delete Document Sequence",
    "entity_name": "delete_document_sequences_job",
    "entity_type": "job_builder_module",
    "static_page_content": null,
    "query_information": {
      "data": { "table1": [{ "deleted_by": true, "deleted_at": true }] },
      "table": ["document_sequences"],
      "action": ["delete"],
      "conditions": { "table1": [{ "id": "$unique_id" }] },
      "table_mapping": ["table1"]
    }
  },
  {
    "name": "Delete Financial Year",
    "entity_name": "delete_financial_years_job",
    "entity_type": "job_builder_module",
    "static_page_content": null,
    "query_information": {
      "data": { "table1": [{ "deleted_by": true, "deleted_at": true }] },
      "table": ["financial_years"],
      "action": ["delete"],
      "conditions": { "table1": [{ "id": "$unique_id" }] },
      "table_mapping": ["table1"]
    }
  },
  {
    "name": "device_registration_grid",
    "entity_name": "device_registration",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "device_registration",
    "associated_tables": null,
    "query_information": {
      "sort_columns": [["device_registration.id", "desc"]],
      "group_by": [
        "device_registration.id",
        "device_registration.uuid",
        "device_registration.device_name",
        "device_registration.device_unique_id",
        "users.username",
        "user_details.last_name",
        "user_details.first_name",
        "device_registration.status_id"
      ],
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "users",
          "join_condition": "device_registration.user_id = users.id"
        },
        {
          "join_type": "INNER",
          "table_name": "user_details",
          "join_condition": "user_details.user_id = users.id"
        },
        {
          "join_type": "LEFT",
          "table_name": "user_roles",
          "join_condition": "users.id = user_roles.user_id"
        },
        {
          "join_type": "LEFT",
          "table_name": "roles",
          "join_condition": "roles.id = user_roles.role_id"
        }
      ],
      "search_all": [
        { "value": 3, "operator": "!=", "column_name": "users.status_id" },
        {
          "value": ["super_admin", "company_admin"],
          "operator": "NOT IN",
          "column_name": "users.role"
        }
      ]
    },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "device_registration.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "device_registration.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "device_registration.device_name",
        "display_name": "device_name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "device_registration.device_unique_id",
        "display_name": "device_unique_id",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "users.username",
        "display_name": "username",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "concat(user_details.first_name, ' ', user_details.last_name)",
        "display_name": "name",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "STRING_AGG(roles.name, ', ')",
        "display_name": "user_roles",
        "order_no": 5,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "device_registration.status_id",
        "display_name": "status",
        "order_no": 6,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Import Job Grid",
    "entity_name": "import_job",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "import_jobs",
    "query_information": { "sort_columns": [["import_jobs.id", "desc"]] },
    "associated_tables": [
      {
        "table": "import_job_line_items",
        "where_clause": "import_job_id = $1 AND status_id != 3"
      }
    ],
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "import_jobs.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "import_jobs.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "import_jobs.name",
        "display_name": "name",
        "order_no": 1.1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "import_jobs.description",
        "display_name": "description",
        "order_no": 2,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "import_jobs.total_rows",
        "display_name": "total_rows",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "import_jobs.completed_rows",
        "display_name": "completed_rows",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "import_jobs.error_rows",
        "display_name": "error_rows",
        "order_no": 5,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "import_jobs.created_at",
        "display_name": "created_at",
        "order_no": 7.1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 7,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "import_jobs.updated_at",
        "display_name": "updated_at",
        "order_no": 7,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 7,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "import_jobs.job_status",
        "display_name": "job_status",
        "order_no": 8,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "import_jobs.status_id",
        "display_name": "status",
        "order_no": 9,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "import_jobs.validation_completed_at",
        "display_name": "validation_completed_at",
        "order_no": 7.1,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 7,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "import_jobs.processing_completed_at",
        "display_name": "processing_completed_at",
        "order_no": 7.2,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 7,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "import_jobs.expected_completion_time",
        "display_name": "expected_completion_time",
        "order_no": 7.3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 7,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "import_jobs.sequence_number",
        "display_name": "job_id",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 7,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Import Job Details Page",
    "entity_name": "details_import_job",
    "entity_type": "import_job_detail_module"
  },
  {
    "name": "Policy Grid",
    "entity_name": "policies",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "policies",
    "associated_tables": null,
    "query_information": { "sort_columns": [["policies.id", "desc"]] },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "policies.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "policies.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "policies.name",
        "display_name": "name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "COALESCE(policies.description, '-')",
        "display_name": "description",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "policies.status_id",
        "display_name": "status",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "policies.slug",
        "display_name": "slug",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      }
    ]
  },
  {
    "name": "User/Role Policy Map Page",
    "entity_name": "user_role_policy_map_entity",
    "entity_type": "user_role_policy_module",
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Policy Add Edit Form",
    "entity_name": "policy_add_edit_form",
    "entity_type": "policy_add_edit_module",
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "App version Grid",
    "entity_name": "app_versions",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "app_versions",
    "associated_tables": null,
    "query_information": { "sort_columns": [["app_versions.id", "desc"]] },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "app_versions.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "app_versions.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "app_versions.type",
        "display_name": "type",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "app_versions.version_type",
        "display_name": "version_type",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "app_versions.version",
        "display_name": "version",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "CASE WHEN app_versions.is_frontend_changed = TRUE THEN 'Yes' ELSE 'No' END",
        "display_name": "is_frontend_changed",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "CASE WHEN app_versions.is_backend_changed = TRUE THEN 'Yes' ELSE 'No' END",
        "display_name": "is_backend_changed",
        "order_no": 5,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "CASE WHEN app_versions.is_database_changed = TRUE THEN 'Yes' ELSE 'No' END",
        "display_name": "is_database_changed",
        "order_no": 6,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "COALESCE(app_versions.developed_by, '-')",
        "display_name": "developed_by",
        "order_no": 7,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "app_versions.created_at",
        "display_name": "created_at",
        "order_no": 8,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 7,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "app_versions.status_id",
        "display_name": "status",
        "order_no": 9,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "App Version Details",
    "entity_name": "app_version_details",
    "entity_type": "static_page_builder_module",
    "primary_table": null,
    "is_admin_module": false,
    "associated_tables": null,
    "form_information": null,
    "add_query_information": null,
    "edit_query_information": null,
    "preset_query_information": null,
    "query_information": {
      "group_by": [
        "app_versions.id",
        "app_versions.uuid",
        "app_versions.type",
        "app_versions.version",
        "app_versions.description",
        "app_versions.is_frontend_changed",
        "app_versions.is_backend_changed",
        "app_versions.is_database_changed",
        "app_versions.developed_by",
        "app_versions.created_at",
        "statuses.name"
      ],
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "statuses",
          "join_condition": "app_versions.status_id = statuses.id"
        }
      ],
      "company_id": 1,
      "search_all": [
        {
          "value": "$unique_id",
          "operator": "=",
          "column_name": "app_versions.uuid"
        },
        {
          "value": "3",
          "operator": "!=",
          "column_name": "app_versions.status_id"
        }
      ],
      "limit_range": 1,
      "print_query": false,
      "start_index": 0,
      "sort_columns": [["app_versions.id", "desc"]],
      "primary_table": "app_versions",
      "select_columns": [
        ["app_versions.id", "id"],
        ["app_versions.uuid", "uuid"],
        ["app_versions.type", "type"],
        ["app_versions.version_type", "version_type"],
        ["app_versions.version", "version"],
        ["app_versions.description", "description"],
        [
          "CASE WHEN app_versions.is_frontend_changed = TRUE THEN 'Yes' ELSE 'No' END",
          "is_frontend_changed"
        ],
        [
          "CASE WHEN app_versions.is_backend_changed = TRUE THEN 'Yes' ELSE 'No' END",
          "is_backend_changed"
        ],
        [
          "CASE WHEN app_versions.is_database_changed = TRUE THEN 'Yes' ELSE 'No' END",
          "is_database_changed"
        ],
        ["COALESCE(app_versions.developed_by, '-')", "developed_by"],
        ["app_versions.created_at", "created_at"],
        ["statuses.name", "status_name"]
      ]
    },
    "static_page_content": "<div class=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-3 gap-6 p-4\">  <!-- Type -->  <div class=\"flex flex-col\">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"type\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.type}}</div>  </div>  <!-- Version Type -->  <div class=\"flex flex-col\">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"version_type\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.version_type}}</div>  </div>  <!-- Version -->  <div class=\"flex flex-col\">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"version\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.version}}</div>  </div>   <!-- Status -->  <div class=\"flex flex-col\">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"form_label_status\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.status_name}}</div>  </div>  <!-- Frontend Change -->  <div class=\"flex flex-col\">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"frontend_change\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.is_frontend_changed}}</div>  </div>  <!-- Backend Change -->  <div class=\"flex flex-col\">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"backend_change\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.is_backend_changed}}</div>  </div>  <!-- Database Change -->  <div class=\"flex flex-col\">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"database_change\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.is_database_changed}}</div>  </div>   <!-- Developed By -->    <div class=\"flex flex-col\">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"developed_by\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.developed_by}}</div>  </div>   <!-- Created At -->  <div class=\"flex flex-col\">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"created_at\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.created_at}}</div>  </div>  </div> <div class=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-1 gap-6 p-4\">  <!-- Description -->  <div class=\"flex flex-col md:col-span-2\">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"form_label_description\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.description}}</div>  </div></div>"
  },
  {
    "name": "Approver Tags Grid",
    "entity_name": "approver_tag",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "approval_workflow_approver_tags",
    "associated_tables": null,
    "query_information": {
      "sort_columns": [["approval_workflow_approver_tags.id", "desc"]]
    },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "approval_workflow_approver_tags.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "approval_workflow_approver_tags.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "approval_workflow_approver_tags.name",
        "display_name": "name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "approval_workflow_approver_tags.slug",
        "display_name": "slug",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "approval_workflow_approver_tags.description",
        "display_name": "description",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "approval_workflow_approver_tags.status_id",
        "display_name": "status",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Approver Tag Details",
    "entity_name": "approver_tag_details_page",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6 p-4\"> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"name\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.name}}</div> </div> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"slug\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.slug}}</div> </div> <div class=\"flex flex-col \"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"form_label_query_information\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.query_information}}</div> </div> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"form_label_description\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.description}}</div> </div> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"status\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.status_name}}</div> </div> </div>",
    "query_information": {
      "group_by": [
        "approval_workflow_approver_tags.slug",
        "approval_workflow_approver_tags.id",
        "approval_workflow_approver_tags.name",
        "statuses.name"
      ],
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "statuses",
          "join_condition": "approval_workflow_approver_tags.status_id = statuses.id"
        }
      ],
      "company_id": 1,
      "search_all": [
        {
          "value": "$unique_id",
          "operator": "=",
          "column_name": "approval_workflow_approver_tags.uuid"
        },
        {
          "value": "3",
          "operator": "!=",
          "column_name": "approval_workflow_approver_tags.status_id"
        }
      ],
      "limit_range": 1,
      "print_query": false,
      "start_index": 0,
      "sort_columns": [["approval_workflow_approver_tags.id", "desc"]],
      "primary_table": "approval_workflow_approver_tags",
      "select_columns": [
        ["approval_workflow_approver_tags.name", "name"],
        ["approval_workflow_approver_tags.slug", "slug"],
        ["approval_workflow_approver_tags.description", "description"],
        [
          "approval_workflow_approver_tags.query_information",
          "query_information"
        ],
        ["statuses.name", "status_name"]
      ]
    }
  },
  {
    "name": "Approval Workflow Grid",
    "entity_name": "approval_workflow",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "approval_workflows",
    "associated_tables": null,
    "query_information": {
      "sort_columns": [["approval_workflows.id", "desc"]]
    },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "approval_workflows.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "approval_workflows.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "approval_workflows.name",
        "display_name": "name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "approval_workflows.slug",
        "display_name": "slug",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "approval_workflows.status_id",
        "display_name": "status",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Approval Workflow Details",
    "entity_name": "approval_workflow_details_page",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6 p-4\"> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"form_label_name\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.name}}</div> </div> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"form_label_slug\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.slug}}</div> </div> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"page_url\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{ result_data.url }}</div> </div> <div class=\"flex flex-col \"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"form_label_query_information\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.query_information}}</div> </div> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"form_label_status\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.status_name}}</div> </div> </div>",
    "query_information": {
      "group_by": [
        "approval_workflows.slug",
        "approval_workflows.id",
        "approval_workflows.name",
        "statuses.name"
      ],
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "statuses",
          "join_condition": "approval_workflows.status_id = statuses.id"
        }
      ],
      "company_id": 1,
      "search_all": [
        {
          "value": "$unique_id",
          "operator": "=",
          "column_name": "approval_workflows.uuid"
        },
        {
          "value": "3",
          "operator": "!=",
          "column_name": "approval_workflows.status_id"
        }
      ],
      "limit_range": 1,
      "print_query": false,
      "start_index": 0,
      "sort_columns": [["approval_workflows.id", "desc"]],
      "primary_table": "approval_workflows",
      "select_columns": [
        ["approval_workflows.name", "name"],
        ["approval_workflows.slug", "slug"],
        ["approval_workflows.url", "url"],
        ["approval_workflows.query_information", "query_information"],
        ["statuses.name", "status_name"]
      ]
    }
  },
  {
    "name": "Approval Workflow Assignment",
    "entity_name": "approval_workflow_assignment",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "approval_workflows",
    "query_information": {
      "sort_columns": [["approval_workflows.id", "desc"]]
    },
    "company_id": 1,
    "associated_tables": null,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "approval_workflows.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "approval_workflows.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "approval_workflows.name",
        "display_name": "name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "approval_workflows.slug",
        "display_name": "slug",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "approval_workflows.status_id",
        "display_name": "status",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Approval Requests Grid",
    "entity_name": "approval_requests",
    "entity_type": "approval_requests_module",
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Approval Request Details",
    "entity_name": "approval_request_details",
    "entity_type": "approval_requests_tracking_module",
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Delegations",
    "entity_name": "delegations",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "delegations",
    "query_information": {
      "sort_columns": [["delegations.id", "desc"]],
      "includes": [
        {
          "join_type": "LEFT",
          "table_name": "users u1",
          "join_condition": "u1.id = delegations.user_id AND u1.status_id != 3"
        },
        {
          "join_type": "LEFT",
          "table_name": "users u2",
          "join_condition": "u2.id = delegations.delegated_user_id AND u2.status_id != 3"
        }
      ]
    },
    "company_id": 1,
    "associated_tables": null,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "delegations.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "delegations.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "u1.email",
        "display_name": "user_email",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "u2.email",
        "display_name": "delegated_user_email",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "delegations.start_date",
        "display_name": "start_date",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 7,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "delegations.end_date",
        "display_name": "end_date",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 7,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "delegations.reason",
        "display_name": "reason",
        "order_no": 5,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "delegations.status_id",
        "display_name": "status",
        "order_no": 6,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Delegation Details",
    "entity_name": "delegation_details_page",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6 p-4\"> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"user\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.user_email}}</div> </div> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"delegated_user\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.delegated_user_email}}</div> </div> <div class=\"flex flex-col \"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"reason\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.reason}}</div> </div> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"start_date\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.start_date}}</div> </div> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"end_date\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.end_date}}</div> </div> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"status\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.status_name}}</div> </div> </div>",
    "query_information": {
      "group_by": ["delegations.id", "statuses.name", "u1.email", "u2.email"],
      "includes": [
        {
          "join_type": "LEFT",
          "table_name": "users u1",
          "join_condition": "u1.id = delegations.user_id AND u1.status_id != 3"
        },
        {
          "join_type": "LEFT",
          "table_name": "users u2",
          "join_condition": "u2.id = delegations.delegated_user_id AND u2.status_id != 3"
        },
        {
          "join_type": "INNER",
          "table_name": "statuses",
          "join_condition": "delegations.status_id = statuses.id"
        }
      ],
      "company_id": 1,
      "search_all": [
        {
          "value": "$unique_id",
          "operator": "=",
          "column_name": "delegations.uuid"
        },
        {
          "value": "3",
          "operator": "!=",
          "column_name": "delegations.status_id"
        }
      ],
      "limit_range": 1,
      "print_query": false,
      "start_index": 0,
      "sort_columns": [["delegations.id", "desc"]],
      "primary_table": "delegations",
      "select_columns": [
        ["u1.email", "user_email"],
        ["u2.email", "delegated_user_email"],
        ["delegations.reason", "reason"],
        [
          "TO_CHAR(delegations.start_date, 'YYYY-MM-DD\" \"HH24:MI')",
          "start_date"
        ],
        ["TO_CHAR(delegations.end_date, 'YYYY-MM-DD\" \"HH24:MI')", "end_date"],
        ["statuses.name", "status_name"]
      ]
    }
  },
  {
    "name": "About LCP Grid",
    "entity_name": "about_lcp",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "about_lcp",
    "associated_tables": [],
    "query_information": { "sort_columns": [["about_lcp.id", "desc"]] },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "about_lcp.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "about_lcp.uuid",
        "display_name": "uuid",
        "order_no": 1,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "about_lcp.order_no",
        "display_name": "order_no",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "about_lcp.name",
        "display_name": "topic",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "about_lcp.description",
        "display_name": "description",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "about_lcp.documentation_video_url",
        "display_name": "documentation_video_url",
        "order_no": 5,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "about_lcp.documentation_pdf",
        "display_name": "documentation_pdf",
        "order_no": 6,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "about_lcp.documentation_word",
        "display_name": "documentation_word",
        "order_no": 7,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "about_lcp.status_id",
        "display_name": "status",
        "order_no": 8,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "About Project Grid",
    "entity_name": "about_project",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "about_lcp",
    "associated_tables": [],
    "query_information": {
      "sort_columns": [["about_lcp.id", "desc"]],
      "group_by": ["about_lcp.id"],
      "includes": [],
      "search_all": [
        { "value": "project", "operator": "=", "column_name": "about_lcp.type" }
      ]
    },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "about_lcp.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "about_lcp.uuid",
        "display_name": "uuid",
        "order_no": 1,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "about_lcp.name",
        "display_name": "topic",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "about_lcp.description",
        "display_name": "description",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "about_lcp.documentation_video_url",
        "display_name": "documentation_video_url",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "about_lcp.documentation_pdf",
        "display_name": "documentation_pdf",
        "order_no": 5,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "about_lcp.documentation_word",
        "display_name": "documentation_word",
        "order_no": 6,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "about_lcp.status_id",
        "display_name": "status",
        "order_no": 7,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Add Edit About LCP Form Page",
    "entity_name": "about_lcp_add_edit_form",
    "entity_type": "about_lcp_form_module",
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Cron Setting",
    "entity_name": "cron_setting",
    "entity_type": "cron_setting_module",
    "is_admin_module": true,
    "primary_table": "scheduled_jobs",
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "schema_chunk_list",
    "entity_name": "schema_chunks",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "schema_chunks",
    "query_information": { "sort_columns": [["schema_chunks.id", "desc"]] },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "schema_chunks.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "schema_chunks.uuid",
        "display_name": "uuid",
        "order_no": 1,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "schema_chunks.table_name",
        "display_name": "table_name",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "schema_chunks.chunk",
        "display_name": "chunk",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Background Process",
    "entity_name": "child_process",
    "entity_type": "child_process_setting_module",
    "is_admin_module": true,
    "primary_table": "child_processes",
    "company_id": 1,
    "lineitems": [],
    "static_page_content": null,
    "query_information": null
  },
  {
    "name": "Background Process Details",
    "entity_name": "child_process_details",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6 p-4\"> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"form_label_name\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.name}}</div> </div> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"form_label_slug\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.slug}}</div> </div> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"form_label_description\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{ result_data.description }}</div> </div> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"command\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.command}}</div> </div> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"form_label_status\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.status_name}}</div> </div> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"created_at\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.created_at}}</div> </div> </div>",
    "query_information": {
      "group_by": [
        "child_processes.name",
        "child_processes.slug",
        "child_processes.description",
        "child_processes.command",
        "child_processes.created_at",
        "statuses.name",
        "child_processes.id"
      ],
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "statuses",
          "join_condition": "child_processes.status_id = statuses.id"
        }
      ],
      "company_id": 1,
      "search_all": [
        {
          "value": "$unique_id",
          "operator": "=",
          "column_name": "child_processes.uuid"
        },
        {
          "value": "3",
          "operator": "!=",
          "column_name": "child_processes.status_id"
        }
      ],
      "limit_range": 1,
      "print_query": false,
      "start_index": 0,
      "sort_columns": [["child_processes.id", "desc"]],
      "primary_table": "child_processes",
      "select_columns": [
        ["child_processes.name", "name"],
        ["child_processes.slug", "slug"],
        ["child_processes.description", "description"],
        ["child_processes.command", "command"],
        ["statuses.name", "status_name"],
        ["child_processes.created_at", "created_at"]
      ]
    }
  },
  {
    "name": "Background Process Log Details",
    "entity_name": "child_process_log_details",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6 p-4\"> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"background_process_name\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.child_process_name}}</div> </div> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"background_process_slug\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.child_process_slug}}</div> </div> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"background_process_description\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{ result_data.child_process_description }}</div> </div> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"background_process_command\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.child_process_command}}</div> </div> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"process_completion_status\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.process_completion_status}}</div> </div> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"output\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.output}}</div> </div> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"initiated_by\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.initiated_by}}</div> </div> <div class=\"flex flex-col\"> <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"form_label_status\"}}:</label> <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.status_name}}</div> </div> </div>",
    "query_information": {
      "group_by": [
        "child_processes.name",
        "child_processes.slug",
        "child_processes.description",
        "child_processes.command",
        "statuses.name",
        "child_process_logs.id",
        "child_process_logs.process_status",
        "child_process_logs.output",
        "users.email",
        "s1.name",
        "child_processes.status_id"
      ],
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "statuses",
          "join_condition": "child_process_logs.status_id = statuses.id"
        },
        {
          "join_type": "LEFT",
          "table_name": "child_processes",
          "join_condition": "child_processes.id = child_process_logs.child_process_id AND child_processes.status_id != 3"
        },
        {
          "join_type": "LEFT",
          "table_name": "statuses s1",
          "join_condition": "child_processes.status_id = s1.id"
        },
        {
          "join_type": "LEFT",
          "table_name": "users",
          "join_condition": "child_process_logs.initiated_by = users.id"
        }
      ],
      "company_id": 1,
      "search_all": [
        {
          "value": "$unique_id",
          "operator": "=",
          "column_name": "child_process_logs.uuid"
        },
        {
          "value": "3",
          "operator": "!=",
          "column_name": "child_process_logs.status_id"
        }
      ],
      "limit_range": 1,
      "print_query": false,
      "start_index": 0,
      "sort_columns": [["child_process_logs.id", "desc"]],
      "primary_table": "child_process_logs",
      "select_columns": [
        ["child_processes.name", "child_process_name"],
        ["child_processes.slug", "child_process_slug"],
        ["child_processes.description", "child_process_description"],
        ["child_processes.command", "child_process_command"],
        ["child_process_logs.process_status", "process_completion_status"],
        ["child_process_logs.output", "output"],
        ["users.email", "initiated_by"],
        ["s1.name", "status_name"]
      ]
    }
  },
  {
    "name": "Carousel Template Grid",
    "entity_name": "carousel_template",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "carousel_templates",
    "associated_tables": [
      {
        "table": "carousel_template_line_items",
        "where_clause": "carousel_template_id = $1 AND status_id != 3"
      }
    ],
    "query_information": {
      "sort_columns": [["carousel_templates.id", "desc"]],
      "group_by": ["carousel_templates.id"],
      "includes": [
        {
          "join_type": "LEFT",
          "table_name": "carousel_template_line_items",
          "join_condition": "carousel_templates.id = carousel_template_line_items.carousel_template_id"
        }
      ]
    },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "carousel_templates.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "carousel_templates.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "carousel_templates.name",
        "display_name": "name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "carousel_templates.description",
        "display_name": "description",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "carousel_templates.slug",
        "display_name": "slug",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "COUNT(carousel_template_line_items.id)",
        "display_name": "columns_count",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "carousel_templates.status_id",
        "display_name": "status",
        "order_no": 5,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Add Edit Carousel Template Page",
    "entity_name": "common_form_carousel_template",
    "entity_type": "carousel_module",
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Recent Users",
    "entity_name": "app_recent_users",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"panel\"><div class=\"table-responsive\"><table><thead><tr><th>{{hbp_translate \"form_label_email\"}}</th><th>{{hbp_translate \"profile_form_first_name\"}}</th><th>{{hbp_translate \"profile_form_last_name\"}}</th><th>{{hbp_translate \"role\"}}</th><th class=\"text-center ltr:rounded-r-md rtl:rounded-l-md\">{{hbp_translate \"table_column_status\"}}</th></tr></thead><tbody>{{#each result_data}}<tr><td class=\"font-semibold\">{{email}}</td><td class=\"whitespace-nowrap\"><a href=\"javascript:void(0);\" data-uuid=\"{{uuid}}\" data-entity=\"user_form\" data-popup=\"popup_edit\" class=\"open-master-list-btn bg-transparent hover:bg-blue-500 text-blue-700 font-semibold hover:text-white py-2 px-4 border border-blue-500 hover:border-transparent rounded\">{{first_name}}</a></td><td class=\"whitespace-nowrap\">{{last_name}}</td><td>{{roles}}</td><td class=\"text-center\">{{status_name}}</td></tr>{{/each}}</tbody></table></div></div>",
    "query_information": {
      "group_by": [
        "user_details.code",
        "user_details.first_name",
        "user_details.last_name",
        "users.id",
        "users.email",
        "statuses.name"
      ],
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "user_details",
          "join_condition": "user_details.user_id = users.id"
        },
        {
          "join_type": "INNER",
          "table_name": "user_roles",
          "join_condition": "user_roles.user_id = users.id"
        },
        {
          "join_type": "INNER",
          "table_name": "roles",
          "join_condition": "roles.id = user_roles.role_id"
        },
        {
          "join_type": "INNER",
          "table_name": "statuses",
          "join_condition": "users.status_id = statuses.id"
        }
      ],
      "company_id": 1,
      "search_all": [
        { "value": "3", "operator": "!=", "column_name": "users.status_id" }
      ],
      "limit_range": 10,
      "print_query": false,
      "start_index": 0,
      "sort_columns": [["users.id", "desc"]],
      "primary_table": "users",
      "select_columns": [
        ["users.created_at", "created_at"],
        ["user_details.code", "code"],
        ["user_details.first_name", "first_name"],
        ["user_details.last_name", "last_name"],
        ["users.email", "email"],
        ["STRING_AGG(roles.name, ', ')", "roles"],
        ["statuses.name", "status_name"]
      ]
    }
  },
  {
    "name": "Recent Roles",
    "entity_name": "app_recent_roles",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"panel\"><div class=\"table-responsive\"><table><thead><tr><th>{{hbp_translate \"form_label_name\"}}</th><th>{{hbp_translate \"form_label_description\"}}</th><th>{{hbp_translate \"created_at\"}}</th><th class=\"text-center ltr:rounded-r-md rtl:rounded-l-md\">{{hbp_translate \"form_label_status\"}}</th></tr></thead><tbody>{{#each result_data}}<tr><td class=\"font-semibold\">{{name}}</td><td class=\"whitespace-nowrap\">{{description}}</td><td class=\"whitespace-nowrap\">{{created_at}}</td><td class=\"text-center\">{{status_name}}</td></tr>{{/each}}</tbody></table></div></div>",
    "query_information": {
      "group_by": [
        "roles.id",
        "roles.created_at",
        "roles.name",
        "roles.description",
        "statuses.name"
      ],
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "statuses",
          "join_condition": "roles.status_id = statuses.id"
        }
      ],
      "company_id": 1,
      "search_all": [
        { "value": "3", "operator": "!=", "column_name": "roles.status_id" }
      ],
      "limit_range": 10,
      "print_query": false,
      "start_index": 0,
      "sort_columns": [["roles.id", "desc"]],
      "primary_table": "roles",
      "select_columns": [
        ["roles.created_at", "created_at"],
        ["roles.name", "name"],
        ["roles.description", "description"],
        ["statuses.name", "status_name"]
      ]
    }
  },
  {
    "name": "Recent App Error Logs",
    "entity_name": "app_recent_request_logs",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"panel\"><div class=\"table-responsive\"><table><thead><tr><th>{{hbp_translate \"method\"}}</th><th>{{hbp_translate \"url\"}}</th><th>{{hbp_translate \"ip_address\"}}</th><th>{{hbp_translate \"device\"}}</th><th class=\"text-center ltr:rounded-r-md rtl:rounded-l-md\">{{hbp_translate \"status\"}}</th></tr></thead><tbody>{{#each result_data}}<tr><td class=\"font-semibold\">{{req_method}}</td><td class=\"whitespace-nowrap\">{{req_url}}</td><td class=\"whitespace-nowrap\">{{req_ip}}</td><td>{{req_device}}</td><td class=\"text-center\">{{status_name}}</td></tr>{{/each}}</tbody></table></div></div>",
    "query_information": {
      "group_by": [
        "request_logs.id",
        "request_logs.req_method",
        "request_logs.req_url",
        "request_logs.req_ip",
        "request_logs.req_device",
        "statuses.name"
      ],
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "statuses",
          "join_condition": "request_logs.status_id = statuses.id"
        }
      ],
      "company_id": 1,
      "search_all": [
        {
          "value": "3",
          "operator": "!=",
          "column_name": "request_logs.status_id"
        }
      ],
      "limit_range": 10,
      "print_query": false,
      "start_index": 0,
      "sort_columns": [["request_logs.id", "desc"]],
      "primary_table": "request_logs",
      "select_columns": [
        ["request_logs.req_method", "req_method"],
        ["request_logs.req_url", "req_url"],
        ["request_logs.req_ip", "req_ip"],
        ["request_logs.req_device", "req_device"],
        ["statuses.name", "status_name"]
      ]
    }
  },
  {
    "name": "Whatsapp Template Details",
    "entity_name": "details_whatsapp_template",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6 p-4\"><div class=\"flex flex-col\"><label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"form_label_name\"}}:</label><div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.name}}</div></div><div class=\"flex flex-col\"><label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"parameter_format\"}}:</label><div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.parameter_format}}</div></div><div class=\"flex flex-col\"><label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"config_table_field_category\"}}:</label><div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.category}}</div></div><div class=\"flex flex-col\"><label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"components\"}}:</label><div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.components}}</div></div></div>",
    "query_information": {
      "group_by": [
        "notification_templates.id",
        "notification_templates.name",
        "notification_templates.parameter_format",
        "notification_templates.category",
        "notification_templates.components"
      ],
      "company_id": 1,
      "search_all": [
        {
          "value": "$unique_id",
          "operator": "=",
          "column_name": "notification_templates.uuid"
        },
        {
          "value": "3",
          "operator": "!=",
          "column_name": "notification_templates.status_id"
        }
      ],
      "limit_range": 1,
      "print_query": false,
      "start_index": 0,
      "sort_columns": [["notification_templates.id", "desc"]],
      "primary_table": "notification_templates",
      "select_columns": [
        ["notification_templates.name", "name"],
        ["jsonb_pretty(notification_templates.components)", "components"],
        ["notification_templates.parameter_format", "parameter_format"],
        ["notification_templates.category", "category"]
      ]
    }
  },
  {
    "name": "User Details",
    "entity_name": "child_details_user",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "users",
    "associated_tables": [
      { "table": "user_details", "where_clause": "user_id = $1" },
      { "table": "user_roles", "where_clause": "user_id = $1" },
      { "table": "user_permissions", "where_clause": "user_id = $1" },
      {
        "table": "audit_logs",
        "where_clause": "user_id = $1 AND status_id != 3"
      },
      {
        "table": "request_logs",
        "where_clause": "user_id = $1 AND status_id != 3"
      },
      { "table": "otps", "where_clause": "user_id = $1" },
      {
        "table": "notification_process_jobs",
        "where_clause": "user_id = $1 AND status_id != 3"
      }
    ],
    "query_information": {
      "sort_columns": [["users.id", "desc"]],
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "user_details",
          "join_condition": "user_details.user_id = users.id"
        },
        {
          "table_name": "user_roles",
          "join_type": "LEFT",
          "join_condition": "users.id = user_roles.user_id"
        },
        {
          "table_name": "roles",
          "join_type": "LEFT",
          "join_condition": "roles.id = user_roles.role_id"
        }
      ],
      "group_by": [
        "users.id",
        "users.uuid",
        "user_details.code",
        "last_name",
        "first_name",
        "email",
        "users.status_id"
      ],
      "search_all": [
        { "value": "$unique_id", "operator": "=", "column_name": "users.uuid" },
        { "column_name": "users.status_id", "value": 3, "operator": "!=" }
      ],
      "attached_policies": ["user_filer1", "user_filer2"]
    },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "users.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "users.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "user_details.code",
        "display_name": "code",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "concat(user_details.first_name, ' ', user_details.last_name)",
        "display_name": "name",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1,
        "link_type": "url",
        "link_action": "/#/roles",
        "link_mode": "none"
      },
      {
        "master_grid_id": 0,
        "field_name": "users.email",
        "display_name": "email",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1,
        "link_type": "component",
        "link_action": "user_details_page",
        "link_mode": "popup_details"
      },
      {
        "master_grid_id": 0,
        "field_name": "STRING_AGG(roles.name, ', ')",
        "display_name": "user_roles",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1,
        "link_type": "component",
        "link_action": "user_form",
        "link_mode": "popup_edit"
      },
      {
        "master_grid_id": 0,
        "field_name": "users.status_id",
        "display_name": "status",
        "order_no": 5,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "CASE  WHEN users.password IS NULL OR users.password = '' THEN false  ELSE true  END",
        "display_name": "password",
        "order_no": 6,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "users.is_drafted",
        "display_name": "is_drafted",
        "order_no": 7,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "users.process_status",
        "display_name": "process_status",
        "order_no": 7,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "users.reason",
        "display_name": "reason",
        "order_no": 7,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 3,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Theme",
    "entity_name": "theme",
    "entity_type": "grid_builder_module",
    "primary_table": "themes",
    "query_information": {},
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "themes.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "themes.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "themes.name",
        "display_name": "name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "themes.status_id",
        "display_name": "status",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Theme Details Page",
    "entity_name": "theme_details",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-3 gap-6 p-4\"><div class=\"flex flex-col\"><label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"form_label_name\"}}:</label><div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.name}}</div></div><div class=\"flex flex-col\"><label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"form_label_description\"}}:</label><div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.description}}</div></div><div class=\"flex flex-col\"><label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"reference_images\"}}:</label><div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.reference_images}}</div></div><div class=\"col-span-full\"><h3 class=\"text-sm font-semibold text-gray-700 mt-4 mb-2\">{{hbp_translate \"theme_attributes\"}}</h3><div class=\"overflow-x-auto\"><table class=\"min-w-full table-auto border-collapse bg-white shadow-md rounded-lg\"><thead class=\"bg-gray-200\"><tr><th class=\"px-2 py-2 text-left text-xs font-medium text-gray-700\"><strong>{{hbp_translate \"attribute\"}}</strong></th><th class=\"px-2 py-2 text-left text-xs font-medium text-gray-700\"><strong>{{hbp_translate \"value\"}}</strong></th><th class=\"px-2 py-2 text-left text-xs font-medium text-gray-700\"><strong>{{hbp_translate \"form_label_description\"}}</strong></th></tr></thead><tbody>{{#if result_data.theme_line_items}}{{#each result_data.theme_line_items}}<tr class=\"border-b\"><td class=\"px-2 py-2 text-xs text-gray-600\">{{attribute}}</td><td class=\"px-2 py-2 text-xs text-gray-600\">{{value}}</td><td class=\"px-2 py-2 text-xs text-gray-600\">{{description}}</td></tr>{{/each}}{{/if}}</tbody></table></div></div></div>",
    "query_information": {
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "theme_line_items",
          "join_condition": "themes.id = theme_line_items.theme_id"
        }
      ],
      "company_id": 1,
      "search_all": [
        {
          "value": "$unique_id",
          "operator": "=",
          "column_name": "themes.uuid"
        },
        { "value": "3", "operator": "!=", "column_name": "themes.status_id" }
      ],
      "limit_range": 1,
      "print_query": false,
      "start_index": 0,
      "sort_columns": [["themes.id", "desc"]],
      "primary_table": "themes",
      "select_columns": [
        ["themes.name", "name"],
        ["themes.description", "description"],
        ["themes.reference_images", "reference_images"],
        [
          "COALESCE((SELECT JSON_AGG(JSON_BUILD_OBJECT( 'attribute', ta.attribute , 'value' , ta.value , 'description', ta.description)) FROM theme_line_items AS ta WHERE ta.theme_id = themes.id), '[]')",
          "theme_line_items"
        ]
      ]
    }
  },
  {
    "name": "Theme Attributes",
    "entity_name": "theme_attributes",
    "entity_type": "grid_builder_module",
    "primary_table": "theme_attributes",
    "query_information": {},
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "theme_attributes.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "theme_attributes.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "theme_attributes.attribute",
        "display_name": "attribute",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "theme_attributes.value",
        "display_name": "value",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Theme Attributes Details Page",
    "entity_name": "theme_attributes_details",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6 p-4\"><div class=\"flex flex-col\"><label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"attribute_name\"}}:</label><div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.attribute}}</div></div><div class=\"flex flex-col\"><label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"form_label_status\"}}:</label><div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.status_name}}</div></div><div class=\"flex flex-col \"><label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"value\"}}:</label><div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.value}}</div></div><div class=\"flex flex-col \"><label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"form_label_description\"}}:</label><div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.description}}</div></div></div>",
    "query_information": {
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "statuses",
          "join_condition": "theme_attributes.status_id = statuses.id"
        }
      ],
      "company_id": 1,
      "search_all": [
        {
          "value": "$unique_id",
          "operator": "=",
          "column_name": "theme_attributes.uuid"
        },
        {
          "value": "3",
          "operator": "!=",
          "column_name": "theme_attributes.status_id"
        }
      ],
      "limit_range": 1,
      "print_query": false,
      "start_index": 0,
      "sort_columns": [["theme_attributes.id", "desc"]],
      "primary_table": "theme_attributes",
      "select_columns": [
        ["theme_attributes.attribute", "attribute"],
        ["statuses.name", "status_name"],
        ["theme_attributes.value", "value"],
        ["theme_attributes.description", "description"]
      ]
    }
  },
  {
    "name": "barcode_templates_grid",
    "entity_name": "barcode_templates",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "barcode_templates",
    "query_information": null,
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "barcode_templates.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "barcode_templates.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "barcode_templates.name",
        "display_name": "name",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "barcode_templates.prefix",
        "display_name": "prefix",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "barcode_templates.label_start",
        "display_name": "label_start",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "barcode_templates.label_end",
        "display_name": "label_end",
        "order_no": 5,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "barcode_templates.status_id",
        "display_name": "status",
        "order_no": 6,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "barcode_print",
    "entity_name": "barcode_templates_print_form",
    "entity_type": "barcode_print_module",
    "static_page_content": null,
    "primary_table": "barcode_templates",
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "User Login History",
    "entity_name": "user_login_histories_grid",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "user_login_histories",
    "query_information": {
      "search_all": [
        {
          "value": "$gparam_1",
          "operator": "=",
          "column_name": "user_login_histories.user_id"
        }
      ],
      "sort_columns": [["user_login_histories.id", "desc"]]
    },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "order_no": 1,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "user_login_histories.id",
        "clause_type": "where",
        "is_sortable": false,
        "link_action": "",
        "display_name": "id",
        "field_type_id": 1,
        "is_searchable": false,
        "is_grid_column": false
      },
      {
        "master_grid_id": 0,
        "order_no": 3,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "user_login_histories.login_time",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "login_time",
        "field_type_id": 7,
        "is_searchable": true,
        "is_grid_column": true
      },
      {
        "master_grid_id": 0,
        "order_no": 4,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "user_login_histories.logout_time",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "logout_time",
        "field_type_id": 7,
        "is_searchable": true,
        "is_grid_column": true
      },
      {
        "master_grid_id": 0,
        "order_no": 5,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "user_login_histories.ip_address",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "ip_address",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true
      },
      {
        "master_grid_id": 0,
        "order_no": 6,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "user_login_histories.user_agent",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "browser",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true
      },
      {
        "master_grid_id": 0,
        "order_no": 7,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "user_login_histories.login_status",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "login_status",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true
      },
      {
        "master_grid_id": 0,
        "order_no": 8,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "user_login_histories.failure_reason",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "failure_reason",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true
      }
    ]
  },
  {
    "name": "Grid Column Re-Rendering",
    "entity_name": "grid_column_rerendering",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "carousel_template_line_items",
    "query_information": {
      "sort_columns": [["carousel_template_line_items.created_at", "desc"]],
      "includes": [
        {
          "join_type": "LEFT",
          "table_name": "carousel_templates ct",
          "join_condition": "ct.company_id = carousel_template_line_items.company_id AND ct.id = carousel_template_line_items.carousel_template_id"
        },
        {
          "join_type": "LEFT",
          "table_name": "users u",
          "join_condition": "u.company_id = ct.company_id AND u.id = ct.created_by"
        },
        {
          "join_type": "LEFT",
          "table_name": "user_details ud",
          "join_condition": "ud.company_id = u.company_id AND ud.user_id = u.id"
        }
      ]
    },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "carousel_template_line_items.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "carousel_template_line_items.id",
        "display_name": "item_id",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1,
        "field_html_content": "<div class=\"min-w-[300px]\">\n  <div class=\"text-sm font-semibold text-gray-900 line-clamp-1\">\n    {{ row_object.item_name }} • #{{ row_object.item_id }}\n  </div>\n</div>"
      },
      {
        "master_grid_id": 0,
        "field_name": "ct.slug",
        "display_name": "template_slug",
        "order_no": 12,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "ct.name",
        "display_name": "template_name",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "carousel_template_line_items.name",
        "display_name": "item_name",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "COALESCE(carousel_template_line_items.image_url, '')",
        "display_name": "image_url",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1,
        "field_html_content": "<div class=\"w-15 h-12 overflow-hidden rounded-md ring-1 ring-gray-200 bg-gray-50\">\n  <img src=\"{{row_object.image_url}}\" class=\"w-full h-full object-cover\"/>\n</div>"
      },
      {
        "master_grid_id": 0,
        "field_name": "COALESCE(carousel_template_line_items.video_url, '')",
        "display_name": "carousel_template_video",
        "order_no": 5,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1,
        "field_html_content": "\n<video\n  src=\"{{row_object.carousel_template_video}}\"\n  class=\"w-48 h-32 rounded-md border border-gray-200 object-cover\"\n  controls\n  preload=\"metadata\"\n  playsinline\n  (mouseenter)=\"onVideoHover($event)\"\n  (mouseleave)=\"onVideoLeave($event)\"\n></video>"
      },
      {
        "master_grid_id": 0,
        "field_name": "COALESCE(carousel_template_line_items.clickable_link, '')",
        "display_name": "link_url",
        "order_no": 6,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1,
        "field_html_content": "<a href=\"{{row_object.link_url}}\" target=\"_blank\">\n<span class=\"px-2 py-0.5 text-xs rounded-full border inline-flex items-center gap-1 bg-emerald-50 text-emerald-700 border-emerald-200\">\n  <svg class=\"w-3.5 h-3.5\" viewBox=\"0 0 20 20\"><path d=\"M3 5h9v10H3zM12 8l5-3v10l-5-3\"/></svg>\n  {{ row_object.link_url ? 'Video URL' : 'Video URL' }}\n</span>\n</a>"
      },
      {
        "master_grid_id": 0,
        "field_name": "carousel_template_line_items.order_no",
        "display_name": "order_no",
        "order_no": 7,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1,
        "field_html_content": "<span class=\"font-mono text-xs px-2 py-0.5 rounded border bg-slate-50 text-slate-700 border-slate-200\">\n  {{ row_object.order_no }}\n</span>"
      },
      {
        "master_grid_id": 0,
        "field_name": "carousel_template_line_items.status_id",
        "display_name": "status_id",
        "order_no": 8,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1,
        "field_html_content": "<span class=\"px-2 py-0.5 text-xs rounded-full border {{ row_object.status_id == 1 ? 'bg-red-50 text-red-700 border-red-200' : 'bg-blue-50 text-blue-700 border-blue-200' }}\"> {{ row_object.status_id == 1 ? 'Active' : 'In-Active' }}  </span>"
      },
      {
        "master_grid_id": 0,
        "field_name": "carousel_template_line_items.created_at",
        "display_name": "created_at",
        "order_no": 9,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1,
        "field_html_content": "<div class=\"flex flex-col\">\n  <span class=\"font-mono text-xs text-gray-800\">{{ row_object.created_at }}</span>\n  <span class=\"text-[11px] text-gray-500\">\n    5h ago\n  </span>\n</div>"
      },
      {
        "master_grid_id": 0,
        "field_name": "u.id",
        "display_name": "creator_id",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1,
        "field_html_content": "<div class=\"w-40\">\n  <div class=\"h-2 rounded bg-gray-200 overflow-hidden\">\n    <div\n      class=\"\n        h-2 rounded\n        bg-[length:12px_12px]\n        [background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.25)_0_6px,transparent_6px_12px)]\n        bg-red-500\n      \"\n      style=\"width: 70%;\"\n    ></div>\n  </div>\n  <div class=\"text-[11px] text-gray-600 mt-1 font-mono\">70%</div>\n</div>"
      },
      {
        "master_grid_id": 0,
        "field_name": "TRIM(CONCAT_WS(' ', ud.first_name, ud.last_name))",
        "display_name": "creator_name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1,
        "field_html_content": "<div class=\"flex items-center gap-2\">\n  <img  src=\"https://opensource.techcedence.net/lcp-api/{{row_object.creator_avatar}}\"  class=\"w-8 h-8 rounded-full object-cover ring-2 ring-white shadow\"/>\n    {{ row_object.creator_name  }}\n\n</div>",
        "link_mode": "none",
        "link_type": "popup_grid",
        "link_action": "grid_column_rerendering"
      },
      {
        "master_grid_id": 0,
        "field_name": "COALESCE(ud.profile_pic, '')",
        "display_name": "creator_avatar",
        "order_no": 12,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1,
        "field_html_content": "<div class=\"flex items-center gap-2\">\n  <img  src=\"https://opensource.techcedence.net/lcp-api/{{row_object.creator_avatar}}\"  class=\"w-8 h-8 rounded-full object-cover ring-2 ring-white shadow\"/>\n    {{ row_object.creator_name  }}\n\n</div>"
      },
      {
        "master_grid_id": 0,
        "field_name": "COUNT(*) OVER (PARTITION BY ct.id)",
        "display_name": "items_in_template",
        "order_no": 13,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1,
        "field_html_content": "<div class=\"flex items-center gap-2\">\n  <img  src=\"https://opensource.techcedence.net/lcp-api/{{row_object.creator_avatar}}\"  class=\"w-8 h-8 rounded-full object-cover ring-2 ring-white shadow\"/>\n    {{ row_object.creator_name  }}\n\n</div>"
      }
    ]
  },
  {
    "name": "Delete Cron Setup",
    "entity_name": "delete_cron_setting",
    "entity_type": "job_builder_module",
    "static_page_content": null,
    "query_information": {
      "table": ["scheduled_jobs"],
      "action": ["delete"],
      "conditions": { "table1": [{ "id": "$unique_id" }] },
      "table_mapping": ["table1"]
    }
  },
  {
    "name": "Background Process Logs",
    "entity_name": "child_process_log",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "child_process_logs",
    "associated_tables": [],
    "query_information": {
      "search_all": [
        {
          "value": "$gparam_1",
          "operator": "=",
          "column_name": "child_processes.uuid"
        }
      ],
      "group_by": [
        "child_processes.name",
        "child_processes.slug",
        "child_processes.description",
        "child_processes.command",
        "statuses.name",
        "child_process_logs.id",
        "child_process_logs.process_status",
        "child_process_logs.output",
        "child_process_logs.downloadables",
        "users.email",
        "s1.name",
        "child_processes.status_id"
      ],
      "sort_columns": [["child_process_logs.id", "desc"]],
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "statuses",
          "join_condition": "child_process_logs.status_id = statuses.id"
        },
        {
          "join_type": "LEFT",
          "table_name": "child_processes",
          "join_condition": "child_processes.id = child_process_logs.child_process_id AND child_processes.status_id != 3"
        },
        {
          "join_type": "LEFT",
          "table_name": "statuses s1",
          "join_condition": "child_processes.status_id = s1.id"
        },
        {
          "join_type": "LEFT",
          "table_name": "users",
          "join_condition": "child_process_logs.initiated_by = users.id"
        }
      ]
    },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "child_process_logs.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "child_process_logs.uuid",
        "display_name": "uuid",
        "order_no": 1,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "child_process_logs.downloadables",
        "display_name": "downloadables",
        "order_no": 1.2,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "child_processes.name",
        "display_name": "process_name",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "child_processes.slug",
        "display_name": "process_slug",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "child_process_logs.output",
        "display_name": "output",
        "order_no": 5,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "users.email",
        "display_name": "initiated_by",
        "order_no": 20,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "child_process_logs.process_status",
        "display_name": "process_completion_status",
        "order_no": 21,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "child_process_logs.created_at",
        "display_name": "created_at",
        "order_no": 22,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 7,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Record Export Background Process",
    "entity_name": "record_export_child_process_log",
    "entity_type": "common_permission_module",
    "is_admin_module": true,
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Scheduled Job Logs Grid",
    "entity_name": "cron_logs",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "scheduled_job_logs",
    "company_id": 1,
    "associated_tables": [],
    "query_information": {
      "sort_columns": [["scheduled_job_logs.id", "desc"]],
      "group_by": [
        "scheduled_job_logs.id",
        "scheduled_job_logs.uuid",
        "scheduled_jobs.cron_url"
      ],
      "includes": [
        {
          "join_type": "LEFT",
          "table_name": "scheduled_jobs",
          "join_condition": "scheduled_jobs.id = scheduled_job_logs.scheduled_job_id"
        }
      ],
      "search_all": [
        {
          "value": "$unique_id",
          "operator": "=",
          "column_name": "scheduled_jobs.uuid"
        }
      ],
      "attached_policies": ["filterscheduledjoblogsusingunique_id"]
    },
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "scheduled_job_logs.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "scheduled_job_logs.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "scheduled_jobs.cron_url",
        "display_name": "cron_url",
        "order_no": 0.1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "scheduled_job_logs.executed_statement",
        "display_name": "executed_statement",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "scheduled_job_logs.schedule_status",
        "display_name": "schedule_status",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "scheduled_job_logs.response",
        "display_name": "scheduled_job_logs",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "scheduled_job_logs.created_at",
        "display_name": "created_at",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "scheduled_job_logs.downloadables",
        "display_name": "downloadables",
        "order_no": 5,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 3,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Record Export Cron Setting Process",
    "entity_name": "record_export_cron_logs",
    "entity_type": "common_permission_module",
    "is_admin_module": true,
    "static_page_content": null,
    "primary_table": null,
    "query_information": null,
    "company_id": 1,
    "lineitems": []
  },
  {
    "name": "Users (PDF / Approval / Policies)",
    "entity_name": "users_list",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "users",
    "associated_tables": [
      {
        "table": "user_details",
        "where_clause": "user_id = $1"
      },
      {
        "table": "user_roles",
        "where_clause": "user_id = $1"
      },
      {
        "table": "user_permissions",
        "where_clause": "user_id = $1"
      },
      {
        "table": "audit_logs",
        "where_clause": "user_id = $1 AND status_id != 3"
      },
      {
        "table": "request_logs",
        "where_clause": "user_id = $1 AND status_id != 3"
      },
      {
        "table": "otps",
        "where_clause": "user_id = $1"
      },
      {
        "table": "notification_process_jobs",
        "where_clause": "user_id = $1 AND status_id != 3"
      }
    ],
    "query_information": {
      "group_by": [
        "users.id",
        "users.uuid",
        "user_details.code",
        "user_details.gender",
        "user_details.phone_number",
        "user_details.country_code",
        "last_name",
        "first_name",
        "email",
        "users.status_id"
      ],
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "user_details",
          "join_condition": "user_details.user_id = users.id"
        },
        {
          "join_type": "LEFT",
          "table_name": "user_roles",
          "join_condition": "users.id = user_roles.user_id"
        },
        {
          "join_type": "LEFT",
          "table_name": "roles",
          "join_condition": "roles.id = user_roles.role_id"
        }
      ],
      "search_all": [
        {
          "value": 3,
          "operator": "!=",
          "column_name": "users.status_id"
        },
        {
          "value": ["super_admin", "company_admin"],
          "operator": "NOT IN",
          "column_name": "users.role"
        }
      ],
      "sort_columns": [["users.id", "desc"]],
      "attached_policies": ["user_filer1", "user_filer2"]
    },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "users.id",
        "display_name": "gparam_1",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "users.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "users.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "order_no": 1,
        "link_mode": "none",
        "link_type": "popup_grid",
        "field_name": "user_details.code",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "user_login_histories_grid",
        "display_name": "code",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true
      },
      {
        "master_grid_id": 0,
        "field_name": "concat(user_details.first_name, ' ', user_details.last_name)",
        "display_name": "name",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1,
        "link_type": "url",
        "link_action": "/#/roles",
        "link_mode": "none"
      },
      {
        "master_grid_id": 0,
        "field_name": "users.email",
        "display_name": "email",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1,
        "link_type": "component",
        "link_action": "user_details_page",
        "link_mode": "popup_details"
      },
      {
        "master_grid_id": 0,
        "field_name": "STRING_AGG(roles.name, ', ')",
        "display_name": "user_roles",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1,
        "link_type": "component",
        "link_action": "user_form",
        "link_mode": "popup_edit"
      },
      {
        "master_grid_id": 0,
        "field_name": "user_details.gender::text",
        "display_name": "gender",
        "order_no": 4.2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "users.status_id",
        "display_name": "status",
        "order_no": 6,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "CASE  WHEN users.password IS NULL OR users.password = '' THEN false  ELSE true  END",
        "display_name": "password",
        "order_no": 6,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "CASE      WHEN users.is_drafted IS TRUE THEN 'True'     WHEN users.is_drafted IS FALSE THEN 'False'     ELSE 'False'   END",
        "display_name": "is_drafted",
        "order_no": 7,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "users.process_status",
        "display_name": "process_status",
        "order_no": 7,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "users.reason",
        "display_name": "reason",
        "order_no": 7,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "concat(user_details.country_code, ' ', user_details.phone_number)",
        "display_name": "phone_number",
        "order_no": 5,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 3,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Users Activity Insights Grid",
    "entity_name": "users_activity_insights",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "header_entity_id": "users_activity_header",
    "footer_entity_id": "users_activity_footer",
    "primary_table": "users",
    "associated_tables": [
      {
        "table": "user_details",
        "where_clause": "user_id = $1"
      },
      {
        "table": "user_roles",
        "where_clause": "user_id = $1"
      },
      {
        "table": "request_logs",
        "where_clause": "user_id = $1 AND status_id != 3"
      },
      {
        "table": "audit_logs",
        "where_clause": "user_id = $1 AND status_id != 3"
      },
      {
        "table": "notification_process_jobs",
        "where_clause": "user_id = $1 AND status_id != 3"
      }
    ],
    "query_information": {
      "group_by": [
        "users.id",
        "users.uuid",
        "users.email",
        "users.role",
        "users.process_status",
        "user_details.code",
        "user_details.first_name",
        "user_details.last_name",
        "user_details.gender",
        "user_details.country_code",
        "user_details.phone_number",
        "statuses.name"
      ],
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "user_details",
          "join_condition": "user_details.user_id = users.id"
        },
        {
          "join_type": "LEFT",
          "table_name": "user_roles",
          "join_condition": "users.id = user_roles.user_id"
        },
        {
          "join_type": "LEFT",
          "table_name": "roles",
          "join_condition": "roles.id = user_roles.role_id"
        },
        {
          "join_type": "LEFT",
          "table_name": "request_logs",
          "join_condition": "request_logs.user_id = users.id AND request_logs.status_id != 3"
        },
        {
          "join_type": "LEFT",
          "table_name": "audit_logs",
          "join_condition": "audit_logs.user_id = users.id AND audit_logs.status_id != 3"
        },
        {
          "join_type": "LEFT",
          "table_name": "notification_process_jobs",
          "join_condition": "notification_process_jobs.user_id = users.id AND notification_process_jobs.status_id != 3"
        },
        {
          "join_type": "LEFT",
          "table_name": "statuses",
          "join_condition": "statuses.id = users.status_id"
        }
      ],
      "search_all": [
        {
          "value": 3,
          "operator": "!=",
          "column_name": "users.status_id"
        },
        {
          "value": ["super_admin", "company_admin"],
          "operator": "NOT IN",
          "column_name": "users.role"
        }
      ],
      "sort_columns": [["users.id", "desc"]]
    },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "users.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "users.uuid",
        "display_name": "uuid",
        "order_no": 0.1,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "user_details.code",
        "display_name": "code",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "enum_values": {
          "mode": "direct",
          "type": "autocomplete",
          "optionKey": "code",
          "optionValue": "code",
          "value": {
            "company_id": 1,
            "primary_table": "users",
            "sort_columns": [["user_details.code", "asc"]],
            "search_all": [
              {
                "column_name": "users.status_id",
                "value": 3,
                "operator": "!="
              },
              {
                "column_name": "users.role",
                "value": ["super_admin", "company_admin"],
                "operator": "NOT IN"
              },
              {
                "column_name": "user_details.code",
                "value": "%searchTerm%",
                "operator": "LIKE"
              }
            ],
            "select_columns": [["user_details.code"]],
            "includes": [
              {
                "table_name": "user_details",
                "join_type": "INNER",
                "join_condition": "users.id = user_details.user_id"
              }
            ]
          }
        },
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "concat(user_details.first_name, ' ', user_details.last_name)",
        "display_name": "name",
        "link_mode": "none",
        "link_type": "child_grid",
        "link_action": "child_details_users_activity_insights",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "users.email",
        "display_name": "email",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "user_details.gender::text",
        "display_name": "gender",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "enum_values": {
          "mode": "from_config",
          "config_key": "dropdown_gender"
        },
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "concat(user_details.country_code, ' ', user_details.phone_number)",
        "display_name": "phone_number",
        "order_no": 5,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "STRING_AGG(DISTINCT roles.name, ', ')",
        "display_name": "user_roles",
        "order_no": 6,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "statuses.name",
        "display_name": "status",
        "order_no": 7,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "enum_values": {
          "mode": "from_config",
          "config_key": "dropdown_status"
        },
        "field_type_id": 3,
        "company_id": 1
      },

      {
        "master_grid_id": 0,
        "field_name": "users.process_status::text",
        "display_name": "process_status",
        "order_no": 9,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "enum_values": {
          "mode": "from_config",
          "config_key": "dropdown_process_status"
        },
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "COALESCE(MAX(request_logs.created_at)::text, '-')",
        "display_name": "latest_request_at",
        "order_no": 10,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 7,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "COUNT(DISTINCT request_logs.id)",
        "display_name": "request_count",
        "order_no": 11,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "COUNT(DISTINCT audit_logs.id)",
        "display_name": "audit_count",
        "order_no": 12,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "COUNT(DISTINCT notification_process_jobs.id)",
        "display_name": "notification_jobs_count",
        "order_no": 13,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "users.id",
        "display_name": "gparam_1",
        "order_no": 14,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "User Details Example Page",
    "entity_name": "user_example_details_page",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6 p-4\">  <!-- User Code -->  <div class=\"flex flex-col\">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"user_code\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.code}}</div>  </div>  <!-- Firstname and Lastname -->  <div class=\"flex flex-col\">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"form_label_name\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.firstname}} {{result_data.lastname}}</div>  </div>  <!-- Email -->  <div class=\"flex flex-col\">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"email\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.email}}</div>  </div>  <!-- Roles -->  <div class=\"flex flex-col \">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"role\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.roles}}</div>  </div>  <!-- Status -->  <div class=\"flex flex-col\">    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">{{hbp_translate \"status\"}}:</label>    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.status_name}}</div>  </div></div>",
    "query_information": {
      "group_by": [
        "user_details.code",
        "user_details.first_name",
        "user_details.last_name",
        "users.id",
        "users.email",
        "statuses.name"
      ],
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "user_details",
          "join_condition": "user_details.user_id = users.id"
        },
        {
          "join_type": "INNER",
          "table_name": "user_roles",
          "join_condition": "user_roles.user_id = users.id"
        },
        {
          "join_type": "INNER",
          "table_name": "roles",
          "join_condition": "roles.id = user_roles.role_id"
        },
        {
          "join_type": "INNER",
          "table_name": "statuses",
          "join_condition": "users.status_id = statuses.id"
        }
      ],
      "company_id": 1,
      "search_all": [
        { "value": "$unique_id", "operator": "=", "column_name": "users.uuid" },
        { "value": "3", "operator": "!=", "column_name": "users.status_id" }
      ],
      "sort_columns": [["users.id", "desc"]],
      "primary_table": "users",
      "limit_range": 1,
      "print_query": false,
      "start_index": 0,
      "select_columns": [
        ["user_details.code", "code"],
        ["user_details.first_name", "firstname"],
        ["user_details.last_name", "lastname"],
        ["users.email", "email"],
        ["STRING_AGG(roles.name, ', ')", "roles"],
        ["statuses.name", "status_name"]
      ]
    }
  },
  {
    "name": "Notifications Process",
    "entity_name": "notification_process",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "notification_template_process",
    "query_information": {
      "sort_columns": [["notification_template_process.id", "desc"]]
    },
    "company_id": 1,
    "associated_tables": [
      [
        {
          "table": "notification_template_process_tags_mapping",
          "where_clause": "notification_template_process_id = $1"
        },
        {
          "table": "notification_templates",
          "where_clause": "notification_template_process_id = $1 AND status_id != 3"
        },
        {
          "table": "notification_template_assignments",
          "where_clause": "notification_template_process_id = $1"
        }
      ]
    ],
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.name",
        "display_name": "name",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.slug",
        "display_name": "slug",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.status_id",
        "display_name": "status",
        "order_no": 4,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "notification_template_process.notification_type",
        "display_name": "type",
        "enum_values":{
  "mode": "from_config",
  "config_key": "dropdown_notify_type"
},
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Import Job Line Items Grid",
    "entity_name": "import_job_line_items",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "import_job_line_items",
    "query_information": {
      "includes": [
        {
          "join_type": "INNER",
          "table_name": "import_jobs",
          "join_condition": "import_jobs.id = import_job_line_items.import_job_id"
        },
        {
          "join_type": "LEFT",
          "table_name": "LATERAL ( SELECT string_agg(key || ': ' || COALESCE(trim(both '\"' from value::text), 'null'), ' | ') AS columns_text FROM ( SELECT key, value FROM jsonb_each(import_job_line_items.row_object -> 'columns') WHERE key NOT IN ('data_start_row','data_end_row','data_header_row','max_data_row') ORDER BY key ) t ) cols_text",
          "join_condition": "TRUE"
        },
        {
          "join_type": "LEFT",
          "table_name": "LATERAL ( SELECT COALESCE( string_agg(err->>'message', ' | '), import_job_line_items.row_object ->> 'errorMessages' ) AS error_messages FROM jsonb_each(import_job_line_items.row_object -> 'errors') e(key, val) CROSS JOIN LATERAL jsonb_array_elements(val) err ) err_text",
          "join_condition": "TRUE"
        }
      ],
      "search_all": [
        {
          "value": "$unique_id",
          "operator": "=",
          "column_name": "import_jobs.uuid"
        }
      ],
      "print_query": true
    },
    "associated_tables": [],
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "company_id": 1,
        "order_no": 0,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "import_job_line_items.id",
        "clause_type": "where",
        "is_sortable": false,
        "link_action": "",
        "display_name": "id",
        "field_type_id": 1,
        "is_searchable": false,
        "is_grid_column": false,
        "field_html_content": null
      },
      {
        "master_grid_id": 0,
        "company_id": 1,
        "order_no": 1,
        "link_mode": "popup_details",
        "link_type": "component",
        "field_name": "UPPER(import_job_line_items.job_status)",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "popup_details_import_job_line_items",
        "display_name": "job_status",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true,
        "field_html_content": "<span style=\"color: rgb(255 255 255 / var(--tw-text-opacity, 1)) !important;\" class=\"px-2 py-0.5 text-xs rounded-full border {{ row_object.job_status == 'INVALID' ? 'btn-danger' : 'btn-success' }}\">\n  {{ row_object.job_status }}\n</span>\n"
      },
      {
        "master_grid_id": 0,
        "company_id": 1,
        "order_no": 2,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "err_text.error_messages",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "err_text",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true,
        "field_html_content": ""
      },
      {
        "master_grid_id": 0,
        "company_id": 1,
        "order_no": 3,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "cols_text.columns_text",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "cols_text",
        "field_type_id": 3,
        "is_searchable": true,
        "is_grid_column": true,
        "field_html_content": "<span class=\"truncate whitespace-nowrap max-w-150  {{ row_object.job_status == 'INVALID' ? 'bg-red-200 text-red-600' : 'text-black' }} \" title=\"{{ row_object.cols_text }}\"> {{ row_object.cols_text }} </span>"
      },
      {
        "master_grid_id": 0,
        "company_id": 1,
        "order_no": 4,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "import_job_line_items.created_at",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "created_at",
        "field_type_id": 7,
        "is_searchable": true,
        "is_grid_column": true,
        "field_html_content": null
      },
      {
        "master_grid_id": 0,
        "company_id": 1,
        "order_no": 5,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "import_job_line_items.validated_at",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "validated_at",
        "field_type_id": 7,
        "is_searchable": true,
        "is_grid_column": true,
        "field_html_content": null
      },
      {
        "master_grid_id": 0,
        "company_id": 1,
        "order_no": 6,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "import_job_line_items.processed_at",
        "clause_type": "where",
        "is_sortable": true,
        "link_action": "",
        "display_name": "processed_at",
        "field_type_id": 7,
        "is_searchable": true,
        "is_grid_column": true,
        "field_html_content": null
      },
      {
        "master_grid_id": 0,
        "company_id": 1,
        "order_no": 7,
        "link_mode": "none",
        "link_type": "none",
        "field_name": "import_job_line_items.id",
        "clause_type": "where",
        "is_sortable": false,
        "link_action": "",
        "display_name": "gparam_1",
        "field_type_id": 1,
        "is_searchable": false,
        "is_grid_column": false,
        "field_html_content": null
      }
    ]
  },
  {
    "name": "Import Job Line Items Details Page",
    "entity_name": "popup_details_import_job_line_items",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"flex flex-col gap-4 p-4\">\r\n\r\n  <!-- Job Status -->\r\n  <div class=\"flex flex-col gap-1 sm:flex-row sm:items-center sm:justify-between\">\r\n    <div class=\"pr-2 font-bold text-gray-800 dark:text-gray-200\">\r\n      Job Status\r\n    </div>\r\n    <div class=\"break-words text-gray-700 dark:text-gray-300\">\r\n      {{ result_data.job_status }}\r\n    </div>\r\n  </div>\r\n\r\n  <!-- Errors Section -->\r\n  {{#if result_data.errors}}\r\n<div class=\"mt-4 border-t pt-4\">\r\n  <div class=\"mb-2 font-semibold text-red-600\">\r\n    Validation Errors\r\n  </div>\r\n\r\n  {{#each result_data.errors as |errorList errorKey|}}\r\n    {{#each errorList}}\r\n    <div class=\"flex flex-col gap-1 sm:flex-row sm:items-center sm:justify-between text-red-600\">\r\n      <div class=\"pr-2 font-bold\">\r\n        {{ hbp_translate_dynamic errorKey }}\r\n      </div>\r\n      <div class=\"break-words\">\r\n        {{ this }}\r\n      </div>\r\n    </div>\r\n    {{/each}}\r\n  {{/each}}\r\n\r\n</div>\r\n{{/if}}\r\n\r\n\r\n  <br />\r\n\r\n\r\n<div class=\"flex flex-col gap-1 sm:flex-row sm:items-center sm:justify-between\">\r\n    <div class=\"pr-2 font-bold text-gray-800 dark:text-gray-200\">\r\n      Column\r\n    </div>\r\n    <div class=\"break-words text-gray-700 dark:text-gray-300\">\r\n      Value\r\n    </div>\r\n  </div>\r\n\r\n  <br />\r\n\r\n  <!-- Dynamic Columns -->\r\n  {{#each result_data.columns as |columnValue columnKey|}}\r\n  <div class=\"flex flex-col gap-1 border-t sm:flex-row sm:items-center sm:justify-between\">\r\n   <div class=\"pr-2 font-bold text-gray-800 dark:text-gray-200\">\r\n    {{ hbp_translate_dynamic columnKey }}\r\n  </div>\r\n  <div class=\"break-words text-gray-700 dark:text-gray-300\">\r\n    {{ columnValue }}\r\n  </div>\r\n  </div>\r\n  {{/each}}\r\n\r\n  \r\n\r\n</div>\r\n",
    "query_information": {
      "company_id": 1,
      "search_all": [
        {
          "value": "$gparam_1",
          "operator": "=",
          "column_name": "import_job_line_items.id"
        }
      ],
      "print_query": true,
      "primary_table": "import_job_line_items",
      "select_columns": [
        ["import_job_line_items.id", "id"],
        ["UPPER(import_job_line_items.job_status)", "job_status"],
        ["import_job_line_items.created_at", "created_at"],
        ["import_job_line_items.validated_at", "validated_at"],
        ["import_job_line_items.processed_at", "processed_at"],
        [
          "COALESCE( ( SELECT jsonb_object_agg(k, msgs) FROM ( SELECT e.key AS k, jsonb_agg(err->>'message') AS msgs FROM jsonb_each(import_job_line_items.row_object -> 'errors') e(key, val) CROSS JOIN LATERAL jsonb_array_elements(val) err GROUP BY e.key ) x ), jsonb_build_object('_general', import_job_line_items.row_object ->> 'errorMessages') )",
          "errors"
        ],
        [
          "jsonb_strip_nulls( ( import_job_line_items.row_object -> 'columns' ) - 'data_start_row' - 'data_end_row' - 'data_header_row' - 'max_data_row')",
          "columns"
        ]
      ]
    }
  },
  {
    "name": "Users Activity Footer",
    "entity_name": "users_activity_footer",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"grid grid-cols-4 sm:grid-cols-4 gap-3 p-2\">\r\n\r\n    <!-- Request Count -->\r\n    <div class=\"panel bg-gradient-to-r from-blue-500 to-blue-400 text-white px-3 py-2\">\r\n        <div class=\"flex justify-between items-center\">\r\n            <span class=\"text-xs font-medium\">Requests</span>\r\n            <span class=\"badge bg-white/30 text-[10px] px-1 py-0\">\r\n                {{result_data.requests_count}}\r\n            </span>\r\n        </div>\r\n    </div>\r\n\r\n    <!-- Audit Count -->\r\n    <div class=\"panel bg-gradient-to-r from-green-500 to-green-400 text-white px-3 py-2\">\r\n        <div class=\"flex justify-between items-center\">\r\n            <span class=\"text-xs font-medium\">Audits</span>\r\n            <span class=\"badge bg-white/30 text-[10px] px-1 py-0\">\r\n                {{result_data.audit_count}}\r\n            </span>\r\n        </div>\r\n    </div>\r\n\r\n    <!-- Active Users Count -->\r\n    <div  class=\"panel bg-gradient-to-r from-blue-500 to-blue-400 text-white px-3 py-2\">\r\n        <div class=\"flex justify-between items-center\">\r\n            <span class=\"text-xs font-medium\">Active Users</span>\r\n            <span class=\"badge bg-white/30 text-[10px] px-1 py-0\">\r\n                {{result_data.active_users_count}}\r\n            </span>\r\n        </div>\r\n    </div>\r\n\r\n    <!-- Inactive Users Count -->\r\n    <div class=\"panel bg-gradient-to-r from-red-500 to-red-400 text-white px-3 py-2\">\r\n        <div class=\"flex justify-between items-center\">\r\n            <span class=\"text-xs font-medium\">Inactive Users</span>\r\n            <span class=\"badge bg-white/30 text-[10px] px-1 py-0\">\r\n                {{result_data.inactive_users_count}}\r\n            </span>\r\n        </div>\r\n    </div>\r\n\r\n</div>",
    "query_information": {
      "includes": [
        {
          "join_type": "LEFT",
          "table_name": "request_logs",
          "join_condition": "request_logs.user_id = users.id AND request_logs.status_id != 3"
        },
        {
          "join_type": "LEFT",
          "table_name": "audit_logs",
          "join_condition": "audit_logs.user_id = users.id AND audit_logs.status_id != 3"
        }
      ],
      "company_id": 1,
      "search_all": [
        {
          "value": "3",
          "operator": "!=",
          "column_name": "users.status_id"
        },
        {
          "value": ["super_admin", "company_admin"],
          "operator": "NOT IN",
          "column_name": "users.role"
        }
      ],
      "print_query": false,
      "primary_table": "users",
      "select_columns": [
        [
          "COUNT(DISTINCT users.id) FILTER (WHERE users.status_id = 1)",
          "active_users_count"
        ],
        [
          "COUNT(DISTINCT users.id) FILTER (WHERE users.status_id = 2)",
          "inactive_users_count"
        ],
        ["COUNT(DISTINCT request_logs.id)", "requests_count"],
        ["COUNT(DISTINCT audit_logs.id)", "audit_count"]
      ]
    }
  },
  {
    "name": "Users Activity Header",
    "entity_name": "users_activity_header",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"grid grid-cols-2 sm:grid-cols-4 gap-3 p-3 border-t bg-gray-50\">\r\n\r\n    <!-- Active Users -->\r\n    <div class=\"flex items-center justify-between bg-white rounded-lg shadow-sm px-3 py-2 border\">\r\n        <div>\r\n            <p class=\"text-[11px] text-gray-500\">Active Users</p>\r\n            <p class=\"text-lg font-semibold text-green-600\">\r\n                {{result_data.active_users_count}}\r\n            </p>\r\n        </div>\r\n        <div class=\"w-8 h-8 flex items-center justify-center rounded-md bg-green-100 text-green-600\">\r\n            <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                <path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"/>\r\n                <circle cx=\"9\" cy=\"7\" r=\"4\"/>\r\n            </svg>\r\n        </div>\r\n    </div>\r\n\r\n    <!-- Inactive Users -->\r\n    <div class=\"flex items-center justify-between bg-white rounded-lg shadow-sm px-3 py-2 border\">\r\n        <div>\r\n            <p class=\"text-[11px] text-gray-500\">Inactive Users</p>\r\n            <p class=\"text-lg font-semibold text-red-500\">\r\n                {{result_data.inactive_users_count}}\r\n            </p>\r\n        </div>\r\n        <div class=\"w-8 h-8 flex items-center justify-center rounded-md bg-red-100 text-red-500\">\r\n            <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                <path d=\"M18 20A6 6 0 0 0 6 20\"/>\r\n                <circle cx=\"12\" cy=\"7\" r=\"4\"/>\r\n                <line x1=\"4\" y1=\"4\" x2=\"20\" y2=\"20\"/>\r\n            </svg>\r\n        </div>\r\n    </div>\r\n\r\n    <!-- Requests -->\r\n    <div class=\"flex items-center justify-between bg-white rounded-lg shadow-sm px-3 py-2 border\">\r\n        <div>\r\n            <p class=\"text-[11px] text-gray-500\">Requests</p>\r\n            <p class=\"text-lg font-semibold text-blue-600\">\r\n                {{result_data.requests_count}}\r\n            </p>\r\n        </div>\r\n        <div class=\"w-8 h-8 flex items-center justify-center rounded-md bg-blue-100 text-blue-600\">\r\n            <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                <path d=\"M9 17v-6\"/>\r\n                <path d=\"M15 17v-2\"/>\r\n                <path d=\"M12 17v-4\"/>\r\n                <path d=\"M5 21h14\"/>\r\n            </svg>\r\n        </div>\r\n    </div>\r\n\r\n    <!-- Audits -->\r\n    <div class=\"flex items-center justify-between bg-white rounded-lg shadow-sm px-3 py-2 border\">\r\n        <div>\r\n            <p class=\"text-[11px] text-gray-500\">Audits</p>\r\n            <p class=\"text-lg font-semibold text-purple-600\">\r\n                {{result_data.audit_count}}\r\n            </p>\r\n        </div>\r\n        <div class=\"w-8 h-8 flex items-center justify-center rounded-md bg-purple-100 text-purple-600\">\r\n            <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                <path d=\"M9 11l3 3L22 4\"/>\r\n                <path d=\"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11\"/>\r\n            </svg>\r\n        </div>\r\n    </div>\r\n\r\n</div>",
    "query_information": {
      "includes": [
        {
          "join_type": "LEFT",
          "table_name": "request_logs",
          "join_condition": "request_logs.user_id = users.id AND request_logs.status_id != 3"
        },
        {
          "join_type": "LEFT",
          "table_name": "audit_logs",
          "join_condition": "audit_logs.user_id = users.id AND audit_logs.status_id != 3"
        }
      ],
      "company_id": 1,
      "search_all": [
        {
          "value": "3",
          "operator": "!=",
          "column_name": "users.status_id"
        },
        {
          "value": ["super_admin", "company_admin"],
          "operator": "NOT IN",
          "column_name": "users.role"
        }
      ],
      "print_query": false,
      "primary_table": "users",
      "select_columns": [
        [
          "COUNT(DISTINCT users.id) FILTER (WHERE users.status_id = 1)",
          "active_users_count"
        ],
        [
          "COUNT(DISTINCT users.id) FILTER (WHERE users.status_id = 2)",
          "inactive_users_count"
        ],
        ["COUNT(DISTINCT request_logs.id)", "requests_count"],
        ["COUNT(DISTINCT audit_logs.id)", "audit_count"]
      ]
    }
  },
  {
    "name": "User App Error Log Grid",
    "entity_name": "child_details_users_activity_insights",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "header_entity_id": "particular_users_activity_header",
    "footer_entity_id": "particular_users_activity_footer",
    "primary_table": "request_logs",
    "query_information": {
      "company_id": 1,
      "search_all": [
        {
          "value": "$gparam_1",
          "operator": "=",
          "column_name": "request_logs.user_id"
        }
      ],
      "sort_columns": [["request_logs.id", "desc"]]
    },
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "request_logs.id",
        "display_name": "id",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "request_logs.uuid",
        "display_name": "uuid",
        "order_no": 0,
        "is_grid_column": false,
        "is_searchable": false,
        "is_sortable": false,
        "field_type_id": 1,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "request_logs.res_message",
        "display_name": "error_message",
        "order_no": 1,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "request_logs.req_url",
        "display_name": "url",
        "order_no": 2,
        "is_grid_column": true,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 3,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "request_logs.created_at",
        "display_name": "occured_datetime",
        "order_no": 3,
        "is_grid_column": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 7,
        "company_id": 1
      },
      {
        "master_grid_id": 0,
        "field_name": "to_char(request_logs.created_at,'YYYY-MM-DD HH24:MI')",
        "display_name": "occured_datetime_filter",
        "order_no": 4,
        "is_grid_column": false,
        "is_searchable": true,
        "is_sortable": true,
        "field_type_id": 7,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Particular User Activity Footer",
    "entity_name": "particular_users_activity_footer",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"grid grid-cols-4 sm:grid-cols-4 gap-3 p-2\">\r\n\r\n    <!-- Request Count -->\r\n    <div class=\"panel bg-gradient-to-r from-blue-500 to-blue-400 text-white px-3 py-2\">\r\n        <div class=\"flex justify-between items-center\">\r\n            <span class=\"text-xs font-medium\">Requests</span>\r\n            <span class=\"badge bg-white/30 text-[10px] px-1 py-0\">\r\n                {{result_data.requests_count}}\r\n            </span>\r\n        </div>\r\n    </div>\r\n\r\n    <!-- Audit Count -->\r\n    <div class=\"panel bg-gradient-to-r from-green-500 to-green-400 text-white px-3 py-2\">\r\n        <div class=\"flex justify-between items-center\">\r\n            <span class=\"text-xs font-medium\">Audits</span>\r\n            <span class=\"badge bg-white/30 text-[10px] px-1 py-0\">\r\n                {{result_data.audit_count}}\r\n            </span>\r\n        </div>\r\n    </div>\r\n\r\n    <!-- Active Users Count -->\r\n    <div  class=\"panel bg-gradient-to-r from-blue-500 to-blue-400 text-white px-3 py-2\">\r\n        <div class=\"flex justify-between items-center\">\r\n            <span class=\"text-xs font-medium\">Active Users</span>\r\n            <span class=\"badge bg-white/30 text-[10px] px-1 py-0\">\r\n                {{result_data.active_users_count}}\r\n            </span>\r\n        </div>\r\n    </div>\r\n\r\n    <!-- Inactive Users Count -->\r\n    <div class=\"panel bg-gradient-to-r from-red-500 to-red-400 text-white px-3 py-2\">\r\n        <div class=\"flex justify-between items-center\">\r\n            <span class=\"text-xs font-medium\">Inactive Users</span>\r\n            <span class=\"badge bg-white/30 text-[10px] px-1 py-0\">\r\n                {{result_data.inactive_users_count}}\r\n            </span>\r\n        </div>\r\n    </div>\r\n\r\n</div>",
    "query_information": {
      "includes": [
        {
          "join_type": "LEFT",
          "table_name": "request_logs",
          "join_condition": "request_logs.user_id = users.id AND request_logs.status_id != 3"
        },
        {
          "join_type": "LEFT",
          "table_name": "audit_logs",
          "join_condition": "audit_logs.user_id = users.id AND audit_logs.status_id != 3"
        }
      ],
      "company_id": 1,
      "search_all": [
        {
          "value": "$gparam_1",
          "operator": "=",
          "column_name": "users.id"
        },
        {
          "value": "3",
          "operator": "!=",
          "column_name": "users.status_id"
        },
        {
          "value": ["super_admin", "company_admin"],
          "operator": "NOT IN",
          "column_name": "users.role"
        }
      ],
      "print_query": false,
      "primary_table": "users",
      "select_columns": [
        [
          "COUNT(DISTINCT users.id) FILTER (WHERE users.status_id = 1)",
          "active_users_count"
        ],
        [
          "COUNT(DISTINCT users.id) FILTER (WHERE users.status_id = 2)",
          "inactive_users_count"
        ],
        ["COUNT(DISTINCT request_logs.id)", "requests_count"],
        ["COUNT(DISTINCT audit_logs.id)", "audit_count"]
      ]
    }
  },
  {
    "name": "Particular User Activity Header",
    "entity_name": "particular_users_activity_header",
    "entity_type": "static_page_builder_module",
    "static_page_content": "<div class=\"grid grid-cols-2 sm:grid-cols-4 gap-3 p-3 border-t bg-gray-50\">\r\n\r\n    <!-- Active Users -->\r\n    <div class=\"flex items-center justify-between bg-white rounded-lg shadow-sm px-3 py-2 border\">\r\n        <div>\r\n            <p class=\"text-[11px] text-gray-500\">Active Users</p>\r\n            <p class=\"text-lg font-semibold text-green-600\">\r\n                {{result_data.active_users_count}}\r\n            </p>\r\n        </div>\r\n        <div class=\"w-8 h-8 flex items-center justify-center rounded-md bg-green-100 text-green-600\">\r\n            <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                <path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"/>\r\n                <circle cx=\"9\" cy=\"7\" r=\"4\"/>\r\n            </svg>\r\n        </div>\r\n    </div>\r\n\r\n    <!-- Inactive Users -->\r\n    <div class=\"flex items-center justify-between bg-white rounded-lg shadow-sm px-3 py-2 border\">\r\n        <div>\r\n            <p class=\"text-[11px] text-gray-500\">Inactive Users</p>\r\n            <p class=\"text-lg font-semibold text-red-500\">\r\n                {{result_data.inactive_users_count}}\r\n            </p>\r\n        </div>\r\n        <div class=\"w-8 h-8 flex items-center justify-center rounded-md bg-red-100 text-red-500\">\r\n            <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                <path d=\"M18 20A6 6 0 0 0 6 20\"/>\r\n                <circle cx=\"12\" cy=\"7\" r=\"4\"/>\r\n                <line x1=\"4\" y1=\"4\" x2=\"20\" y2=\"20\"/>\r\n            </svg>\r\n        </div>\r\n    </div>\r\n\r\n    <!-- Requests -->\r\n    <div class=\"flex items-center justify-between bg-white rounded-lg shadow-sm px-3 py-2 border\">\r\n        <div>\r\n            <p class=\"text-[11px] text-gray-500\">Requests</p>\r\n            <p class=\"text-lg font-semibold text-blue-600\">\r\n                {{result_data.requests_count}}\r\n            </p>\r\n        </div>\r\n        <div class=\"w-8 h-8 flex items-center justify-center rounded-md bg-blue-100 text-blue-600\">\r\n            <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                <path d=\"M9 17v-6\"/>\r\n                <path d=\"M15 17v-2\"/>\r\n                <path d=\"M12 17v-4\"/>\r\n                <path d=\"M5 21h14\"/>\r\n            </svg>\r\n        </div>\r\n    </div>\r\n\r\n    <!-- Audits -->\r\n    <div class=\"flex items-center justify-between bg-white rounded-lg shadow-sm px-3 py-2 border\">\r\n        <div>\r\n            <p class=\"text-[11px] text-gray-500\">Audits</p>\r\n            <p class=\"text-lg font-semibold text-purple-600\">\r\n                {{result_data.audit_count}}\r\n            </p>\r\n        </div>\r\n        <div class=\"w-8 h-8 flex items-center justify-center rounded-md bg-purple-100 text-purple-600\">\r\n            <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                <path d=\"M9 11l3 3L22 4\"/>\r\n                <path d=\"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11\"/>\r\n            </svg>\r\n        </div>\r\n    </div>\r\n\r\n</div>",
    "query_information": {
      "includes": [
        {
          "join_type": "LEFT",
          "table_name": "request_logs",
          "join_condition": "request_logs.user_id = users.id AND request_logs.status_id != 3"
        },
        {
          "join_type": "LEFT",
          "table_name": "audit_logs",
          "join_condition": "audit_logs.user_id = users.id AND audit_logs.status_id != 3"
        }
      ],
      "company_id": 1,
      "search_all": [
        {
          "value": "$gparam_1",
          "operator": "=",
          "column_name": "users.id"
        },
        {
          "value": "3",
          "operator": "!=",
          "column_name": "users.status_id"
        },
        {
          "value": ["super_admin", "company_admin"],
          "operator": "NOT IN",
          "column_name": "users.role"
        }
      ],
      "print_query": false,
      "primary_table": "users",
      "select_columns": [
        [
          "COUNT(DISTINCT users.id) FILTER (WHERE users.status_id = 1)",
          "active_users_count"
        ],
        [
          "COUNT(DISTINCT users.id) FILTER (WHERE users.status_id = 2)",
          "inactive_users_count"
        ],
        ["COUNT(DISTINCT request_logs.id)", "requests_count"],
        ["COUNT(DISTINCT audit_logs.id)", "audit_count"]
      ]
    }
  }
]
