[
  {
    "name": "Master Entities Export Template",
    "slug": "master_entities_export_template",
    "description": "Master Entities Export Template",
    "max_row_count": 500,
    "header_row": 1,
    "data_start_row": 2,
    "data_end_row": 500,
    "data_filepath": "export/master_entities_template.xlsx",
    "lineitems": [
      {
        "field_name": "name",
        "display_name": "Entity Name",
        "field_table": "master_entities",
        "order_no": 0,
        "default_value": null,
        "column_name": "Entity Name",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "entity_name",
        "display_name": "Entity Slug",
        "field_table": "master_entities",
        "order_no": 1,
        "default_value": null,
        "column_name": "Entity Slug",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "entity_type",
        "display_name": "Entity Type",
        "field_table": "master_entities",
        "order_no": 2,
        "default_value": null,
        "column_name": "Entity Type",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "primary_table",
        "display_name": "Primary Table",
        "field_table": "master_entities",
        "order_no": 3,
        "default_value": null,
        "column_name": "Primary Table",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "form_information",
        "display_name": "Form Information",
        "field_table": "master_entities",
        "order_no": 4,
        "default_value": null,
        "column_name": "Form Information",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "associated_tables",
        "display_name": "Associated Tables",
        "field_table": "master_entities",
        "order_no": 5,
        "default_value": null,
        "column_name": "Associated Tables",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "query_information",
        "display_name": "Query Information",
        "field_table": "master_entities",
        "order_no": 6,
        "default_value": null,
        "column_name": "Query Information",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "line_items",
        "display_name": "Line Items",
        "field_table": "master_entity_line_items",
        "order_no": 7,
        "default_value": null,
        "column_name": "Line Items",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "static_page_content",
        "display_name": "Static Page Content",
        "field_table": "master_entities",
        "order_no": 8,
        "default_value": null,
        "column_name": "Static Page Content",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "add_query_information",
        "display_name": "Add Query Information",
        "field_table": "master_entities",
        "order_no": 9,
        "default_value": null,
        "column_name": "Add Query Information",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "edit_query_information",
        "display_name": "Edit Query Information",
        "field_table": "master_entities",
        "order_no": 10,
        "default_value": null,
        "column_name": "Edit Query Information",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "preset_query_information",
        "display_name": "Preset Query Information",
        "field_table": "master_entities",
        "order_no": 11,
        "default_value": null,
        "column_name": "Preset Query Information",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "dashboard_wizard_group_id",
        "display_name": "Dashboard Wizard Group",
        "field_table": "master_entities",
        "order_no": 12,
        "default_value": null,
        "column_name": "Dashboard Wizard Group",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "dashboard_wizard_type",
        "display_name": "Dashboard Wizard Type",
        "field_table": "master_entities",
        "order_no": 13,
        "default_value": null,
        "column_name": "Dashboard Wizard Type",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "dashboard_wizard_rows",
        "display_name": "Dashboard Wizard Rows",
        "field_table": "master_entities",
        "order_no": 14,
        "default_value": null,
        "column_name": "Dashboard Wizard Rows",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "Integer"
      },
      {
        "field_name": "dashboard_wizard_columns",
        "display_name": "Dashboard Wizard Columns",
        "field_table": "master_entities",
        "order_no": 15,
        "default_value": null,
        "column_name": "Dashboard Wizard Columns",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "Integer"
      },
      {
        "field_name": "dashboard_wizard_order_no",
        "display_name": "Dashboard Wizard Order No",
        "field_table": "master_entities",
        "order_no": 16,
        "default_value": null,
        "column_name": "Dashboard Wizard Order No",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "Float"
      },
      {
        "field_name": "dashboard_wizard_options",
        "display_name": "Dashboard Wizard Options",
        "field_table": "master_entities",
        "order_no": 17,
        "default_value": null,
        "column_name": "Dashboard Wizard Options",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "is_admin_module",
        "display_name": "Is Admin Module",
        "field_table": "master_entities",
        "order_no": 18,
        "default_value": null,
        "column_name": "Is Admin Module",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "permissions",
        "display_name": "Permissions",
        "field_table": "permissions",
        "order_no": 19,
        "default_value": null,
        "column_name": "Permissions",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "status_id",
        "display_name": "Status",
        "field_table": "master_entities",
        "order_no": 20,
        "default_value": null,
        "column_name": "Status",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      }
    ],
    "queries": [
      {
        "query_string": "SELECT \n    master_entities.name as master_entities__name, entity_name as master_entities__entity_name, entity_type as master_entities__entity_type, primary_table as master_entities__primary_table, \n    form_information as master_entities__form_information, associated_tables as master_entities__associated_tables, query_information as master_entities__query_information, \n    COALESCE(\n        json_agg(\n            DISTINCT jsonb_build_object(\n                'master_grid_id', 0,\n                'field_name', master_entity_line_items.field_name,\n                'display_name', master_entity_line_items.display_name,\n                'order_no', master_entity_line_items.order_no,\n                'is_grid_column', master_entity_line_items.is_grid_column,\n                'is_searchable', master_entity_line_items.is_searchable,\n                'is_sortable', master_entity_line_items.is_sortable,\n                'field_type_id', master_entity_line_items.field_type_id,\n                'status_id', master_entity_line_items.status_id,\n                'company_id', master_entity_line_items.company_id\n            )\n        ) FILTER (WHERE master_entity_line_items.id IS NOT NULL), NULL\n    ) as master_entity_line_items__line_items,\n    static_page_content as master_entities__static_page_content, add_query_information as master_entities__add_query_information, edit_query_information as master_entities__edit_query_information,\n    preset_query_information as master_entities__preset_query_information, wizard_group.name as master_entities__dashboard_wizard_group_id, dashboard_wizard_type as master_entities__dashboard_wizard_type,\n    dashboard_wizard_rows as master_entities__dashboard_wizard_rows, dashboard_wizard_columns as master_entities__dashboard_wizard_columns, dashboard_wizard_order_no as master_entities__dashboard_wizard_order_no,\n    dashboard_wizard_options as master_entities__dashboard_wizard_options, \n\tCASE \n        WHEN is_admin_module = true THEN 'Yes'\n        ELSE 'No'\n    END AS master_entities__is_admin_module,\n    COALESCE(string_agg(DISTINCT permissions.name, ', ') FILTER (WHERE permissions.name IS NOT NULL), '') AS permissions__permissions, \n    statuses.name AS master_entities__status_id\n    FROM master_entities \nLEFT JOIN\n\tstatuses ON statuses.id = master_entities.status_id\nLEFT JOIN \n\twizard_group ON wizard_group.id = master_entities.dashboard_wizard_group_id\nLEFT JOIN \n    permissions ON permissions.entity_id = master_entities.id\nLEFT JOIN \n    master_entity_line_items ON master_entity_line_items.master_grid_id = master_entities.id\n\tWHERE master_entities.status_id != 3 AND master_entities.entity_name NOT LIKE 'documentation_%'\nGROUP BY \n    master_entities.id, master_entities.name, statuses.name, wizard_group.name;",
        "query_name": "query1",
        "query_procedure": "query",
        "is_individual": false,
        "order_no": 1
      }
    ]
  },
  {
    "name": "Menu Items Export Template",
    "slug": "menu_items_export_template",
    "description": "Menu Items Export Template",
    "max_row_count": 1000,
    "header_row": 1,
    "data_start_row": 2,
    "data_end_row": 1000,
    "data_filepath": "export/menu_items_template.xlsx",
    "lineitems": [
      {
        "field_name": "menu_id",
        "display_name": "Menu Name",
        "field_table": "menu_items",
        "order_no": 1,
        "default_value": null,
        "column_name": "Menu Name",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "name",
        "display_name": "Menu Item Name",
        "field_table": "menu_items",
        "order_no": 2,
        "default_value": null,
        "column_name": "Menu Item Name",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "target",
        "display_name": "Menu Item URL",
        "field_table": "menu_items",
        "order_no": 3,
        "default_value": null,
        "column_name": "Menu Item URL",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "parent_id",
        "display_name": "Parent Menu Item",
        "field_table": "menu_items",
        "order_no": 4,
        "default_value": null,
        "column_name": "Parent Menu Item",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "permission_id",
        "display_name": "Permission",
        "field_table": "menu_items",
        "order_no": 5,
        "default_value": null,
        "column_name": "Permission",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "entity_id",
        "display_name": "Entity Name",
        "field_table": "menu_items",
        "order_no": 6,
        "default_value": null,
        "column_name": "Entity Name",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "link_type",
        "display_name": "Link Type",
        "field_table": "menu_items",
        "order_no": 7,
        "default_value": null,
        "column_name": "Link Type",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "order_no",
        "display_name": "Order No",
        "field_table": "menu_items",
        "order_no": 8,
        "default_value": null,
        "column_name": "Order No",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "Float"
      },
      {
        "field_name": "menu_img",
        "display_name": "Menu Icon",
        "field_table": "menu_items",
        "order_no": 9,
        "default_value": null,
        "column_name": "Menu Icon",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "status_id",
        "display_name": "Status",
        "field_table": "menu_items",
        "order_no": 10,
        "default_value": null,
        "column_name": "Status",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      }
    ],
    "queries": [
      {
        "query_string": "WITH RECURSIVE menu_hierarchy AS (\n    SELECT \n        id, menu_id, name, target, parent_id, \n        permission_id, entity_id, order_no, \n        menu_img, link_type, status_id,  \n        1 AS level,\n        1::TEXT AS hierarchy_path\n    FROM \n        menu_items\n    WHERE \n        parent_id IS NULL AND status_id != 3\n\n    UNION ALL\n\n    SELECT \n        mi.id, mi.menu_id, mi.name, mi.target, mi.parent_id, \n        mi.permission_id, mi.entity_id, mi.order_no, \n        mi.menu_img, mi.link_type, mi.status_id,\n        menu_hierarchy.level + 1,\n        menu_hierarchy.hierarchy_path || '>' || (menu_hierarchy.level + 1)::TEXT\n    FROM \n        menu_items mi\n    INNER JOIN \n        menu_hierarchy ON mi.parent_id = menu_hierarchy.id\n    WHERE \n        mi.status_id != 3\n)\n\nSELECT \n    menu.slug AS menu_items__menu_id, \n    menu_hierarchy.name AS menu_items__name, \n    menu_hierarchy.target as menu_items__target, \n    menu_items.name AS menu_items__parent_id, \n    permissions.slug AS menu_items__permission_id, \n    master_entities.entity_name AS menu_items__entity_id, \n    menu_hierarchy.order_no AS menu_items__order_no, \n    menu_hierarchy.menu_img as menu_items__menu_img, \n    CASE \n        WHEN menu_hierarchy.link_type = 1 THEN 'General'\n        WHEN menu_hierarchy.link_type = 2 THEN 'Action'\n        WHEN menu_hierarchy.link_type = 3 THEN 'Action and General'\n        WHEN menu_hierarchy.link_type = 4 THEN 'External'\n        ELSE NULL  \n    END AS menu_items__link_type, \n    statuses.name AS menu_items__status_id \nFROM \n    menu_hierarchy \nLEFT JOIN \n    menu ON menu.id = menu_hierarchy.menu_id\nLEFT JOIN \n    menu_items ON menu_items.id = menu_hierarchy.parent_id\nLEFT JOIN \n    permissions ON permissions.id = menu_hierarchy.permission_id\nLEFT JOIN \n    master_entities ON master_entities.id = menu_hierarchy.entity_id\nLEFT JOIN \n    statuses ON statuses.id = menu_hierarchy.status_id\nORDER BY \n    menu.slug,\n    menu_hierarchy.hierarchy_path, \n    menu_hierarchy.order_no ASC;",
        "query_name": "query1",
        "query_procedure": "query",
        "is_individual": false,
        "order_no": 1
      }
    ]
  },
  {
    "name": "Users Export Template",
    "slug": "users_export_template",
    "description": "Users Export Template",
    "max_row_count": 150,
    "header_row": 4,
    "data_start_row": 5,
    "data_end_row": 155,
    "data_filepath": "export/user_template.xlsx",
    "lineitems": [
      {
        "field_name": "username",
        "display_name": "Username",
        "field_table": "users",
        "order_no": 1,
        "default_value": null,
        "column_name": "Username",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "email",
        "display_name": "Email",
        "field_table": "users",
        "order_no": 2,
        "default_value": null,
        "column_name": "Email",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "first_name",
        "display_name": "First Name",
        "field_table": "user_details",
        "order_no": 3,
        "default_value": null,
        "column_name": "First Name",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "last_name",
        "display_name": "Last Name",
        "field_table": "user_details",
        "order_no": 4,
        "default_value": null,
        "column_name": "Last Name",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "code",
        "display_name": "Code",
        "field_table": "user_details",
        "order_no": 5,
        "default_value": null,
        "column_name": "Code",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "gender",
        "display_name": "Gender",
        "field_table": "user_details",
        "order_no": 6,
        "default_value": null,
        "column_name": "Gender",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "dob",
        "display_name": "Date Of Birth",
        "field_table": "user_details",
        "order_no": 7,
        "default_value": null,
        "column_name": "Date of Birth",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "designation_id",
        "display_name": "Designation",
        "field_table": "designations",
        "order_no": 8,
        "default_value": null,
        "column_name": "Designation",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "department_id",
        "display_name": "Department",
        "field_table": "departments",
        "order_no": 9,
        "default_value": null,
        "column_name": "Department",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "role_id",
        "display_name": "Roles",
        "field_table": "roles",
        "order_no": 10,
        "default_value": null,
        "column_name": "Roles",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      }
    ],
    "queries": [
      {
        "query_string": "SELECT users.username AS users__username, users.email AS users__email, user_details.first_name AS user_details__first_name, user_details.last_name AS user_details__last_name, user_details.code AS user_details__code, user_details.dob AS user_details__dob, user_details.gender AS user_details__gender, designations.code AS designations__designation_id, departments.code AS departments__department_id, STRING_AGG(DISTINCT roles.name, ', ') AS roles__role_id FROM users LEFT JOIN user_details ON users.company_id = user_details.company_id AND users.id = user_details.user_id LEFT JOIN designations ON user_details.company_id = designations.company_id AND user_details.designation_id = designations.id LEFT JOIN departments ON user_details.company_id = departments.company_id AND user_details.department_id = departments.id LEFT JOIN user_roles ON users.company_id = user_roles.company_id AND users.id = user_roles.user_id LEFT JOIN roles ON user_roles.company_id = roles.company_id AND user_roles.role_id = roles.id WHERE users.deleted_at IS NULL AND user_details.deleted_at IS NULL AND designations.deleted_at IS NULL AND departments.deleted_at IS NULL AND roles.deleted_at IS NULL AND roles.name NOT IN ('super_admin', 'company_admin') AND ($search_params) AND ($having_params) GROUP BY users.id, users.username, users.email, user_details.first_name, user_details.last_name, user_details.code, user_details.dob, user_details.gender, designations.code, departments.code;",
        "query_name": "query1",
        "query_procedure": "query",
        "is_individual": false,
        "order_no": 1
      }
    ]
  },
  {
    "name": "Users Export PDF Template",
    "slug": "users_export_pdf_template",
    "description": "Users Export PDF Template",
    "max_row_count": 0,
    "header_row": 0,
    "data_start_row": 0,
    "data_end_row": 0,
    "data_filepath": null,
    "template_type": "pdf",
    "pdf_configurations": {
      "template_content": "<!-- TABLE LAYOUT -->\r\n<div class=\"p-3\">\r\n\r\n  <!-- Information Block -->\r\n  <div class=\"mb-2 text-muted small\">\r\n    <p class=\"mb-0\">Total Records: {{query1.length}}</p>\r\n  </div>\r\n\r\n  <!-- TABLE START -->\r\n  <table class=\"table table-bordered table-sm w-100 text-nowrap\">\r\n    <thead class=\"table-light\">\r\n      <tr>\r\n        {{#each lineitems}}\r\n          <th class=\"px-2 py-1 text-start fw-semibold small\">\r\n            {{display_name}}\r\n          </th>\r\n        {{/each}}\r\n      </tr>\r\n    </thead>\r\n\r\n    <tbody>\r\n      {{#each query1}}\r\n      <tr class=\"{{rowClass @index}}\">\r\n        {{#each ../lineitems}}\r\n          <td class=\"px-2 py-1 small\">\r\n            {{lookup ../this column_name}}\r\n          </td>\r\n        {{/each}}\r\n      </tr>\r\n      {{/each}}\r\n    </tbody>\r\n  </table>\r\n\r\n</div>\r\n<!-- CARD LAYOUT -->\r\n<div class=\"p-3\">\r\n\r\n  <div class=\"mb-2 text-muted small\">\r\n    <p class=\"mb-0\">Total Records: {{query1.length}}</p>\r\n  </div>\r\n\r\n  <div class=\"row row-cols-1 row-cols-sm-2 row-cols-md-3 g-2 mb-3\">\r\n    {{#each query1}}\r\n    <div class=\"col\">\r\n      <div class=\"card h-100 border shadow-sm p-2\">\r\n        <div class=\"card-body p-2\">\r\n          {{#each ../lineitems}}\r\n          <div class=\"mb-1 small\">\r\n            <span class=\"fw-semibold text-secondary\">{{display_name}}:</span>\r\n            <span class=\"text-dark\">{{lookup ../this column_name}}</span>\r\n          </div>\r\n          {{/each}}\r\n        </div>\r\n      </div>\r\n    </div>\r\n    {{/each}}\r\n  </div>\r\n\r\n</div>\r\n<!-- FLEX LAYOUT -->\r\n<div class=\"p-3\">\r\n\r\n  <div class=\"mb-2 text-muted small\">\r\n    <p class=\"mb-0\">Total Records: {{query1.length}}</p>\r\n  </div>\r\n\r\n  {{#each query1}}\r\n    <div class=\"border rounded p-3 mb-2 bg-white shadow-sm\">\r\n\r\n      <div class=\"row g-2\">\r\n        {{#each ../lineitems}}\r\n        <div class=\"col-12 col-sm-6 col-md-4 small\">\r\n          <span class=\"fw-semibold text-secondary d-block mb-1\">{{display_name}}</span>\r\n          <span class=\"text-dark d-block\">{{lookup ../this column_name}}</span>\r\n        </div>\r\n        {{/each}}\r\n      </div>\r\n\r\n    </div>\r\n  {{/each}}\r\n\r\n</div>\r\n",
      "template_header": "<div style=\"display:flex; justify-content:space-between; flex-direction: column; align-items:center; width:100%; font-size:10px; gap:5px;\">\r\n\r\n  <!-- ROW 1 -->\r\n  <div style=\"\r\n    display:flex;\r\n    justify-content:space-between;\r\n    align-items:center;\r\n    width:100%;\r\n    font-size:10px;\r\n  \">\r\n\r\n    <!-- Left: Logo + Company -->\r\n    <div style=\"display:flex; align-items:center; flex:1;\">\r\n      <div style=\"\r\n        width:32px;\r\n        height:32px;\r\n        border-radius:50%;\r\n        background:#d9f2e3;\r\n        display:flex;\r\n        align-items:center;\r\n        justify-content:center;\r\n        color:#4CAF50;\r\n        font-size:14px;\r\n        margin-right:10px;\r\n      \">\r\n        ✔\r\n      </div>\r\n\r\n      <div style=\"font-size:13px; font-weight:bold; color:#2e2e2e;\">\r\n        Techcedence\r\n      </div>\r\n    </div>\r\n\r\n    <!-- Right: Date -->\r\n    <div style=\"font-size:11px; color:#4CAF50; font-weight:bold; text-align:right; flex-shrink:0;\">\r\n      {{ currentDate }}\r\n    </div>\r\n\r\n  </div>\r\n\r\n  <!-- ROW 2 -->\r\n  <div style=\"display:flex; justify-content:space-between; align-items:center; width:100%; font-size:10px;\">\r\n\r\n    <div style=\"font-size:10px; color:#666; flex:1;\">\r\n      User List Export\r\n    </div>\r\n\r\n    <div style=\"font-size:9px; color:#777; text-align:right; flex-shrink:0;\">\r\n      Techcedence User\r\n    </div>\r\n\r\n  </div>\r\n\r\n</div>\r\n",
      "template_footer": "<div style=\"display:flex; justify-content:space-between; align-items:center; width:100%; font-size:10px;\">\r\n  <div style=\"display:flex; align-items:center;\">\r\n    {{#if footer_logo}}\r\n      <img src=\"{{footer_logo}}\" style=\"height:20px; margin-right:8px;\" />\r\n    {{/if}}\r\n    <span>Techcedence</span>\r\n  </div>\r\n  <!-- pagination injected automatically -->\r\n  <div></div>\r\n</div>",
      "is_paginated": true,
      "is_header_enabled": true,
      "is_footer_enabled": true,
      "is_repeatative_header": true,
      "is_repeatative_footer": true,
      "is_first_page_header_only": false,
      "is_first_page_footer_only": false,
      "page_size": "A4",
      "orientation": "portrait",
      "margin_top": 60.0,
      "margin_bottom": 30.0,
      "margin_left": 15.0,
      "margin_right": 15.0,
      "is_watermark_enabled": false,
      "watermark_text": null,
      "watermark_image": null,
      "watermark_position": "center",
      "font_family": "Helvetica",
      "font_size": 12.0,
      "color_theme": "light"
    },
    "lineitems": [
      {
        "field_name": "username",
        "display_name": "Username",
        "field_table": "users",
        "order_no": 1,
        "default_value": null,
        "column_name": "Username",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "email",
        "display_name": "Email",
        "field_table": "users",
        "order_no": 2,
        "default_value": null,
        "column_name": "Email",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "first_name",
        "display_name": "First Name",
        "field_table": "user_details",
        "order_no": 3,
        "default_value": null,
        "column_name": "First Name",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "last_name",
        "display_name": "Last Name",
        "field_table": "user_details",
        "order_no": 4,
        "default_value": null,
        "column_name": "Last Name",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "code",
        "display_name": "Code",
        "field_table": "user_details",
        "order_no": 5,
        "default_value": null,
        "column_name": "Code",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "gender",
        "display_name": "Gender",
        "field_table": "user_details",
        "order_no": 6,
        "default_value": null,
        "column_name": "Gender",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "dob",
        "display_name": "Date Of Birth",
        "field_table": "user_details",
        "order_no": 7,
        "default_value": null,
        "column_name": "Date of Birth",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "designation_id",
        "display_name": "Designation",
        "field_table": "designations",
        "order_no": 8,
        "default_value": null,
        "column_name": "Designation",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "department_id",
        "display_name": "Department",
        "field_table": "departments",
        "order_no": 9,
        "default_value": null,
        "column_name": "Department",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "role_id",
        "display_name": "Roles",
        "field_table": "roles",
        "order_no": 10,
        "default_value": null,
        "column_name": "Roles",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      }
    ],
    "queries": [
      {
        "query_string": "SELECT users.username AS users__username, users.email AS users__email, user_details.first_name AS user_details__first_name, user_details.last_name AS user_details__last_name, user_details.code AS user_details__code, user_details.dob AS user_details__dob, user_details.gender AS user_details__gender, designations.code AS designations__designation_id, departments.code AS departments__department_id, STRING_AGG(DISTINCT roles.name, ', ') AS roles__role_id FROM users LEFT JOIN user_details ON users.company_id = user_details.company_id AND users.id = user_details.user_id LEFT JOIN designations ON user_details.company_id = designations.company_id AND user_details.designation_id = designations.id LEFT JOIN departments ON user_details.company_id = departments.company_id AND user_details.department_id = departments.id LEFT JOIN user_roles ON users.company_id = user_roles.company_id AND users.id = user_roles.user_id LEFT JOIN roles ON user_roles.company_id = roles.company_id AND user_roles.role_id = roles.id WHERE users.deleted_at IS NULL AND user_details.deleted_at IS NULL AND designations.deleted_at IS NULL AND departments.deleted_at IS NULL AND roles.deleted_at IS NULL AND roles.name NOT IN ('super_admin', 'company_admin') AND ($search_params) AND ($having_params) GROUP BY users.id, users.username, users.email, user_details.first_name, user_details.last_name, user_details.code, user_details.dob, user_details.gender, designations.code, departments.code;",
        "query_name": "query1",
        "query_procedure": "query",
        "is_individual": false,
        "order_no": 1
      }
    ]
  },
  {
    "name": "User Record Export PDF Template",
    "slug": "users_list_pdf_record_export_template",
    "description": "User Record Export PDF Template",
    "max_row_count": 0,
    "header_row": 0,
    "data_start_row": 0,
    "data_end_row": 0,
    "data_filepath": null,
    "template_type": "pdf",
    "pdf_configurations": {
      "template_content": "<div class='container py-4'><div class='row mb-5 border-bottom pb-3 align-items-center'><div class='col-8'><h2 class='text-primary mb-0'>User Profile Report</h2><p class='text-muted small mb-0'>Generated on: {{currentDate}}</p></div><div class='col-4 text-end'><div class='badge bg-success p-2'>Active Record</div></div></div>{{#each query1}}<div class='row g-4'><div class='col-12'><div class='card border-0 shadow-sm bg-light'><div class='card-header bg-primary text-white py-3'><h5 class='card-title mb-0'><i class='bi bi-person-fill me-2'></i>Personal Information</h5></div><div class='card-body'><div class='row h5 g-3'><div class='col-6'><label class='text-muted small d-block'>Full Name</label><span class='fw-bold'>{{[First Name]}} {{[Last Name]}}</span></div><div class='col-6'><label class='text-muted small d-block'>Gender</label><span class='text-capitalize'>{{Gender}}</span></div><div class='col-6 border-top pt-2'><label class='text-muted small d-block'>Employee Code</label><span class='badge bg-secondary'>{{Code}}</span></div><div class='col-6 border-top pt-2'><label class='text-muted small d-block'>Date of Birth</label><span>{{#if [Date of Birth]}}{{formatDate [Date of Birth]}}{{else}}N/A{{/if}}</span></div></div></div></div></div><div class='col-12'><div class='card border-0 shadow-sm'><div class='card-header bg-dark text-white py-3'><h5 class='card-title mb-0'>Professional Details</h5></div><div class='card-body'><div class='row g-4 text-center'><div class='col-4 shadow-sm border rounded py-3 mx-auto' style='width:30%;'><label class='text-muted small d-block mb-1'>Department</label><p class='fw-bold mb-0 text-primary'>{{#if Department}}{{Department}}{{else}}N/A{{/if}}</p></div><div class='col-4 shadow-sm border rounded py-3 mx-auto' style='width:30%;'><label class='text-muted small d-block mb-1'>Designation</label><p class='fw-bold mb-0 text-primary'>{{#if Designation}}{{Designation}}{{else}}N/A{{/if}}</p></div><div class='col-4 shadow-sm border rounded py-3 mx-auto' style='width:30%;'><label class='text-muted small d-block mb-1'>Company Role</label><p class='fw-bold mb-0 text-success'>{{Roles}}</p></div></div></div></div></div><div class='col-12'><div class='card border-0 shadow-sm bg-white border'><div class='card-body'><div class='row align-items-center'><div class='col-md-6 border-end'><div class='d-flex align-items-center mb-2'><div class='p-2 bg-info-subtle rounded me-3'>📧</div><div><label class='text-muted small d-block'>Primary Email</label><span class='fw-bold'>{{Email}}</span></div></div></div><div class='col-md-6 ps-md-4'><div class='d-flex align-items-center mb-2'><div class='p-2 bg-warning-subtle rounded me-3'>👤</div><div><label class='text-muted small d-block'>System Username</label><span class='fw-bold'>{{Username}}</span></div></div></div></div></div></div></div></div>{{/each}}<div class='mt-5 text-center text-muted small'><p>This is a system-generated document. Confidentiality requested.</p></div></div><style>body{background-color:#f8f9fa;color:#333}.card{border-radius:12px;overflow:hidden}.text-primary{color:#006ce4!important}.bg-primary{background-color:#006ce4!important}label{letter-spacing:.5px;text-transform:uppercase;margin-bottom:2px}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}</style>",
      "template_header": null,
      "template_footer": null,
      "is_paginated": false,
      "is_header_enabled": false,
      "is_footer_enabled": false,
      "is_repeatative_header": false,
      "is_repeatative_footer": false,
      "is_first_page_header_only": false,
      "is_first_page_footer_only": false,
      "page_size": "A4",
      "orientation": "portrait",
      "margin_top": 60.0,
      "margin_bottom": 30.0,
      "margin_left": 15.0,
      "margin_right": 15.0,
      "is_watermark_enabled": false,
      "watermark_text": null,
      "watermark_image": null,
      "watermark_position": "center",
      "font_family": "Helvetica",
      "font_size": 12.0,
      "color_theme": "light"
    },
    "lineitems": [
      {
        "field_name": "username",
        "display_name": "Username",
        "field_table": "users",
        "order_no": 1,
        "default_value": null,
        "column_name": "Username",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "email",
        "display_name": "Email",
        "field_table": "users",
        "order_no": 2,
        "default_value": null,
        "column_name": "Email",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "first_name",
        "display_name": "First Name",
        "field_table": "user_details",
        "order_no": 3,
        "default_value": null,
        "column_name": "First Name",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "last_name",
        "display_name": "Last Name",
        "field_table": "user_details",
        "order_no": 4,
        "default_value": null,
        "column_name": "Last Name",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "code",
        "display_name": "Code",
        "field_table": "user_details",
        "order_no": 5,
        "default_value": null,
        "column_name": "Code",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "gender",
        "display_name": "Gender",
        "field_table": "user_details",
        "order_no": 6,
        "default_value": null,
        "column_name": "Gender",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "dob",
        "display_name": "Date Of Birth",
        "field_table": "user_details",
        "order_no": 7,
        "default_value": null,
        "column_name": "Date of Birth",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "designation_id",
        "display_name": "Designation",
        "field_table": "designations",
        "order_no": 8,
        "default_value": null,
        "column_name": "Designation",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "department_id",
        "display_name": "Department",
        "field_table": "departments",
        "order_no": 9,
        "default_value": null,
        "column_name": "Department",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      },
      {
        "field_name": "role_id",
        "display_name": "Roles",
        "field_table": "roles",
        "order_no": 10,
        "default_value": null,
        "column_name": "Roles",
        "is_individual": false,
        "individual_column": null,
        "field_type_id": "String"
      }
    ],
    "queries": [
      {
        "query_string": "SELECT users.username AS users__username, users.email AS users__email, user_details.first_name AS user_details__first_name, user_details.last_name AS user_details__last_name, user_details.code AS user_details__code, user_details.dob AS user_details__dob, user_details.gender AS user_details__gender, designations.code AS designations__designation_id, departments.code AS departments__department_id, STRING_AGG(DISTINCT roles.name, ', ') AS roles__role_id FROM users LEFT JOIN user_details ON users.company_id = user_details.company_id AND users.id = user_details.user_id LEFT JOIN designations ON user_details.company_id = designations.company_id AND user_details.designation_id = designations.id LEFT JOIN departments ON user_details.company_id = departments.company_id AND user_details.department_id = departments.id LEFT JOIN user_roles ON users.company_id = user_roles.company_id AND users.id = user_roles.user_id LEFT JOIN roles ON user_roles.company_id = roles.company_id AND user_roles.role_id = roles.id WHERE users.id = :grid_params.$gparam_1 AND users.deleted_at IS NULL AND user_details.deleted_at IS NULL AND designations.deleted_at IS NULL AND departments.deleted_at IS NULL AND roles.deleted_at IS NULL AND roles.name NOT IN ('super_admin', 'company_admin') AND ($search_params) AND ($having_params) GROUP BY users.id, users.username, users.email, user_details.first_name, user_details.last_name, user_details.code, user_details.dob, user_details.gender, designations.code, departments.code;",
        "query_name": "query1",
        "query_procedure": "query",
        "is_individual": false,
        "order_no": 1
      }
    ]
  }
]