[
  {
    "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": {
      "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"
        }
      ],
      "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": "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": [
            {
              "status_id": 3
            }
          ]
        },
        "table": [
          "users"
        ],
        "action": [
          "update"
        ],
        "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": null,
    "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,
        "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": "Email Template Grid",
    "entity_name": "email_template",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "email_templates",
    "query_information": null,
    "company_id": 1,
    "associated_tables":[
      {
        "table": "email_template_assignments",
        "where_clause": "template_id = $1"
      }
    ],
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "email_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": "email_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": "email_templates.name",
        "display_name": "email_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": "email_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 Email Template form",
    "entity_name": "delete_email_template_form",
    "entity_type": "job_builder_module",
    "static_page_content":null,
    "query_information":{
        "data": {
          "table1": [
            {
              "status_id": 3
            }
          ]
        },
        "table": [
          "email_templates"
        ],
        "action": [
          "update"
        ],
        "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": null,
    "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": 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\">\n\n  <!-- Request Device -->\n  <div class=\"flex items-start\">\n    <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">Request Device:</label>\n    <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">\n      {{result_data.req_device}}\n    </div>\n  </div>\n\n  <!-- Request URL -->\n  <div class=\"flex items-start\">\n    <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">Request URL:</label>\n    <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">\n      {{result_data.req_url}}\n    </div>\n  </div>\n\n  <!-- Message -->\n  <div class=\"flex items-start\">\n    <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">Message:</label>\n    <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">\n      {{result_data.res_message}}\n    </div>\n  </div>\n\n  <!-- Request Response -->\n  <div class=\"flex items-start\">\n    <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">Response:</label>\n    <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">\n      {{result_data.req_response}}\n    </div>\n  </div>\n\n  <!-- Request Body (Full Width, Scrollable) -->\n  <div class=\"flex items-start\">\n    <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">Request Body:</label>\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;\">\n      {{result_data.req_body}}\n    </div>\n  </div>\n\n  <!-- Created At -->\n  <div class=\"flex items-start\">\n    <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">Created At:</label>\n    <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">\n      {{result_data.created_at}}\n    </div>\n  </div>\n\n</div>\n",
    "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": [
            {
              "status_id": 3
            }
          ]
        },
        "table": [
          "request_logs"
        ],
        "action": [
          "update"
        ],
        "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": {
      "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,
        "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"
        }
      ],
    "query_information": {
      "group_by": [
        "import_templates.id"
      ],
      "includes": [
        {
          "join_type": "LEFT",
          "table_name": "import_template_line_items",
          "join_condition": "import_templates.id = import_template_line_items.import_template_id"
        }
      ]
    },
    "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": "COUNT(import_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": "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
      }
    ]
  },

  {
    "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"
      ],
      "includes": [
        {
          "join_type": "LEFT",
          "table_name": "export_template_line_items",
          "join_condition": "export_templates.id = export_template_line_items.export_template_id"
        }
      ]
    },
    "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": "COUNT(export_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": "export_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 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": "Email Template Tags",
    "entity_name": "email_template_tag",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "email_template_tags",
    "query_information": null,
    "company_id": 1,
    "associated_tables":[
        {
          "table": "email_template_process_tags_mapping",
          "where_clause": "email_template_tag_id = $1"
        }
      ],
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "email_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": "email_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": "email_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": "email_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": "email_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": "Email Template Recipient Tags",
    "entity_name": "email_template_recipient_tag",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "email_template_recipient_tags",
    "query_information": null,
    "company_id": 1,
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "email_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": "email_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": "email_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": "email_template_recipient_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": "email_template_recipient_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": "Email Template Process",
    "entity_name": "email_template_process",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "email_template_process",
    "query_information": null,
    "company_id": 1,
    "associated_tables":[
        {
          "table": "email_template_process_tags_mapping",
          "where_clause": "email_template_process_id = $1"
        },
        {
          "table": "email_templates",
          "where_clause": "email_template_process_id = $1 AND status_id != 3"
        },
        {
          "table": "email_template_assignments",
          "where_clause": "email_template_process_id = $1"
        }
      ],
    "lineitems": [
      {
        "master_grid_id": 0,
        "field_name": "email_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": "email_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": "email_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": "email_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": "email_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": "Email Template Assignment",
    "entity_name": "email_template_assignment",
    "entity_type": "grid_builder_module",
    "static_page_content": null,
    "primary_table": "email_template_process",
    "query_information": null,
    "company_id": 1,
    "associated_tables":[
      {
        "table": "email_template_process_tags_mapping",
        "where_clause": "email_template_process_id = $1"
      },
      {
        "table": "email_templates",
        "where_clause": "email_template_process_id = $1 AND status_id != 3"
      },
      {
        "table": "email_template_assignments",
        "where_clause": "email_template_process_id = $1"
      }
    ],
  "lineitems": [
    {
      "master_grid_id": 0,
      "field_name": "email_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": "email_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": "email_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": "email_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": "email_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": null,
    "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": null,
    "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": null,
    "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": [
            {
              "status_id": 3
            }
          ]
        },
        "table": [
          "data_transfer_queries"
        ],
        "action": [
          "update"
        ],
        "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\">\n  <!-- Role Name -->\n  <div class=\"flex flex-col\">\n    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">Role Name:</label>\n    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.name}}</div>\n  </div>\n\n  <!-- Status -->\n  <div class=\"flex flex-col\">\n    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">Status:</label>\n    <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>\n  </div>\n\n  <!-- Description -->\n  <div class=\"flex flex-col \">\n    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">Description:</label>\n    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.description}}</div>\n  </div>\n</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",
          "asc"
        ]
      ],
      "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\">\n  <!-- User Code -->\n  <div class=\"flex flex-col\">\n    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">User Code:</label>\n    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.code}}</div>\n  </div>\n\n  <!-- Firstname and Lastname -->\n  <div class=\"flex flex-col\">\n    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">Name:</label>\n    <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>\n  </div>\n\n  <!-- Email -->\n  <div class=\"flex flex-col\">\n    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">Email:</label>\n    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.email}}</div>\n  </div>\n\n  <!-- Roles -->\n  <div class=\"flex flex-col \">\n    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">Roles:</label>\n    <div class=\"bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">{{result_data.roles}}</div>\n  </div>\n\n  <!-- Status -->\n  <div class=\"flex flex-col\">\n    <label class=\"font-medium text-gray-700 dark:text-gray-300 mb-1\">Status:</label>\n    <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>\n  </div>\n</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",
          "asc"
        ]
      ],
      "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\">\n  <!-- Process Slug -->\n  <div class=\"flex items-start\">\n    <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">Process Slug:</label>\n    <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">\n      {{result_data.process_slug}}\n    </div>\n  </div>\n\n  <!-- Notification Type -->\n  <div class=\"flex items-start\">\n    <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">Notification Type:</label>\n    <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">\n      {{result_data.notification_type}}\n    </div>\n  </div>\n\n  <!-- Notification Subject -->\n  <div class=\"flex items-start\">\n    <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">Notification Subject:</label>\n    <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">\n      {{result_data.notification_subject}}\n    </div>\n  </div>\n\n  <!-- Notification To -->\n  <div class=\"flex items-start\">\n    <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">Notification To:</label>\n    <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">\n      {{result_data.notification_to}}\n    </div>\n  </div>\n  \n  <!-- Notification Content -->\n  <div class=\"flex items-start\">\n    <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">Notification Content:</label>\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;\">\n      {{result_data.notification_content}}\n    </div>\n  </div>\n\n  <!-- Created At -->\n  <div class=\"flex items-start\">\n    <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">Created At:</label>\n    <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">\n      {{result_data.created_at}}\n    </div>\n  </div>\n \n  <!-- Sent At -->\n  <div class=\"flex items-start\">\n    <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">Sent At:</label>\n    <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">\n      {{result_data.sent_at}}\n    </div>\n  </div>\n\n  <!-- Notification Status -->\n  <div class=\"flex items-start\">\n    <label class=\"w-1/5 font-medium text-gray-700 dark:text-gray-300 mb-1 sm:mb-0\">Notification Status:</label>\n    <div class=\"w-4/5 bg-gray-100 dark:bg-gray-800 p-2 rounded-md text-gray-900 dark:text-white-light\">\n      {{result_data.notification_status}}\n    </div>\n  </div>\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",
        "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"
        }
      ],
      "sort_columns": [
        [
          "notification_jobs.id",
          "asc"
        ]
      ],
      "primary_table": "notification_jobs",
      "limit_range": 1,
      "print_query": false,
      "start_index": 0,
      "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_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"
        ]
      ]
    }
  }, 
  {
    "name": "Delete Role form",
    "entity_name": "delete_role_form",
    "entity_type": "job_builder_module",
    "static_page_content":null,
    "query_information":{
        "data": {
          "table1": [
            {
              "status_id": 3
            }
          ]
        },
        "table": [
          "roles"
        ],
        "action": [
          "update"
        ],
        "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": "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 "],
      "search_all": [
        {
          "column_name": "notification_jobs.status_id",
          "value": 3,
          "operator": "!="
        }
      ]
    },
    "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": 1,
        "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
      }
    ],
    "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": [
            {
              "status_id": 3
            }
          ]
        },
        "table": [
          "notification_jobs"
        ],
        "action": [
          "update"
        ],
        "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": "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"
        }
      ]
    },
    "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": null,
    "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": {
      "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",
    
      "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,
        "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": true,
        "is_searchable": true,
        "is_sortable": true,
        "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": 6,
        "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": true,
        "is_searchable": true,
        "is_sortable": true,
        "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": true,
        "is_searchable": false,
        "is_sortable": true,
        "field_type_id": 1,
        "company_id": 1
      }
    ]
  },
  {
    "name": "Import Job Details Page",
    "entity_name": "details_import_job",
    "entity_type": "import_job_detail_module"
  },
  {
    "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": {
      "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": []
  }
  
]
