[
  {
    "name": "Master Entities Import Template",
    "slug": "master_entities_import_template",
    "description": "Master Entities Import Template",
    "data_end_row": 0,
    "data_start_row": 0,
    "header_row": 1,
    "max_row_count": 500,
    "is_admin_module": false,
    "ignore_error_rows": false,
    "is_send_mail": false,
    "lineitems": [
      {
        "field_name": "entity_name",
        "display_name": "Entity Slug",
        "order_no": 1,
        "width": 0,
        "default_value": null,
        "is_nullable": false,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "master_entities",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "entity_type",
        "display_name": "Entity Type",
        "order_no": 2,
        "width": 0,
        "default_value": null,
        "is_nullable": false,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "master_entities",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "primary_table",
        "display_name": "Primary Table",
        "order_no": 3,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "master_entities",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "static_page_content",
        "display_name": "Static Page Content",
        "order_no": 8,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "master_entities",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "dashboard_wizard_rows",
        "display_name": "Dashboard Wizard Rows",
        "order_no": 14,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "Integer",
        "check_reg_exp": null,
        "field_table": "master_entities",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "dashboard_wizard_columns",
        "display_name": "Dashboard Wizard Columns",
        "order_no": 15,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "Integer",
        "check_reg_exp": null,
        "field_table": "master_entities",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "dashboard_wizard_order_no",
        "display_name": "Dashboard Wizard Order No",
        "order_no": 16,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "Float",
        "check_reg_exp": null,
        "field_table": "master_entities",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "permissions",
        "display_name": "Permissions",
        "order_no": 19,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "permissions",
        "is_multiple": true,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "is_admin_module",
        "display_name": "Is Admin Module",
        "order_no": 18,
        "width": 0,
        "default_value": "No",
        "is_nullable": false,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "master_entities",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "dashboard_wizard_type",
        "display_name": "Dashboard Wizard Type",
        "order_no": 13,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": true,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": "wizard_types",
        "foreign_column": "name",
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "master_entities",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "dashboard_wizard_group_id",
        "display_name": "Dashboard Wizard Group",
        "order_no": 12,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": true,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": "wizard_group",
        "foreign_column": "name",
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "master_entities",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "name",
        "display_name": "Entity Name",
        "order_no": 0,
        "width": 0,
        "default_value": null,
        "is_nullable": false,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "master_entities",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "associated_tables",
        "display_name": "Associated Tables",
        "order_no": 5,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "Json",
        "check_reg_exp": null,
        "field_table": "master_entities",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "dashboard_wizard_options",
        "display_name": "Dashboard Wizard Options",
        "order_no": 17,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "Json",
        "check_reg_exp": null,
        "field_table": "master_entities",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "form_information",
        "display_name": "Form Information",
        "order_no": 4,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "Json",
        "check_reg_exp": null,
        "field_table": "master_entities",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "query_information",
        "display_name": "Query Information",
        "order_no": 6,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "Json",
        "check_reg_exp": null,
        "field_table": "master_entities",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "add_query_information",
        "display_name": "Add Query Information",
        "order_no": 9,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "Json",
        "check_reg_exp": null,
        "field_table": "master_entities",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "edit_query_information",
        "display_name": "Edit Query Information",
        "order_no": 10,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "Json",
        "check_reg_exp": null,
        "field_table": "master_entities",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "preset_query_information",
        "display_name": "Preset Query Information",
        "order_no": 11,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "Json",
        "check_reg_exp": null,
        "field_table": "master_entities",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "line_items",
        "display_name": "Line Items",
        "order_no": 7,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "Json",
        "check_reg_exp": null,
        "field_table": "master_entity_line_items",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "status_id",
        "display_name": "Status",
        "order_no": 20,
        "width": 0,
        "default_value": "Active",
        "is_nullable": false,
        "is_unique": false,
        "is_foreign": true,
        "is_enum": true,
        "enum_values": "Active,InActive",
        "foreign_table": "statuses",
        "foreign_column": "name",
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "master_entities",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      }
    ],
    "queries": [
      {
        "order_no": 1,
        "allow_multiple": false,
        "query_name": "query1",
        "query_string": "SELECT id as dashboard_wizard_group_id FROM (\n\tSELECT id, 1 as order_by FROM wizard_group WHERE LOWER(slug)=LOWER(@sheet.master_entities-dashboard_wizard_group_id) \n\tOR LOWER(name)=LOWER(@sheet.master_entities-dashboard_wizard_group_id)\n    UNION ALL SELECT NULL::INTEGER AS id, 2 as order_by\n) ORDER BY order_by asc LIMIT 1;",
        "is_individual": false,
        "before_lineitems": true
      },
      {
        "order_no": 2,
        "allow_multiple": false,
        "query_name": "query2",
        "query_string": "SELECT name as dashboard_wizard_type FROM (\n\tSELECT name, 1 as order_by FROM wizard_types WHERE LOWER(name)=LOWER(@sheet.master_entities-dashboard_wizard_type) \n\tUNION ALL SELECT NULL name, 2 as order_by\n) ORDER BY order_by asc LIMIT 1;",
        "is_individual": false,
        "before_lineitems": true
      },
      {
        "order_no": 3,
        "allow_multiple": false,
        "query_name": "query3",
        "query_string": "SELECT id as status_id FROM (\n\tSELECT id, 1 as order_by FROM statuses WHERE LOWER(slug)=LOWER(@sheet.status_id) \n\tOR LOWER(name)=LOWER(@sheet.status_id)\n    UNION ALL SELECT 1 AS id, 2 as order_by\n) ORDER BY order_by asc LIMIT 1;",
        "is_individual": false,
        "before_lineitems": true
      },
      {
        "order_no": 4,
        "allow_multiple": false,
        "query_name": "query4",
        "query_string": "INSERT INTO master_entities \n    (name, entity_name, entity_type, primary_table, query_information, \n    form_information, add_query_information, edit_query_information, preset_query_information, \n    static_page_content, dashboard_wizard_group_id, dashboard_wizard_type, \n    dashboard_wizard_rows, dashboard_wizard_columns, dashboard_wizard_order_no, \n    dashboard_wizard_options, status_id, company_id, associated_tables, is_admin_module) VALUES (\n    @sheet.master_entities-name, @sheet.master_entities-entity_name, @sheet.master_entities-entity_type, @sheet.master_entities-primary_table, @sheet.master_entities-query_information, \n    @sheet.master_entities-form_information, @sheet.master_entities-add_query_information, @sheet.master_entities-edit_query_information, @sheet.master_entities-preset_query_information, \n    @sheet.master_entities-static_page_content, @query1.dashboard_wizard_group_id, '@query2.dashboard_wizard_type', \n    @sheet.master_entities-dashboard_wizard_rows, @sheet.master_entities-dashboard_wizard_columns, @sheet.master_entities-dashboard_wizard_order_no, \n    @sheet.master_entities-dashboard_wizard_options, @query3.status_id, 1, @sheet.master_entities-associated_tables, \n\tCASE WHEN LOWER(@sheet.master_entities-is_admin_module) = 'yes' THEN true ELSE false END) \n    ON CONFLICT (company_id, entity_name) DO UPDATE SET \n    entity_name = EXCLUDED.entity_name, entity_type = EXCLUDED.entity_type, primary_table = EXCLUDED.primary_table, \n    form_information = EXCLUDED.form_information, associated_tables = EXCLUDED.associated_tables, \n    query_information = EXCLUDED.query_information, static_page_content = EXCLUDED.static_page_content, \n    add_query_information = EXCLUDED.add_query_information, edit_query_information = EXCLUDED.edit_query_information, \n    preset_query_information = EXCLUDED.preset_query_information, dashboard_wizard_group_id = EXCLUDED.dashboard_wizard_group_id, \n    dashboard_wizard_type = EXCLUDED.dashboard_wizard_type, dashboard_wizard_rows = EXCLUDED.dashboard_wizard_rows, \n    dashboard_wizard_columns = EXCLUDED.dashboard_wizard_columns, dashboard_wizard_order_no = EXCLUDED.dashboard_wizard_order_no, \n    dashboard_wizard_options = EXCLUDED.dashboard_wizard_options, is_admin_module = EXCLUDED.is_admin_module, \n    status_id = EXCLUDED.status_id RETURNING *;",
        "is_individual": false,
        "before_lineitems": true
      },
      {
        "order_no": 5,
        "allow_multiple": false,
        "query_name": "query5",
        "query_string": "WITH delete_status AS (\n    DELETE FROM master_entity_line_items\n    WHERE master_grid_id = @query4.id\n),\njson_data AS (\n    SELECT @sheet.master_entity_line_items-line_items::jsonb AS data\n)\nINSERT INTO master_entity_line_items \n    (master_grid_id, field_name, display_name, order_no, is_grid_column, is_searchable, is_sortable, field_type_id, company_id, status_id) \nSELECT \n    @query4.id, \n    field_name, \n    display_name, \n    order_no, \n    is_grid_column, \n    is_searchable, \n    is_sortable, \n    field_type_id, \n    @query4.company_id, \n    @query4.status_id\nFROM \n    jsonb_populate_recordset(NULL::master_entity_line_items, (SELECT data FROM json_data))\nON CONFLICT (company_id, master_grid_id, field_name, display_name) \nDO UPDATE SET \n    order_no = EXCLUDED.order_no, \n    is_grid_column = EXCLUDED.is_grid_column, \n    is_searchable = EXCLUDED.is_searchable, \n    is_sortable = EXCLUDED.is_sortable, \n    field_type_id = EXCLUDED.field_type_id,\n    status_id = EXCLUDED.status_id\nRETURNING *;",
        "is_individual": false,
        "before_lineitems": true
      },
      {
        "order_no": 6,
        "allow_multiple": false,
        "query_name": "query6",
        "query_string": "UPDATE permissions\n    SET status_id = 3 WHERE entity_id= @query4.id AND status_id != 3 RETURNING id;",
        "is_individual": false,
        "before_lineitems": true
      },
      {
        "order_no": 7,
        "allow_multiple": true,
        "query_name": "query7",
        "query_string": "WITH insert_if_needed AS (\n    INSERT INTO permissions (name, slug, entity_id, order_no, status_id, company_id)\n    SELECT\n        LOWER(@sheet.permissions-permissions),\n        CONCAT(LOWER(@sheet.permissions-permissions), '_@query4.entity_name'),\n        @query4.id,\n        1,\n        1,\n        @query4.company_id\n    WHERE\n        @sheet.permissions-permissions IS NOT NULL\n        AND @sheet.permissions-permissions <> ''\n    ON CONFLICT (company_id, slug) DO UPDATE\n    SET\n        name = EXCLUDED.name,\n        status_id = EXCLUDED.status_id\n    RETURNING id\n)\nSELECT id FROM insert_if_needed\nUNION ALL\nSELECT NULL::INTEGER AS id\nWHERE NOT EXISTS (SELECT 1 FROM insert_if_needed);",
        "is_individual": false,
        "before_lineitems": true
      },
      {
        "order_no": 8,
        "allow_multiple": false,
        "query_name": "query8",
        "query_string": "DELETE FROM permissions WHERE entity_id= @query4.id AND status_id = 3 RETURNING id;",
        "is_individual": false,
        "before_lineitems": true
      }
    ]
  },
  {
    "name": "Menu Items Import Template",
    "slug": "menu_items_import_template",
    "description": "Menu Items Import Template",
    "data_end_row": 0,
    "data_start_row": 0,
    "header_row": 1,
    "max_row_count": 1000,
    "is_admin_module": false,
    "is_send_mail": false,
    "lineitems": [
      {
        "field_name": "menu_img",
        "display_name": "Menu Icon",
        "order_no": 9,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "menu_items",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "order_no",
        "display_name": "Order No",
        "order_no": 8,
        "width": 0,
        "default_value": "0",
        "is_nullable": false,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "Float",
        "check_reg_exp": null,
        "field_table": "menu_items",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "link_type",
        "display_name": "Link Type",
        "order_no": 7,
        "width": 0,
        "default_value": null,
        "is_nullable": false,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": true,
        "enum_values": "General,Action,Action and General,External",
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "menu_items",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "entity_id",
        "display_name": "Entity Name",
        "order_no": 6,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": true,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": "master_entities",
        "foreign_column": "entity_name",
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "menu_items",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "permission_id",
        "display_name": "Permission",
        "order_no": 5,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": true,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": "permissions",
        "foreign_column": "slug",
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "menu_items",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "parent_id",
        "display_name": "Parent Menu Item",
        "order_no": 4,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "menu_items",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "target",
        "display_name": "Menu Item URL",
        "order_no": 3,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "menu_items",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "status_id",
        "display_name": "Status",
        "order_no": 10,
        "width": 0,
        "default_value": "Active",
        "is_nullable": false,
        "is_unique": false,
        "is_foreign": true,
        "is_enum": true,
        "enum_values": "Active,InActive,Delete",
        "foreign_table": "statuses",
        "foreign_column": "name",
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "menu_items",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "menu_id",
        "display_name": "Menu Name",
        "order_no": 1,
        "width": 0,
        "default_value": null,
        "is_nullable": false,
        "is_unique": false,
        "is_foreign": true,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": "menu",
        "foreign_column": "slug",
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "menu_items",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "name",
        "display_name": "Menu Item Name",
        "order_no": 2,
        "width": 0,
        "default_value": null,
        "is_nullable": false,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "menu_items",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      }
    ],
    "queries": [
      {
        "order_no": 1,
        "allow_multiple": false,
        "query_name": "query1",
        "query_string": "SELECT COALESCE(\n    (SELECT id FROM menu WHERE name = @sheet.menu_items-menu_id),\n    NULL\n) AS id;",
        "is_individual": false,
        "before_lineitems": true
      },
      {
        "order_no": 2,
        "allow_multiple": false,
        "query_name": "query2",
        "query_string": "SELECT COALESCE(\n    (SELECT id FROM menu_items WHERE menu_id=@query1.id AND name = @sheet.menu_items-parent_id),\n    NULL\n) AS id;",
        "is_individual": false,
        "before_lineitems": true
      },
      {
        "order_no": 3,
        "allow_multiple": false,
        "query_name": "query3",
        "query_string": "SELECT COALESCE(\n    (SELECT id FROM permissions WHERE slug = @sheet.menu_items-permission_id),\n    NULL\n) AS id;",
        "is_individual": false,
        "before_lineitems": true
      },
      {
        "order_no": 4,
        "allow_multiple": false,
        "query_name": "query4",
        "query_string": "SELECT COALESCE(\n    (SELECT id FROM master_entities WHERE entity_name = @sheet.menu_items-entity_id),\n    NULL\n) AS id;",
        "is_individual": false,
        "before_lineitems": true
      },
      {
        "order_no": 5,
        "allow_multiple": false,
        "query_name": "query5",
        "query_string": "SELECT COALESCE(\n    (SELECT id FROM statuses WHERE slug= LOWER(@sheet.menu_items-status_id)  OR LOWER(name) = LOWER(@sheet.menu_items-status_id)),\n    NULL\n) AS id;",
        "is_individual": false,
        "before_lineitems": true
      },
      {
        "order_no": 6,
        "allow_multiple": false,
        "query_name": "query6",
        "query_string": "INSERT INTO menu_items(\n    menu_id, name, target, parent_id, permission_id, entity_id, link_type, order_no, menu_img, short_cut_keys, status_id, company_id, created_by, updated_by)\n    VALUES (@query1.id, @sheet.menu_items-name, @sheet.menu_items-target, @query2.id, @query3.id, @query4.id,\n    CASE \n        WHEN @sheet.menu_items-link_type = 'General' THEN 1\n        WHEN @sheet.menu_items-link_type = 'Action' THEN 2\n        WHEN @sheet.menu_items-link_type = 'Action and General' THEN 3\n        WHEN @sheet.menu_items-link_type = 'External' THEN 4\n        ELSE NULL  \n    END, @sheet.menu_items-order_no, @sheet.menu_items-menu_img, null, @query5.id, 1, 1, 1)\nON CONFLICT (company_id, menu_id, name) DO UPDATE SET \n    target = EXCLUDED.target, parent_id = EXCLUDED.parent_id, permission_id = EXCLUDED.permission_id, entity_id = EXCLUDED.entity_id, link_type = EXCLUDED.link_type, order_no = EXCLUDED.order_no, menu_img = EXCLUDED.menu_img, status_id = EXCLUDED.status_id RETURNING id;",
        "is_individual": false,
        "before_lineitems": true
      }
    ]
  },
  {
    "name": "Users Import Template",
    "slug": "users_import_template",
    "description": "Users Import Template Description",
    "data_end_row": 0,
    "data_start_row": 5,
    "header_row": 4,
    "max_row_count": 500,
    "is_admin_module": false,
    "ignore_error_rows": false,
    "is_send_mail": true,
    "email_process_slug": "mail_import",
    "lineitems": [
      {
        "field_name": "username",
        "display_name": "Username",
        "order_no": 1,
        "width": 0,
        "default_value": null,
        "is_nullable": false,
        "is_unique": true,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "users",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "email",
        "display_name": "Email",
        "order_no": 2,
        "width": 0,
        "default_value": null,
        "is_nullable": false,
        "is_unique": true,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "users",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "first_name",
        "display_name": "First Name",
        "order_no": 3,
        "width": 0,
        "default_value": null,
        "is_nullable": false,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "user_details",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "last_name",
        "display_name": "Last Name",
        "order_no": 4,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "user_details",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "code",
        "display_name": "Code",
        "order_no": 5,
        "width": 0,
        "default_value": null,
        "is_nullable": false,
        "is_unique": true,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "user_details",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "gender",
        "display_name": "Gender",
        "order_no": 6,
        "width": 0,
        "default_value": "male",
        "is_nullable": false,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": true,
        "enum_values": "male,female,others",
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "user_details",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "dob",
        "display_name": "Date of Birth",
        "order_no": 7,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": false,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": null,
        "foreign_column": null,
        "foreign_can_create": false,
        "field_type_id": "Date",
        "check_reg_exp": "^(?:(\\d{4})-(\\d{2})-(\\d{2})|(\\d{2})[/-](\\d{2})[/-](\\d{4}))$",
        "field_table": "user_details",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "designation_id",
        "display_name": "Designation",
        "order_no": 8,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": true,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": "designations",
        "foreign_column": "code",
        "foreign_can_create": true,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "user_details",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "department_id",
        "display_name": "Department",
        "order_no": 9,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": true,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": "departments",
        "foreign_column": "code",
        "foreign_can_create": true,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "user_details",
        "is_multiple": false,
        "individual_column": null,
        "is_individual": false
      },
      {
        "field_name": "role_id",
        "display_name": "Roles",
        "order_no": 10,
        "width": 0,
        "default_value": null,
        "is_nullable": false,
        "is_unique": false,
        "is_foreign": true,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": "roles",
        "foreign_column": "name",
        "foreign_can_create": true,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "user_roles",
        "is_multiple": true,
        "individual_column": null,
        "is_individual": false,
        "query_rules": [
          {
            "query": "SELECT EXISTS (\n  SELECT 1 \n  FROM user_details\n  WHERE first_name ilike '%@sheet.user_details-first_name%'\n) AS result;",
            "message": "First Name Already Exist"
          },
          {
            "query": "SELECT EXISTS (\n  SELECT 1 \n  FROM user_details \n  WHERE last_name = @sheet.user_details-last_name\n) AS result;",
            "message": "Last Name Already Exist"
          },
          {
            "query": "SELECT EXISTS (\n  SELECT 1 \n  FROM user_details\n  WHERE first_name ilike @sheet.user_details-first_name\n) AS result;",
            "message": "First Name Another Already Exist"
          },
          {
            "query": "SELECT EXISTS (\n  SELECT 1 \n  FROM user_details \n  WHERE last_name = '@sheet.user_details-last_name'\n) AS result;",
            "message": "Last Name Another Already Exist"
          }
        ]
      },
      {
        "field_name": "permission_id",
        "display_name": "Permissions",
        "order_no": 1,
        "width": 0,
        "default_value": null,
        "is_nullable": true,
        "is_unique": false,
        "is_foreign": true,
        "is_enum": false,
        "enum_values": null,
        "foreign_table": "permissions",
        "foreign_column": "slug",
        "foreign_can_create": false,
        "field_type_id": "String",
        "check_reg_exp": null,
        "field_table": "user_permissions",
        "is_multiple": true,
        "individual_column": "C1",
        "is_individual": true
      }
    ],
    "queries": [
      {
        "order_no": 1,
        "allow_multiple": true,
        "query_name": "query1",
        "query_string": "WITH insert_if_needed AS (INSERT INTO roles (name, description, company_id) SELECT @sheet.user_roles-role_id, null, 1 WHERE @sheet.user_roles-role_id IS NOT NULL AND @sheet.user_roles-role_id <> '' ON CONFLICT (company_id, name) DO UPDATE SET description = EXCLUDED.description RETURNING id) SELECT id FROM insert_if_needed UNION ALL SELECT NULL::INTEGER AS id WHERE NOT EXISTS (SELECT 1 FROM insert_if_needed);",
        "is_individual": false,
        "before_lineitems": true
      },
      {
        "order_no": 2,
        "allow_multiple": false,
        "query_name": "query2",
        "query_string": "WITH insert_if_needed AS (INSERT INTO departments (code, name, company_id) SELECT @sheet.user_details-department_id, @sheet.user_details-department_id, 1 WHERE @sheet.user_details-department_id IS NOT NULL AND @sheet.user_details-department_id <> '' ON CONFLICT (company_id, code) DO UPDATE SET description = EXCLUDED.description RETURNING id) SELECT id FROM insert_if_needed UNION ALL SELECT NULL::INTEGER AS id WHERE NOT EXISTS (SELECT 1 FROM insert_if_needed);",
        "is_individual": false,
        "before_lineitems": true
      },
      {
        "order_no": 3,
        "allow_multiple": false,
        "query_name": "query3",
        "query_string": "WITH insert_if_needed AS (INSERT INTO designations (code, name, company_id) SELECT @sheet.user_details-designation_id, @sheet.user_details-designation_id, 1 WHERE @sheet.user_details-designation_id IS NOT NULL AND @sheet.user_details-designation_id <> '' ON CONFLICT (company_id, code) DO UPDATE SET description = EXCLUDED.description RETURNING id) SELECT id FROM insert_if_needed UNION ALL SELECT NULL::INTEGER AS id WHERE NOT EXISTS (SELECT 1 FROM insert_if_needed);",
        "is_individual": false,
        "before_lineitems": true
      },
      {
        "order_no": 4,
        "allow_multiple": false,
        "query_name": "query4",
        "query_string": "INSERT INTO users (username, email, role, company_id) VALUES (@sheet.users-username, @sheet.users-email, 'admin', 1) ON CONFLICT (company_id, email, role) DO UPDATE SET role = EXCLUDED.role RETURNING *;",
        "is_individual": false,
        "before_lineitems": true
      },
      {
        "order_no": 5,
        "allow_multiple": false,
        "query_name": "query5",
        "query_string": "INSERT INTO user_details (user_id, code, first_name, last_name, gender, company_id, designation_id, department_id, dob) VALUES (@query4.id, @sheet.user_details-code, @sheet.user_details-first_name, @sheet.user_details-last_name, @sheet.user_details-gender, 1, @query3.id, @query2.id,NULLIF(@sheet.user_details-dob, '')::DATE) ON CONFLICT (company_id, user_id) DO UPDATE SET code = EXCLUDED.code, first_name = EXCLUDED.first_name, last_name = EXCLUDED.last_name, gender = EXCLUDED.gender, dob=EXCLUDED.dob  RETURNING *;",
        "is_individual": false,
        "before_lineitems": true
      },
      {
        "order_no": 6,
        "allow_multiple": true,
        "query_name": "query6",
        "query_string": "INSERT INTO user_roles (user_id, role_id, company_id) SELECT @query4.id, @query1.id, 1 WHERE @query4.id IS NOT NULL AND @query1.id IS NOT NULL ON CONFLICT (company_id, user_id, role_id) DO NOTHING RETURNING *;",
        "is_individual": false,
        "before_lineitems": true
      },
      {
        "order_no": 7,
        "allow_multiple": true,
        "query_name": "query7",
        "query_string": "SELECT id FROM (SELECT id, 1 as order_by FROM permissions WHERE slug=@cell.user_permissions-permission_id\n        UNION ALL\n        SELECT NULL::INTEGER AS id, 2 as order_by) ORDER BY order_by asc LIMIT 1;",
        "is_individual": false,
        "before_lineitems": true
      },
      {
        "order_no": 8,
        "allow_multiple": true,
        "query_name": "query8",
        "query_string": "INSERT INTO user_permissions (user_id, permission_id, company_id) SELECT @query4.id, @query7.id, 1 WHERE @query4.id IS NOT NULL AND @query7.id IS NOT NULL ON CONFLICT (company_id, user_id, permission_id) DO NOTHING RETURNING *;",
        "is_individual": false,
        "before_lineitems": true
      }
    ]
  }
]
