-- Data for Name: document_comments; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.document_comments (document_comment_id, document_id, user_id, comment, updatedat) FROM stdin;
\.


--
-- Data for Name: document_folders; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.document_folders (id, parent_id, name, tenant_id, branch_id, isdeleted, updatedat) FROM stdin;
1	\N	Training	\N	\N	f	2025-10-20 22:31:29.905442+00
2	\N	Compliance	\N	\N	f	2025-10-20 22:31:29.905442+00
\.


--
-- Data for Name: document_metadata; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.document_metadata (document_metadata_id, document_version_id, document_id, metadata_key, metadata_value, value_type, searchable, indexed, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: document_permissions; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.document_permissions (document_permission_id, document_id, user_id, can_view, can_edit, can_comment, org_id, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: document_tags; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.document_tags (document_tag_id, document_id, tag, parent_tag_id, tag_type, color, icon, sort_order, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: document_versions; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.document_versions (document_version_id, file_path, document_id, storage_key, isarchived, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: documents; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.documents (document_id, parent_document_id, folder_id, category_id, org_id, title, description, language_code, owner_id, connector_id, type, expiry_date, isarchived, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: element_options; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.element_options (id, element_id, tenant_id, branch_id, display_text, value, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: element_types; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.element_types (id, tenant_id, branch_id, name, html_type, display_class, sql_type, isdeleted, updatedat) FROM stdin;
1	\N	\N	text	text	\N	VARCHAR(255)	f	2025-10-20 22:31:29.749784+00
2	\N	\N	number	number	\N	INT	f	2025-10-20 22:31:29.749784+00
3	\N	\N	date	date	\N	DATE	f	2025-10-20 22:31:29.749784+00
4	\N	\N	dropdown	select	\N	VARCHAR(255)	f	2025-10-20 22:31:29.749784+00
5	\N	\N	checkbox	checkbox	\N	BOOLEAN	f	2025-10-20 22:31:29.749784+00
6	\N	\N	checkbox-table	checkbox-table	\N	\N	f	2025-10-20 22:31:29.749784+00
7	\N	\N	input-table	input-table	\N	\N	f	2025-10-20 22:31:29.749784+00
8	\N	\N	textarea	textarea	\N	TEXT	f	2025-10-20 22:31:29.749784+00
9	\N	\N	file	file	\N	VARCHAR(255)	f	2025-10-20 22:31:29.749784+00
10	\N	\N	datetime	datetime-local	\N	TIMESTAMP	f	2025-10-20 22:31:29.749784+00
11	\N	\N	group	group	\N	\N	f	2025-10-20 22:31:29.749784+00
12	\N	\N	section	section	\N	\N	f	2025-10-20 22:31:29.749784+00
13	\N	\N	select-addable	select	\N	VARCHAR(255)	f	2025-10-20 22:31:29.749784+00
14	\N	\N	multiselect-search	multiselect	\N	VARCHAR(255)	f	2025-10-20 22:31:29.749784+00
15	\N	\N	email	email	\N	VARCHAR(255)	f	2025-10-20 22:31:29.749784+00
16	\N	\N	text-multiple	text-multiple	\N	VARCHAR(255)	f	2025-10-20 22:31:29.749784+00
17	\N	\N	hidden	hidden	\N	INT	f	2025-10-20 22:31:29.749784+00
18	\N	\N	rating	rating	\N	INT	f	2025-10-20 22:31:29.749784+00
19	\N	\N	button	button	\N	\N	f	2025-10-20 22:31:29.749784+00
20	\N	\N	gps	gps	\N	VARCHAR(255)	f	2025-10-20 22:31:29.749784+00
21	\N	\N	camera	camera	\N	VARCHAR(255)	f	2025-10-20 22:31:29.749784+00
22	\N	\N	dynamic-table	dynamic-table	\N	\N	f	2025-10-20 22:31:29.749784+00
23	\N	\N	select-search	select-search	\N	VARCHAR(255)	f	2025-10-20 22:31:29.749784+00
\.


--
-- Data for Name: email_templates; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.email_templates (template_id, template_code, template_name, description, category, org_id, group_id, branch_id, department_id, subject_template, html_body, text_body, variables, required_variables, from_name, from_email, reply_to_email, cc_emails, bcc_emails, is_active, version, is_default, priority, created_at, updated_at, created_by, updated_by, isdeleted, deleted_at, deleted_by) FROM stdin;
019a03bf-a01c-7957-850a-f0b7cb26d8e0	payment_reminder_7_days_before	Payment Reminder - 7 Days Before Due	Friendly advance notice 7-10 days before invoice due date	payment_reminders	\N	\N	\N	\N	Upcoming Payment Due: Invoice {{invoice_number}}	<!DOCTYPE html>\n<html>\n<head>\n    <meta charset="UTF-8">\n    <meta name="viewport" content="width=device-width, initial-scale=1.0">\n    <title>Payment Reminder</title>\n    <style>\n        body { font-family: Arial, sans-serif; line-height: 1.6; color: #333; margin: 0; padding: 0; background-color: #f4f4f4; }\n        .container { max-width: 600px; margin: 20px auto; background: #ffffff; border-radius: 8px; overflow: hidden; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }\n        .header { background: #4CAF50; color: #ffffff; padding: 30px; text-align: center; }\n        .content { padding: 30px; }\n        .invoice-details { background: #f9f9f9; padding: 20px; border-radius: 5px; margin: 20px 0; }\n        .invoice-details table { width: 100%; }\n        .invoice-details td { padding: 8px 0; }\n        .invoice-details td:first-child { font-weight: bold; width: 40%; }\n        .amount { font-size: 24px; color: #4CAF50; font-weight: bold; }\n        .button { display: inline-block; padding: 12px 30px; background: #4CAF50; color: #ffffff; text-decoration: none; border-radius: 5px; margin: 20px 0; }\n        .button:hover { background: #45a049; }\n        .footer { background: #f4f4f4; padding: 20px; text-align: center; font-size: 12px; color: #666; }\n    </style>\n</head>\n<body>\n    <div class="container">\n        <div class="header">\n            <h1>Payment Reminder</h1>\n        </div>\n        <div class="content">\n            <p>Dear {{customer_name}},</p>\n            \n            <p>This is a friendly reminder that your invoice will be due soon. We wanted to give you advance notice so you can prepare for payment.</p>\n            \n            <div class="invoice-details">\n                <table>\n                    <tr>\n                        <td>Invoice Number:</td>\n                        <td><strong>{{invoice_number}}</strong></td>\n                    </tr>\n                    <tr>\n                        <td>Amount Due:</td>\n                        <td class="amount">{{currency_symbol}}{{amount_due}}</td>\n                    </tr>\n                    <tr>\n                        <td>Due Date:</td>\n                        <td><strong>{{due_date}}</strong></td>\n                    </tr>\n                    <tr>\n                        <td>Days Until Due:</td>\n                        <td>{{days_until_due}} days</td>\n                    </tr>\n                </table>\n            </div>\n            \n            <p>You can make payment at your convenience using the link below:</p>\n            \n            <center>\n                <a href="{{payment_link}}" class="button">View Invoice & Pay Now</a>\n            </center>\n            \n            <p>If you have any questions about this invoice or need to discuss payment arrangements, please don't hesitate to contact us.</p>\n            \n            <p>Thank you for your business!</p>\n            \n            <p>Best regards,<br>\n            {{company_name}}<br>\n            {{company_phone}}<br>\n            {{company_email}}</p>\n        </div>\n        <div class="footer">\n            <p>This is an automated reminder. Please do not reply to this email.</p>\n            <p>If you have already made this payment, please disregard this notice.</p>\n            <p><a href="{{opt_out_link}}">Opt out of payment reminders</a></p>\n        </div>\n    </div>\n    <img src="{{tracking_pixel_url}}" width="1" height="1" alt="" />\n</body>\n</html>	Dear {{customer_name}},\n\nThis is a friendly reminder that your invoice will be due soon.\n\nInvoice Details:\n- Invoice Number: {{invoice_number}}\n- Amount Due: {{currency_symbol}}{{amount_due}}\n- Due Date: {{due_date}}\n- Days Until Due: {{days_until_due}} days\n\nYou can view your invoice and make payment here:\n{{payment_link}}\n\nIf you have any questions, please contact us.\n\nThank you for your business!\n\nBest regards,\n{{company_name}}\n{{company_phone}}\n{{company_email}}\n\n---\nThis is an automated reminder. If you have already made this payment, please disregard this notice.\nOpt out: {{opt_out_link}}	{"due_date": "Invoice due date", "amount_due": "Outstanding amount", "company_name": "Your company name", "opt_out_link": "Unsubscribe URL", "payment_link": "URL to payment page", "company_email": "Your email", "company_phone": "Your phone number", "customer_name": "Customer full name", "days_until_due": "Days remaining until due", "invoice_number": "Invoice identifier", "currency_symbol": "Currency symbol", "tracking_pixel_url": "Open tracking pixel"}	{customer_name,invoice_number,amount_due,due_date,payment_link}	\N	\N	\N	\N	\N	t	1	t	100	2025-10-20 22:31:21.37204	2025-10-20 22:31:21.37204	\N	\N	f	\N	\N
019a03bf-a02d-7535-a5ee-e004545dab78	payment_reminder_due_date	Payment Reminder - Due Date	Urgent reminder sent on or near the invoice due date	payment_reminders	\N	\N	\N	\N	URGENT: Payment Due Today - Invoice {{invoice_number}}	<!DOCTYPE html>\n<html>\n<head>\n    <meta charset="UTF-8">\n    <meta name="viewport" content="width=device-width, initial-scale=1.0">\n    <title>Payment Due Today</title>\n    <style>\n        body { font-family: Arial, sans-serif; line-height: 1.6; color: #333; margin: 0; padding: 0; background-color: #f4f4f4; }\n        .container { max-width: 600px; margin: 20px auto; background: #ffffff; border-radius: 8px; overflow: hidden; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }\n        .header { background: #FF9800; color: #ffffff; padding: 30px; text-align: center; }\n        .urgent-badge { background: #FF5722; color: white; padding: 5px 15px; border-radius: 20px; display: inline-block; margin-bottom: 10px; }\n        .content { padding: 30px; }\n        .invoice-details { background: #fff3e0; padding: 20px; border-radius: 5px; margin: 20px 0; border-left: 4px solid #FF9800; }\n        .invoice-details table { width: 100%; }\n        .invoice-details td { padding: 8px 0; }\n        .invoice-details td:first-child { font-weight: bold; width: 40%; }\n        .amount { font-size: 28px; color: #FF5722; font-weight: bold; }\n        .button { display: inline-block; padding: 15px 40px; background: #FF5722; color: #ffffff; text-decoration: none; border-radius: 5px; margin: 20px 0; font-weight: bold; }\n        .button:hover { background: #E64A19; }\n        .footer { background: #f4f4f4; padding: 20px; text-align: center; font-size: 12px; color: #666; }\n    </style>\n</head>\n<body>\n    <div class="container">\n        <div class="header">\n            <span class="urgent-badge">⚠️ PAYMENT DUE TODAY</span>\n            <h1>Payment Reminder</h1>\n        </div>\n        <div class="content">\n            <p>Dear {{customer_name}},</p>\n            \n            <p><strong>This is an urgent reminder that your invoice payment is due today.</strong></p>\n            \n            <div class="invoice-details">\n                <table>\n                    <tr>\n                        <td>Invoice Number:</td>\n                        <td><strong>{{invoice_number}}</strong></td>\n                    </tr>\n                    <tr>\n                        <td>Amount Due:</td>\n                        <td class="amount">{{currency_symbol}}{{amount_due}}</td>\n                    </tr>\n                    <tr>\n                        <td>Due Date:</td>\n                        <td><strong>{{due_date}}</strong></td>\n                    </tr>\n                </table>\n            </div>\n            \n            <p>To avoid late fees and maintain your account in good standing, please make payment immediately using the button below:</p>\n            \n            <center>\n                <a href="{{payment_link}}" class="button">PAY NOW</a>\n            </center>\n            \n            <p>If you have already made this payment, thank you! Please disregard this reminder.</p>\n            \n            <p>If you are experiencing difficulties making payment, please contact us immediately to discuss payment arrangements.</p>\n            \n            <p>Best regards,<br>\n            {{company_name}}<br>\n            {{company_phone}}<br>\n            {{company_email}}</p>\n        </div>\n        <div class="footer">\n            <p>This is an automated reminder. Please do not reply to this email.</p>\n            <p><a href="{{opt_out_link}}">Opt out of payment reminders</a></p>\n        </div>\n    </div>\n    <img src="{{tracking_pixel_url}}" width="1" height="1" alt="" />\n</body>\n</html>	URGENT: PAYMENT DUE TODAY\n\nDear {{customer_name}},\n\nThis is an urgent reminder that your invoice payment is due today.\n\nInvoice Details:\n- Invoice Number: {{invoice_number}}\n- Amount Due: {{currency_symbol}}{{amount_due}}\n- Due Date: {{due_date}}\n\nPlease make payment immediately to avoid late fees:\n{{payment_link}}\n\nIf you have already paid, please disregard this notice.\nIf you need to discuss payment arrangements, please contact us immediately.\n\nBest regards,\n{{company_name}}\n{{company_phone}}\n{{company_email}}\n\n---\nOpt out: {{opt_out_link}}	{"due_date": "Invoice due date", "amount_due": "Outstanding amount", "company_name": "Your company name", "opt_out_link": "Unsubscribe URL", "payment_link": "URL to payment page", "company_email": "Your email", "company_phone": "Your phone number", "customer_name": "Customer full name", "invoice_number": "Invoice identifier", "currency_symbol": "Currency symbol", "tracking_pixel_url": "Open tracking pixel"}	{customer_name,invoice_number,amount_due,due_date,payment_link}	\N	\N	\N	\N	\N	t	1	t	100	2025-10-20 22:31:21.388251	2025-10-20 22:31:21.388251	\N	\N	f	\N	\N
019a03bf-a03b-7b2f-8d60-12d1bdb636e1	payment_reminder_3_days_after	Payment Reminder - 3 Days Overdue	First overdue notice, 3-5 days past due	payment_reminders	\N	\N	\N	\N	OVERDUE: Payment Required - Invoice {{invoice_number}}	<!DOCTYPE html>\n<html>\n<head>\n    <meta charset="UTF-8">\n    <meta name="viewport" content="width=device-width, initial-scale=1.0">\n    <title>Overdue Payment Notice</title>\n    <style>\n        body { font-family: Arial, sans-serif; line-height: 1.6; color: #333; margin: 0; padding: 0; background-color: #f4f4f4; }\n        .container { max-width: 600px; margin: 20px auto; background: #ffffff; border-radius: 8px; overflow: hidden; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }\n        .header { background: #F44336; color: #ffffff; padding: 30px; text-align: center; }\n        .overdue-badge { background: #D32F2F; color: white; padding: 5px 15px; border-radius: 20px; display: inline-block; margin-bottom: 10px; font-weight: bold; }\n        .content { padding: 30px; }\n        .invoice-details { background: #ffebee; padding: 20px; border-radius: 5px; margin: 20px 0; border-left: 4px solid #F44336; }\n        .invoice-details table { width: 100%; }\n        .invoice-details td { padding: 8px 0; }\n        .invoice-details td:first-child { font-weight: bold; width: 40%; }\n        .amount { font-size: 28px; color: #D32F2F; font-weight: bold; }\n        .warning-box { background: #fff9c4; border-left: 4px solid #FBC02D; padding: 15px; margin: 20px 0; }\n        .button { display: inline-block; padding: 15px 40px; background: #D32F2F; color: #ffffff; text-decoration: none; border-radius: 5px; margin: 20px 0; font-weight: bold; }\n        .button:hover { background: #B71C1C; }\n        .footer { background: #f4f4f4; padding: 20px; text-align: center; font-size: 12px; color: #666; }\n    </style>\n</head>\n<body>\n    <div class="container">\n        <div class="header">\n            <span class="overdue-badge">❌ PAYMENT OVERDUE</span>\n            <h1>Overdue Payment Notice</h1>\n        </div>\n        <div class="content">\n            <p>Dear {{customer_name}},</p>\n            \n            <p><strong>Our records indicate that your payment is now overdue.</strong></p>\n            \n            <div class="invoice-details">\n                <table>\n                    <tr>\n                        <td>Invoice Number:</td>\n                        <td><strong>{{invoice_number}}</strong></td>\n                    </tr>\n                    <tr>\n                        <td>Amount Due:</td>\n                        <td class="amount">{{currency_symbol}}{{amount_due}}</td>\n                    </tr>\n                    <tr>\n                        <td>Original Due Date:</td>\n                        <td><strong>{{due_date}}</strong></td>\n                    </tr>\n                    <tr>\n                        <td>Days Overdue:</td>\n                        <td><strong style="color: #D32F2F;">{{days_overdue}} days</strong></td>\n                    </tr>\n                </table>\n            </div>\n            \n            <div class="warning-box">\n                <strong>⚠️ Important:</strong> Late fees may apply. Please remit payment immediately to avoid additional charges and service interruption.\n            </div>\n            \n            <p>Please make payment now to bring your account current:</p>\n            \n            <center>\n                <a href="{{payment_link}}" class="button">PAY OVERDUE INVOICE NOW</a>\n            </center>\n            \n            <p>If you have recently made this payment, please accept our apologies and disregard this notice.</p>\n            \n            <p>If you are unable to pay the full amount at this time, please contact us immediately to discuss payment options. We are here to work with you.</p>\n            \n            <p>Best regards,<br>\n            {{company_name}}<br>\n            {{company_phone}}<br>\n            {{company_email}}</p>\n        </div>\n        <div class="footer">\n            <p>This is an automated reminder. Please do not reply to this email.</p>\n            <p><a href="{{opt_out_link}}">Opt out of payment reminders</a></p>\n        </div>\n    </div>\n    <img src="{{tracking_pixel_url}}" width="1" height="1" alt="" />\n</body>\n</html>	OVERDUE PAYMENT NOTICE\n\nDear {{customer_name}},\n\nOur records indicate that your payment is now OVERDUE.\n\nInvoice Details:\n- Invoice Number: {{invoice_number}}\n- Amount Due: {{currency_symbol}}{{amount_due}}\n- Original Due Date: {{due_date}}\n- Days Overdue: {{days_overdue}} days\n\n⚠️ IMPORTANT: Late fees may apply. Please remit payment immediately.\n\nPay now: {{payment_link}}\n\nIf you recently made this payment, please disregard this notice.\nIf you need payment arrangements, please contact us immediately.\n\nBest regards,\n{{company_name}}\n{{company_phone}}\n{{company_email}}\n\n---\nOpt out: {{opt_out_link}}	{"due_date": "Original due date", "amount_due": "Outstanding amount", "company_name": "Your company name", "days_overdue": "Number of days overdue", "opt_out_link": "Unsubscribe URL", "payment_link": "URL to payment page", "company_email": "Your email", "company_phone": "Your phone number", "customer_name": "Customer full name", "invoice_number": "Invoice identifier", "currency_symbol": "Currency symbol", "tracking_pixel_url": "Open tracking pixel"}	{customer_name,invoice_number,amount_due,due_date,days_overdue,payment_link}	\N	\N	\N	\N	\N	t	1	t	100	2025-10-20 22:31:21.402805	2025-10-20 22:31:21.402805	\N	\N	f	\N	\N
019a03bf-a04b-71d5-87b4-518164e2866c	payment_reminder_7_days_after	Payment Reminder - 7 Days Overdue	Second overdue notice, 7-10 days past due	payment_reminders	\N	\N	\N	\N	URGENT: Overdue Invoice {{invoice_number}} - Immediate Action Required	<!DOCTYPE html>\n<html>\n<head>\n    <meta charset="UTF-8">\n    <meta name="viewport" content="width=device-width, initial-scale=1.0">\n    <title>Urgent Overdue Payment Notice</title>\n    <style>\n        body { font-family: Arial, sans-serif; line-height: 1.6; color: #333; margin: 0; padding: 0; background-color: #f4f4f4; }\n        .container { max-width: 600px; margin: 20px auto; background: #ffffff; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 6px rgba(0,0,0,0.2); }\n        .header { background: #D32F2F; color: #ffffff; padding: 30px; text-align: center; }\n        .urgent-badge { background: #B71C1C; color: white; padding: 8px 20px; border-radius: 20px; display: inline-block; margin-bottom: 10px; font-weight: bold; animation: pulse 2s infinite; }\n        @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.7; } }\n        .content { padding: 30px; }\n        .invoice-details { background: #ffcdd2; padding: 20px; border-radius: 5px; margin: 20px 0; border: 2px solid #D32F2F; }\n        .invoice-details table { width: 100%; }\n        .invoice-details td { padding: 10px 0; }\n        .invoice-details td:first-child { font-weight: bold; width: 40%; }\n        .amount { font-size: 32px; color: #B71C1C; font-weight: bold; }\n        .warning-box { background: #ffebee; border: 2px solid #D32F2F; padding: 20px; margin: 20px 0; border-radius: 5px; }\n        .button { display: inline-block; padding: 18px 50px; background: #B71C1C; color: #ffffff; text-decoration: none; border-radius: 5px; margin: 20px 0; font-weight: bold; font-size: 16px; }\n        .button:hover { background: #7f0000; }\n        .consequences { background: #fff3e0; padding: 15px; margin: 20px 0; border-left: 4px solid #FF6F00; }\n        .footer { background: #f4f4f4; padding: 20px; text-align: center; font-size: 12px; color: #666; }\n    </style>\n</head>\n<body>\n    <div class="container">\n        <div class="header">\n            <span class="urgent-badge">🚨 URGENT - IMMEDIATE ACTION REQUIRED</span>\n            <h1>Overdue Payment Notice</h1>\n        </div>\n        <div class="content">\n            <p>Dear {{customer_name}},</p>\n            \n            <p><strong>This is our second notice regarding your seriously overdue invoice. Your account requires immediate attention.</strong></p>\n            \n            <div class="invoice-details">\n                <table>\n                    <tr>\n                        <td>Invoice Number:</td>\n                        <td><strong>{{invoice_number}}</strong></td>\n                    </tr>\n                    <tr>\n                        <td>Amount Due:</td>\n                        <td class="amount">{{currency_symbol}}{{amount_due}}</td>\n                    </tr>\n                    <tr>\n                        <td>Original Due Date:</td>\n                        <td><strong>{{due_date}}</strong></td>\n                    </tr>\n                    <tr>\n                        <td>Days Overdue:</td>\n                        <td><strong style="color: #B71C1C; font-size: 18px;">{{days_overdue}} days</strong></td>\n                    </tr>\n                    <tr>\n                        <td>Late Fees:</td>\n                        <td><strong style="color: #D32F2F;">{{currency_symbol}}{{late_fees}}</strong></td>\n                    </tr>\n                    <tr>\n                        <td>Total Now Due:</td>\n                        <td class="amount">{{currency_symbol}}{{total_with_fees}}</td>\n                    </tr>\n                </table>\n            </div>\n            \n            <div class="warning-box">\n                <h3 style="margin-top: 0; color: #D32F2F;">⚠️ URGENT NOTICE</h3>\n                <p>Payment must be received within 48 hours to avoid:</p>\n                <ul>\n                    <li>Additional late fees</li>\n                    <li>Service suspension</li>\n                    <li>Collection agency referral</li>\n                    <li>Credit reporting</li>\n                </ul>\n            </div>\n            \n            <p><strong>This is your final opportunity to resolve this matter before escalation.</strong></p>\n            \n            <center>\n                <a href="{{payment_link}}" class="button">PAY IMMEDIATELY</a>\n            </center>\n            \n            <div class="consequences">\n                <strong>If payment is not received:</strong> Your account will be placed on hold, and we will be forced to pursue collection through legal means.\n            </div>\n            \n            <p>If you have already made payment, please provide proof of payment immediately by replying to this email or calling us.</p>\n            \n            <p>If you are experiencing financial difficulties, contact us TODAY to arrange a payment plan. We must hear from you within 48 hours.</p>\n            \n            <p>Accounts Department<br>\n            {{company_name}}<br>\n            {{company_phone}}<br>\n            {{company_email}}</p>\n        </div>\n        <div class="footer">\n            <p>This is an official notice. Immediate action is required.</p>\n            <p><a href="{{opt_out_link}}">Opt out of payment reminders</a></p>\n        </div>\n    </div>\n    <img src="{{tracking_pixel_url}}" width="1" height="1" alt="" />\n</body>\n</html>	🚨 URGENT - IMMEDIATE ACTION REQUIRED 🚨\n\nDear {{customer_name}},\n\nThis is our SECOND NOTICE regarding your seriously overdue invoice.\n\nInvoice Details:\n- Invoice Number: {{invoice_number}}\n- Original Amount: {{currency_symbol}}{{amount_due}}\n- Original Due Date: {{due_date}}\n- Days Overdue: {{days_overdue}} days\n- Late Fees: {{currency_symbol}}{{late_fees}}\n- TOTAL NOW DUE: {{currency_symbol}}{{total_with_fees}}\n\n⚠️ URGENT: Payment must be received within 48 hours to avoid:\n- Additional late fees\n- Service suspension\n- Collection agency referral\n- Credit reporting\n\nThis is your final opportunity before escalation.\n\nPAY IMMEDIATELY: {{payment_link}}\n\nIf payment has been made, provide proof NOW.\nIf experiencing difficulties, contact us TODAY to arrange payment plan.\n\nYou MUST respond within 48 hours.\n\nAccounts Department\n{{company_name}}\n{{company_phone}}\n{{company_email}}\n\n---\nOpt out: {{opt_out_link}}	{"due_date": "Original due date", "late_fees": "Late fee amount", "amount_due": "Original amount", "company_name": "Your company name", "days_overdue": "Number of days overdue", "opt_out_link": "Unsubscribe URL", "payment_link": "URL to payment page", "company_email": "Your email", "company_phone": "Your phone number", "customer_name": "Customer full name", "invoice_number": "Invoice identifier", "currency_symbol": "Currency symbol", "total_with_fees": "Total including late fees", "tracking_pixel_url": "Open tracking pixel"}	{customer_name,invoice_number,amount_due,due_date,days_overdue,payment_link}	\N	\N	\N	\N	\N	t	1	t	100	2025-10-20 22:31:21.418398	2025-10-20 22:31:21.418398	\N	\N	f	\N	\N
019a03bf-a05d-7cf7-9889-a3666c29ce72	payment_reminder_30_days_after	Payment Reminder - Final Notice	Final notice before collections, 30+ days past due	payment_reminders	\N	\N	\N	\N	FINAL NOTICE: Invoice {{invoice_number}} - Collections Pending	<!DOCTYPE html>\n<html>\n<head>\n    <meta charset="UTF-8">\n    <meta name="viewport" content="width=device-width, initial-scale=1.0">\n    <title>Final Notice Before Collections</title>\n    <style>\n        body { font-family: Arial, sans-serif; line-height: 1.6; color: #333; margin: 0; padding: 0; background-color: #f4f4f4; }\n        .container { max-width: 600px; margin: 20px auto; background: #ffffff; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 8px rgba(0,0,0,0.3); border: 3px solid #B71C1C; }\n        .header { background: #B71C1C; color: #ffffff; padding: 30px; text-align: center; }\n        .final-notice { background: #7f0000; color: white; padding: 10px 25px; border-radius: 25px; display: inline-block; margin-bottom: 15px; font-weight: bold; font-size: 18px; }\n        .content { padding: 30px; }\n        .invoice-details { background: #ffcdd2; padding: 25px; border-radius: 5px; margin: 20px 0; border: 3px solid #B71C1C; }\n        .invoice-details table { width: 100%; }\n        .invoice-details td { padding: 12px 0; font-size: 16px; }\n        .invoice-details td:first-child { font-weight: bold; width: 45%; }\n        .amount { font-size: 36px; color: #7f0000; font-weight: bold; }\n        .critical-box { background: #7f0000; color: white; padding: 25px; margin: 20px 0; border-radius: 5px; }\n        .button { display: inline-block; padding: 20px 60px; background: #7f0000; color: #ffffff; text-decoration: none; border-radius: 5px; margin: 20px 0; font-weight: bold; font-size: 18px; }\n        .button:hover { background: #4a0000; }\n        .legal-notice { background: #ffebee; border: 2px solid #B71C1C; padding: 20px; margin: 20px 0; font-size: 14px; }\n        .footer { background: #f4f4f4; padding: 20px; text-align: center; font-size: 12px; color: #666; }\n    </style>\n</head>\n<body>\n    <div class="container">\n        <div class="header">\n            <span class="final-notice">⛔ FINAL NOTICE BEFORE LEGAL ACTION</span>\n            <h1>Account in Default</h1>\n        </div>\n        <div class="content">\n            <p>Dear {{customer_name}},</p>\n            \n            <p><strong>This is your FINAL NOTICE. Your account is seriously delinquent and will be forwarded to our collection agency if payment is not received within 72 hours.</strong></p>\n            \n            <div class="invoice-details">\n                <table>\n                    <tr>\n                        <td>Invoice Number:</td>\n                        <td><strong>{{invoice_number}}</strong></td>\n                    </tr>\n                    <tr>\n                        <td>Original Amount:</td>\n                        <td><strong>{{currency_symbol}}{{amount_due}}</strong></td>\n                    </tr>\n                    <tr>\n                        <td>Original Due Date:</td>\n                        <td><strong>{{due_date}}</strong></td>\n                    </tr>\n                    <tr>\n                        <td>Days Overdue:</td>\n                        <td><strong style="color: #7f0000; font-size: 20px;">{{days_overdue}} days</strong></td>\n                    </tr>\n                    <tr>\n                        <td>Accumulated Late Fees:</td>\n                        <td><strong style="color: #B71C1C;">{{currency_symbol}}{{late_fees}}</strong></td>\n                    </tr>\n                    <tr>\n                        <td>Collection Fees:</td>\n                        <td><strong style="color: #B71C1C;">{{currency_symbol}}{{collection_fees}}</strong></td>\n                    </tr>\n                    <tr style="border-top: 3px solid #B71C1C;">\n                        <td>TOTAL AMOUNT DUE:</td>\n                        <td class="amount">{{currency_symbol}}{{total_with_fees}}</td>\n                    </tr>\n                </table>\n            </div>\n            \n            <div class="critical-box">\n                <h3 style="margin-top: 0;">🚨 CRITICAL: PAYMENT REQUIRED WITHIN 72 HOURS</h3>\n                <p style="font-size: 16px; margin: 10px 0;">Failure to remit payment will result in:</p>\n                <ul style="font-size: 16px;">\n                    <li>Immediate referral to collection agency</li>\n                    <li>Negative credit reporting</li>\n                    <li>Legal action and court proceedings</li>\n                    <li>Additional legal and collection fees</li>\n                    <li>Permanent termination of services</li>\n                </ul>\n            </div>\n            \n            <p style="font-size: 18px; font-weight: bold; color: #B71C1C;">DO NOT IGNORE THIS NOTICE. IMMEDIATE PAYMENT IS REQUIRED.</p>\n            \n            <center>\n                <a href="{{payment_link}}" class="button">PAY NOW TO AVOID COLLECTIONS</a>\n            </center>\n            \n            <div class="legal-notice">\n                <h4 style="margin-top: 0;">LEGAL NOTICE</h4>\n                <p>This is a formal demand for payment. If payment is not received by {{final_deadline}}, this account will be:</p>\n                <ol>\n                    <li>Referred to {{collection_agency}} for collection proceedings</li>\n                    <li>Reported to credit bureaus, negatively impacting your credit score</li>\n                    <li>Subject to legal action, including court costs and attorney fees</li>\n                </ol>\n                <p><strong>Total fees and costs may exceed the original invoice amount.</strong></p>\n            </div>\n            \n            <p>If you dispute this debt or require verification, you must contact us in writing within 30 days as required by the Fair Debt Collection Practices Act.</p>\n            \n            <p>If you have already made payment, provide immediate proof by calling {{company_phone}} or emailing proof to {{company_email}}.</p>\n            \n            <p><strong>This is your last chance to resolve this matter before legal action.</strong></p>\n            \n            <p>Collections Department<br>\n            {{company_name}}<br>\n            {{company_phone}} (URGENT)<br>\n            {{company_email}}</p>\n        </div>\n        <div class="footer">\n            <p><strong>FINAL NOTICE - LEGAL ACTION PENDING</strong></p>\n            <p>This communication is from a debt collector. This is an attempt to collect a debt.</p>\n        </div>\n    </div>\n    <img src="{{tracking_pixel_url}}" width="1" height="1" alt="" />\n</body>\n</html>	⛔ FINAL NOTICE BEFORE LEGAL ACTION ⛔\n\nDear {{customer_name}},\n\nThis is your FINAL NOTICE. Your account is seriously delinquent.\n\nACCOUNT IN DEFAULT\n-------------------\nInvoice Number: {{invoice_number}}\nOriginal Amount: {{currency_symbol}}{{amount_due}}\nOriginal Due Date: {{due_date}}\nDays Overdue: {{days_overdue}} days\nLate Fees: {{currency_symbol}}{{late_fees}}\nCollection Fees: {{currency_symbol}}{{collection_fees}}\n-------------------\nTOTAL AMOUNT DUE: {{currency_symbol}}{{total_with_fees}}\n\n🚨 PAYMENT REQUIRED WITHIN 72 HOURS 🚨\n\nFailure to pay will result in:\n- Immediate collection agency referral\n- Negative credit reporting\n- Legal action and court proceedings\n- Additional legal fees\n- Service termination\n\nLEGAL NOTICE:\nIf payment is not received by {{final_deadline}}, this account will be:\n1. Referred to {{collection_agency}}\n2. Reported to credit bureaus\n3. Subject to legal action\n\nTotal fees may exceed original amount.\n\nDO NOT IGNORE THIS NOTICE.\n\nPAY NOW: {{payment_link}}\n\nIf payment made, provide immediate proof.\nIf disputed, contact us in writing within 30 days (FDCPA).\n\nLAST CHANCE TO AVOID LEGAL ACTION.\n\nCollections Department\n{{company_name}}\n{{company_phone}} (URGENT)\n{{company_email}}\n\n---\nFINAL NOTICE - LEGAL ACTION PENDING\nThis is from a debt collector attempting to collect a debt.\n	{"due_date": "Original due date", "late_fees": "Accumulated late fees", "amount_due": "Original amount", "company_name": "Your company name", "days_overdue": "Number of days overdue", "payment_link": "URL to payment page", "company_email": "Your email", "company_phone": "Your phone number", "customer_name": "Customer full name", "final_deadline": "Deadline before collections", "invoice_number": "Invoice identifier", "collection_fees": "Collection fees", "currency_symbol": "Currency symbol", "total_with_fees": "Total including all fees", "collection_agency": "Collection agency name", "tracking_pixel_url": "Open tracking pixel"}	{customer_name,invoice_number,amount_due,due_date,days_overdue,final_deadline,payment_link}	\N	\N	\N	\N	\N	t	1	t	100	2025-10-20 22:31:21.436468	2025-10-20 22:31:21.436468	\N	\N	f	\N	\N
\.


--
-- Data for Name: employee_authorized_locations; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.employee_authorized_locations (id, employee_id, location_id, start_date, end_date, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: employee_certificates; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.employee_certificates (id, employee_id, cert_name, file_path, issued_date, expiry_date, tenant_id, branch_id, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: employee_competencies; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.employee_competencies (id, employee_id, competency_id, self_rating, manager_rating, updatedat, isdeleted) FROM stdin;
\.


--
-- Data for Name: employee_custom_fields; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.employee_custom_fields (id, tenant_id, branch_id, field_name, field_type, is_required, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: employee_custom_values; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.employee_custom_values (id, employee_id, field_id, field_value, tenant_id, branch_id, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: employee_documents; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.employee_documents (id, employee_id, doc_type, file_name, file_path, signed_at, uploaded_by, uploaded_at, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: employee_exits; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.employee_exits (id, tenant_id, branch_id, employee_id, resignation_date, status, final_pay, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: employee_items; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.employee_items (id, employee_id, item_name, is_ppe, expiry_date, assignee_user_id, assignee_group_id, assigned_at, due_date, completed_at, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: employee_location_changes; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.employee_location_changes (id, employee_id, stations, action, effective_date, processed_at) FROM stdin;
\.


--
-- Data for Name: employee_shifts; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.employee_shifts (id, employee_id, shift_id, shift_date, start_time, end_time, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: employee_types; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.employee_types (id, type, default_items, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: employees2locations; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.employees2locations (id, employee_id, location_id, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: employees2users; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.employees2users (id, employee_id, user_id, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: event_categories; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.event_categories (id, name, description, tenant_id, branch_id, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: exit_approvals; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.exit_approvals (id, tenant_id, branch_id, exit_id, approver_id, level, status, approved_at, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: exit_clearances; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.exit_clearances (id, tenant_id, branch_id, exit_id, item, returned, access_revoked, notes, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: exit_feedback; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.exit_feedback (id, tenant_id, branch_id, exit_interview_id, question, response, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: exit_interviews; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.exit_interviews (id, tenant_id, branch_id, exit_id, interviewer_id, scheduled_at, completed_at, notes, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: expense_types; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.expense_types (id, name, description, tenant_id, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: expenses; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.expenses (expense_id, reference_table, reference_id, date, vendor_id, invoice_number, amount, description, status, comments, approved, billed_to_client, added_to_cost_schedule, billable, user_id, document_ids, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: feedback_notes; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.feedback_notes (id, from_user_id, to_user_id, request_id, note, sentiment_score, is_private, moderated, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: feedback_requests; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.feedback_requests (id, requestor_id, target_id, type, anonymous, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: field_definitions; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.field_definitions (id, form_id, tenant_id, branch_id, label, field_name, field_type, options, is_required, order_index, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: final_settlements; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.final_settlements (id, tenant_id, branch_id, exit_id, outstanding_salary, unused_leave, deductions, net_amount, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: fishbone_diagrams; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.fishbone_diagrams (id, tenant_id, branch_id, problem, categories, diagram_data, isdeleted, updatedat) FROM stdin;
1	\N	\N	Low Water Pressure in Urban Areas	[{"name": "Infrastructure", "causes": ["Aging pipes", "Undersized mains", "Leaks in distribution lines"]}, {"name": "Demand Surge", "causes": ["Population growth", "Unauthorized connections"]}, {"name": "Maintenance", "causes": ["Infrequent valve flushing", "Inadequate pressure zoning"]}, {"name": "Energy Supply", "causes": ["Pump outages", "Fluctuating voltage"]}]	{"problem": "Low Water Pressure in Urban Areas", "categories": [{"name": "Infrastructure", "color": "#3366cc", "causes": [{"text": "Aging pipes", "color": "#333", "comment": "Over 30 years old"}, {"text": "Undersized mains", "color": "#333", "comment": "Can't handle peak flow"}, {"text": "Leaks in distribution lines", "color": "#333", "comment": "Common in zones 4, 6"}], "comment": "Focus on pipe upgrades"}, {"name": "Demand Surge", "color": "#ff9900", "causes": [{"text": "Population growth", "color": "#333"}, {"text": "Unauthorized connections", "color": "#cc0000", "comment": "Found in squatter areas"}], "comment": "Urban population growth outpacing planning"}, {"name": "Maintenance", "color": "#109618", "causes": [{"text": "Infrequent valve flushing", "color": "#333"}, {"text": "Inadequate pressure zoning", "color": "#333"}]}, {"name": "Energy Supply", "color": "#990099", "causes": [{"text": "Pump outages", "color": "#333"}, {"text": "Fluctuating voltage", "color": "#333"}]}]}	f	2025-10-20 22:31:30.698136+00
2	\N	\N	High Water Loss (Non-Revenue Water)	[{"name": "Metering", "causes": ["Inaccurate customer meters", "Missing bulk meters"]}, {"name": "Illegal Use", "causes": ["Bypassed meters", "Unauthorized hydrants"]}, {"name": "Pipeline Integrity", "causes": ["Undetected leaks", "Old pipe materials"]}, {"name": "Monitoring", "causes": ["Poor SCADA integration", "Infrequent audits"]}]	{"problem": "High Water Loss (Non-Revenue Water)", "categories": [{"name": "Metering", "color": "#1f77b4", "causes": [{"text": "Inaccurate customer meters", "comment": "Affects billing accuracy"}, {"text": "Missing bulk meters"}]}, {"name": "Illegal Use", "color": "#d62728", "causes": [{"text": "Bypassed meters"}, {"text": "Unauthorized hydrants"}]}, {"name": "Pipeline Integrity", "color": "#2ca02c", "causes": [{"text": "Undetected leaks", "comment": "Leak detection overdue"}, {"text": "Old pipe materials"}]}, {"name": "Monitoring", "color": "#ff7f0e", "causes": [{"text": "Poor SCADA integration"}, {"text": "Infrequent audits"}]}]}	f	2025-10-20 22:31:30.698136+00
3	\N	\N	Delayed Response to Water Complaints	[{"name": "Customer Service", "causes": ["Long call wait times", "Poor ticket routing"]}, {"name": "Field Operations", "causes": ["Limited repair crews", "Incomplete work logs"]}, {"name": "Communication", "causes": ["No SMS alerts", "Delayed internal escalation"]}, {"name": "Technology", "causes": ["Outdated ticketing system", "No real-time dashboard"]}]	{"problem": "Delayed Response to Water Complaints", "categories": [{"name": "Customer Service", "color": "#8c564b", "causes": [{"text": "Long call wait times"}, {"text": "Poor ticket routing"}]}, {"name": "Field Operations", "color": "#e377c2", "causes": [{"text": "Limited repair crews"}, {"text": "Incomplete work logs"}]}, {"name": "Communication", "color": "#7f7f7f", "causes": [{"text": "No SMS alerts"}, {"text": "Delayed internal escalation"}]}, {"name": "Technology", "color": "#bcbd22", "causes": [{"text": "Outdated ticketing system"}, {"text": "No real-time dashboard"}]}]}	f	2025-10-20 22:31:30.698136+00
\.


--
-- Data for Name: form_buttons; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.form_buttons (id, form_id, label, action_type, action_payload, order_index, tenant_id, branch_id, isdeleted, updatedat) FROM stdin;
1	96	Open Form	open-form	{"lookupTable":"ohs_inspection_types","lookupField":"inspection_type_id","valueColumn":"id","formColumn":"form_id","prefillFields":["inspection_type_id","location"]}	1	\N	\N	f	2025-10-20 22:31:29.991622+00
2	51	Approve	workflow	\N	1	\N	\N	f	2025-10-20 22:31:30.020856+00
3	51	Reject	workflow	\N	2	\N	\N	f	2025-10-20 22:31:30.020856+00
4	59	Open Form	open-form	{"lookupTable":"ohs_incident_types","lookupField":"classification","valueColumn":"name","formColumn":"form_id","prefillFields":["classification","location","severity"]}	1	\N	\N	f	2025-10-20 22:31:30.03471+00
5	107	Open Form	open-form	{"lookupTable":"safety_incident_types","lookupField":"incident_type","valueColumn":"id","formColumn":"form_id","prefillFields":["incident_type","location"]}	1	\N	\N	f	2025-10-20 22:31:31.524612+00
6	75	Open Form	open-form	{"lookupTable":"risk_assessment_types","lookupField":"risk_assessment_type_id","valueColumn":"id","formColumn":"form_id","prefillFields":["risk_assessment_type_id","location"]}	1	\N	\N	f	2025-10-20 22:31:31.586571+00
7	103	Open Form	open-form	{"lookupTable":"workcom_inspection_types","lookupField":"workcom_inspection_type_id","valueColumn":"id","formColumn":"form_id","prefillFields":["workcom_inspection_type_id","workplace_id","inspection_request_id"]}	1	\N	\N	f	2025-10-20 22:31:31.862772+00
\.


--
-- Data for Name: form_categories; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.form_categories (id, name, description, tenant_id, branch_id, isdeleted, updatedat) FROM stdin;
1	OHS Incident Forms	Incident reporting forms	\N	\N	f	2025-10-20 22:31:30.872477+00
\.


--
-- Data for Name: form_certificates; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.form_certificates (id, form_id, submission_id, template_id, status, issued_at, expiry_date, file_path, tenant_id, branch_id, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: form_definitions; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.form_definitions (id, tenant_id, branch_id, base_form_id, name, description, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: form_submission_reviews; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.form_submission_reviews (id, submission_id, reviewer_id, review_date, status, notes, tenant_id, branch_id, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: form_submission_values; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.form_submission_values (id, submission_id, element_id, tenant_id, branch_id, value, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: form_submissions; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.form_submissions (id, form_id, tenant_id, branch_id, submitted_by, submitted_at, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: form_wizard_steps; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.form_wizard_steps (id, wizard_id, step_number, form_id, condition_field, condition_value, isdeleted, updatedat) FROM stdin;
1	1	1	59	\N	\N	f	2025-10-20 22:31:30.65788+00
2	1	2	13	classification	Property Damage	f	2025-10-20 22:31:30.65788+00
3	1	3	14	classification	Environmental	f	2025-10-20 22:31:30.65788+00
4	1	4	15	classification	Near Miss	f	2025-10-20 22:31:30.65788+00
5	1	5	16	classification	First Aid	f	2025-10-20 22:31:30.65788+00
6	1	6	17	classification	Medical Treatment	f	2025-10-20 22:31:30.65788+00
7	1	7	18	classification	LTI	f	2025-10-20 22:31:30.65788+00
8	1	8	19	classification	Fatality	f	2025-10-20 22:31:30.65788+00
9	1	9	105	classification	Field Incident	f	2025-10-20 22:31:30.65788+00
10	6	1	107	\N	\N	f	2025-10-20 22:31:30.673215+00
11	3	1	96	\N	\N	f	2025-10-20 22:31:30.740911+00
12	5	1	103	\N	\N	f	2025-10-20 22:31:30.761797+00
13	4	1	75	\N	\N	f	2025-10-20 22:31:31.644789+00
14	7	1	110	\N	\N	f	2025-10-20 22:31:32.808512+00
15	7	2	610	\N	\N	f	2025-10-20 22:31:32.808512+00
16	7	3	611	\N	\N	f	2025-10-20 22:31:32.808512+00
17	7	4	613	\N	\N	f	2025-10-20 22:31:32.808512+00
18	7	5	614	\N	\N	f	2025-10-20 22:31:32.808512+00
\.


--
-- Data for Name: form_wizards; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.form_wizards (id, name, description, tenant_id, branch_id, isdeleted, updatedat) FROM stdin;
1	OHS Incident Wizard	Guided incident reporting	\N	\N	f	2025-10-20 22:31:30.608469+00
3	OHS Inspection Wizard	Guided inspection entry	\N	\N	f	2025-10-20 22:31:30.622296+00
5	WorkCOM Inspection Wizard	Guided WorkCOM inspection entry	\N	\N	f	2025-10-20 22:31:30.633995+00
6	Safety Incident Wizard	Guided safety incident entry	\N	\N	f	2025-10-20 22:31:30.645218+00
4	Risk Assessment Wizard	Guided risk assessment entry	\N	\N	f	2025-10-20 22:31:31.633405+00
7	Vendor Onboarding Wizard	Public vendor onboarding wizard sequencing vendor, contact, address and documents	\N	\N	f	2025-10-20 22:31:32.808512+00
\.


--
-- Data for Name: forms; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.forms (id, tenant_id, branch_id, category_id, name, description, mapped_table, on_submit_workflow_id, columns, layout_type, elements, share_scope, share_slug, share_enabled, share_published_at, isdeleted, updatedat) FROM stdin;
100	\N	\N	\N	Workplace Safety Inspection Checklist	Checklist for routine workplace safety inspections	ohs_inspections	\N	1	grid	[{"label": "workplace_id", "type_id": 4, "field_name": "workplace_id", "data_column": "workplace_id", "order_index": 1, "options_table": "workplace_registrations", "options_label_column": "company_name", "options_value_column": "id"}, {"label": "inspection_id", "type_id": 16, "field_name": "inspection_id", "data_column": "inspection_id", "order_index": 2}, {"label": "Emergency Exits Clear", "type_id": 5, "field_name": "emergency_exits", "json_column": "form_data", "order_index": 3}, {"label": "Fire Extinguishers Serviced", "type_id": 5, "field_name": "fire_extinguishers", "json_column": "form_data", "order_index": 4}, {"label": "Walkways Clear", "type_id": 5, "field_name": "walkways_clear", "json_column": "form_data", "order_index": 5}]	none	\N	f	\N	f	2025-10-20 22:31:19.657672+00
108	\N	\N	\N	Occupational Health Services Audit Form	Audit of occupational health services and programs	ohs_inspections	\N	1	grid	[{"label": "workplace_id", "type_id": 4, "field_name": "workplace_id", "data_column": "workplace_id", "order_index": 1, "options_table": "workplace_registrations", "options_label_column": "company_name", "options_value_column": "id"}, {"label": "inspection_id", "type_id": 16, "field_name": "inspection_id", "data_column": "inspection_id", "order_index": 2}, {"label": "Wellness Programs Available", "type_id": 5, "field_name": "wellness_programs", "json_column": "form_data", "order_index": 3}, {"label": "First Aid Kits Stocked", "type_id": 5, "field_name": "first_aid_kits", "json_column": "form_data", "order_index": 4}, {"label": "PPE Provided", "type_id": 5, "field_name": "ppe_provided", "json_column": "form_data", "order_index": 5}, {"label": "Training Records Up To Date", "type_id": 5, "field_name": "training_records", "json_column": "form_data", "order_index": 6}]	none	\N	f	\N	f	2025-10-20 22:31:19.657672+00
102	\N	\N	\N	Compliance Certificate Verification Checklist	Verification of workplace compliance certificates	ohs_inspections	\N	1	grid	[{"label": "workplace_id", "type_id": 4, "field_name": "workplace_id", "data_column": "workplace_id", "order_index": 1, "options_table": "workplace_registrations", "options_label_column": "company_name", "options_value_column": "id"}, {"label": "inspection_id", "type_id": 16, "field_name": "inspection_id", "data_column": "inspection_id", "order_index": 2}, {"label": "Certificate Valid", "type_id": 5, "field_name": "certificate_valid", "json_column": "form_data", "order_index": 3}, {"label": "Permit Displayed", "type_id": 5, "field_name": "permit_displayed", "json_column": "form_data", "order_index": 4}, {"label": "Insurance Current", "type_id": 5, "field_name": "insurance_current", "json_column": "form_data", "order_index": 5}]	none	\N	f	\N	f	2025-10-20 22:31:19.657672+00
1	\N	\N	\N	Leave Application	Form to apply for leave	leave_requests	\N	1	grid	[{"label": "Leave Type", "options": [{"label": "Annual Leave", "value": "Annual"}, {"label": "Sick Leave", "value": "Sick"}, {"label": "Personal Leave", "value": "Personal"}], "type_id": 4, "required": true, "field_name": "leavetype", "default_value": "Annual"}, {"label": "Start Date", "type_id": 3, "required": true, "field_name": "startdate"}, {"label": "End Date", "type_id": 3, "required": true, "field_name": "enddate"}, {"label": "Reason", "type_id": 8, "required": true, "field_name": "reason"}]	none	\N	f	\N	f	2025-10-20 22:31:29.77456+00
91	\N	\N	\N	General OHS Site Inspection	Routine safety inspection of work areas, signage, and emergency readiness	ohs_inspections	\N	1	grid	[{"type_id": 1, "field_name": "inspection_type_id", "data_column": "inspection_type_id", "order_index": 0}, {"label": "Short Description", "type_id": 1, "field_name": "short_description", "data_column": "short_description", "order_index": 0}, {"label": "Inspection Date", "type_id": 3, "field_name": "inspection_date", "data_column": "date", "order_index": 1}, {"label": "Site Name", "type_id": 1, "field_name": "site_name", "data_column": "location", "order_index": 2}, {"label": "Inspector Comments", "type_id": 7, "field_name": "comments", "json_column": "form_data", "order_index": 3}, {"label": "Emergency Exits Clear", "type_id": 5, "field_name": "emergency_exits", "json_column": "form_data", "order_index": 4}, {"label": "Safety Signage Present", "type_id": 5, "field_name": "signage", "json_column": "form_data", "order_index": 5}, {"label": "General Comments", "type_id": 7, "field_name": "general_comments", "json_column": "form_data", "order_index": 6}]	none	\N	f	\N	f	2025-10-20 22:31:29.91827+00
92	\N	\N	\N	Plant & Equipment OHS Inspection	Inspection of machinery, maintenance records, guards, and operating safety	ohs_inspections	\N	1	grid	[{"type_id": 1, "field_name": "inspection_type_id", "data_column": "inspection_type_id", "order_index": 0}, {"label": "Location", "type_id": 1, "field_name": "location", "data_column": "location", "order_index": 1}, {"label": "Short Description", "type_id": 1, "field_name": "short_description", "data_column": "short_description", "order_index": 0}, {"label": "Equipment Name", "type_id": 1, "field_name": "equipment", "json_column": "form_data", "order_index": 1}, {"label": "Inspection Date", "type_id": 3, "field_name": "inspection_date", "data_column": "date", "order_index": 2}, {"label": "Last Maintenance Date", "type_id": 3, "field_name": "maintenance_date", "data_column": "date", "order_index": 3}, {"label": "Guards in Place", "type_id": 5, "field_name": "guards", "json_column": "form_data", "order_index": 4}, {"label": "Emergency Stop Working", "type_id": 5, "field_name": "emergency_stop", "json_column": "form_data", "order_index": 5}, {"label": "Operator Safety Training Verified", "type_id": 5, "field_name": "training", "json_column": "form_data", "order_index": 6}, {"label": "Remarks", "type_id": 7, "field_name": "remarks", "json_column": "form_data", "order_index": 7}]	none	\N	f	\N	f	2025-10-20 22:31:29.92968+00
15	\N	\N	1	OHS Incident – Near Miss	Report near-miss incidents	ohs_incidents	\N	1	grid	[{"label": "Short Description", "type_id": 1, "field_name": "short_description", "data_column": "short_description", "order_index": 0}, {"label": "Date", "type_id": 3, "field_name": "date", "data_column": "date", "order_index": 1}, {"label": "Time", "type_id": 1, "field_name": "time", "data_column": "time", "order_index": 2}, {"label": "Location", "type_id": 1, "field_name": "location", "data_column": "location", "order_index": 3}, {"label": "Description of Near Miss", "type_id": 1, "field_name": "description", "json_column": "form_data", "order_index": 4}, {"label": "Hazard Identified", "type_id": 1, "field_name": "hazard_identified", "json_column": "form_data", "order_index": 5}, {"label": "Potential Consequence", "type_id": 1, "field_name": "potential_consequence", "json_column": "form_data", "order_index": 6}, {"label": "Immediate Action", "type_id": 1, "field_name": "immediate_action", "json_column": "form_data", "order_index": 7}, {"label": "Status", "type_id": 4, "field_name": "status", "json_column": "form_data", "order_index": 8, "options_table": "ohs_incident_statuses", "options_label_column": "name", "options_value_column": "id"}, {"label": "Investigator", "type_id": 4, "field_name": "investigator_id", "validation": "{\\"filter_columns\\":{\\"groups.name\\":[\\"Investigators\\"]}}", "data_column": "investigator_id", "order_index": 9, "options_table": "users", "options_label_column": "full_name", "options_value_column": "id"}, {"label": "Reviewer", "type_id": 4, "field_name": "reviewer_id", "validation": "{\\"filter_columns\\":{\\"groups.name\\":[\\"Reviewers\\"]}}", "data_column": "reviewer_id", "order_index": 10, "options_table": "users", "options_label_column": "full_name", "options_value_column": "id"}, {"label": "Classification", "type_id": 16, "field_name": "classification", "data_column": "classification", "order_index": 11}]	none	\N	f	\N	f	2025-10-20 22:31:30.914908+00
93	\N	\N	\N	Confined Space Entry Inspection	Inspection checklist before confined space entry at tanks or manholes	ohs_inspections	\N	1	grid	[{"type_id": 1, "field_name": "inspection_type_id", "data_column": "inspection_type_id", "order_index": 0}, {"label": "Short Description", "type_id": 1, "field_name": "short_description", "data_column": "short_description", "order_index": 0}, {"label": "Inspection Date", "type_id": 3, "field_name": "inspection_date", "data_column": "date", "order_index": 1}, {"label": "Gas Test Conducted", "type_id": 5, "field_name": "gas_test", "json_column": "form_data", "order_index": 2}, {"label": "Ventilation Set Up", "type_id": 5, "field_name": "ventilation", "json_column": "form_data", "order_index": 3}, {"label": "Permit to Work Issued", "type_id": 5, "field_name": "ptw", "json_column": "form_data", "order_index": 4}, {"label": "Rescue Equipment Available", "type_id": 5, "field_name": "rescue", "json_column": "form_data", "order_index": 5}, {"label": "Remarks", "type_id": 7, "field_name": "remarks", "json_column": "form_data", "order_index": 6}]	none	\N	f	\N	f	2025-10-20 22:31:29.942262+00
94	\N	\N	\N	Field Work Safety Inspection	On-site inspection checklist for pipe repair, excavation, or rural works	ohs_inspections	\N	1	grid	[{"type_id": 1, "field_name": "inspection_type_id", "data_column": "inspection_type_id", "order_index": 0}, {"label": "Short Description", "type_id": 1, "field_name": "short_description", "data_column": "short_description", "order_index": 0}, {"label": "Inspection Date", "type_id": 3, "field_name": "inspection_date", "data_column": "date", "order_index": 1}, {"label": "Traffic Management In Place", "type_id": 5, "field_name": "traffic_control", "json_column": "form_data", "order_index": 2}, {"label": "Tools in Good Condition", "type_id": 5, "field_name": "tools", "json_column": "form_data", "order_index": 3}, {"label": "First Aid Kit Available", "type_id": 5, "field_name": "first_aid", "json_column": "form_data", "order_index": 4}, {"label": "Team Briefing Conducted", "type_id": 5, "field_name": "briefing", "json_column": "form_data", "order_index": 5}, {"label": "Inspector Notes", "type_id": 7, "field_name": "notes", "json_column": "form_data", "order_index": 6}]	none	\N	f	\N	f	2025-10-20 22:31:29.955751+00
95	\N	\N	\N	OHS Vehicle Inspection	Safety checklist for operational and pool vehicles used by staff	ohs_inspections	\N	1	grid	[{"type_id": 1, "field_name": "inspection_type_id", "data_column": "inspection_type_id", "order_index": 0}, {"label": "Location", "type_id": 1, "field_name": "location", "data_column": "location", "order_index": 1}, {"label": "Short Description", "type_id": 1, "field_name": "short_description", "data_column": "short_description", "order_index": 0}, {"label": "Inspection Date", "type_id": 3, "field_name": "inspection_date", "data_column": "date", "order_index": 1}, {"label": "Vehicle Number", "type_id": 1, "field_name": "vehicle_no", "json_column": "form_data", "order_index": 2}, {"label": "Brakes Functional", "type_id": 5, "field_name": "brakes", "json_column": "form_data", "order_index": 3}, {"label": "Headlights & Signals", "type_id": 5, "field_name": "lights", "json_column": "form_data", "order_index": 4}, {"label": "Seat Belts Working", "type_id": 5, "field_name": "seat_belts", "json_column": "form_data", "order_index": 5}, {"label": "Fire Extinguisher Present", "type_id": 5, "field_name": "extinguisher", "json_column": "form_data", "order_index": 6}, {"label": "Inspector Comments", "type_id": 7, "field_name": "comments", "json_column": "form_data", "order_index": 7}]	none	\N	f	\N	f	2025-10-20 22:31:29.967356+00
96	\N	\N	\N	OHS Inspection Start	Choose inspection type and location	ohs_inspections	\N	1	grid	[{"label": "Inspection Type", "type_id": 4, "field_name": "inspection_type_id", "data_column": "inspection_type_id", "order_index": 1, "options_table": "ohs_inspection_types", "options_label_column": "name", "options_value_column": "id"}, {"label": "Location", "type_id": 4, "field_name": "location", "data_column": "location", "order_index": 2, "options_table": "locations", "options_label_column": "name", "options_value_column": "name"}]	none	\N	f	\N	f	2025-10-20 22:31:29.978648+00
4	\N	\N	\N	OHS Incident	Default incident report form	ohs_incidents	\N	1	grid	[{"label": "Date", "type_id": 3, "field_name": "date", "data_column": "date", "order_index": 1}, {"label": "Time", "type_id": 1, "field_name": "time", "data_column": "time", "order_index": 2}, {"label": "Classification", "type_id": 4, "field_name": "classification", "data_column": "classification", "order_index": 3}, {"label": "Nature", "type_id": 1, "field_name": "nature", "data_column": "nature", "order_index": 4}, {"label": "Location", "type_id": 1, "field_name": "location", "data_column": "location", "order_index": 5}, {"label": "Status", "type_id": 4, "field_name": "status", "data_column": "status_id", "order_index": 6, "options_table": "ohs_incident_statuses", "options_label_column": "name", "options_value_column": "id"}]	none	\N	f	\N	f	2025-10-20 22:31:30.772599+00
6	\N	\N	\N	Job Safety Analysis	Record JSA details	ohs_jsas	\N	1	grid	[{"label": "Title", "type_id": 1, "field_name": "title", "data_column": "title", "order_index": 1}, {"label": "Description", "type_id": 1, "field_name": "description", "data_column": "description", "order_index": 2}, {"label": "Doc Path", "type_id": 7, "field_name": "doc_path", "data_column": "doc_path", "order_index": 3}, {"label": "Location", "type_id": 1, "field_name": "location", "data_column": "location", "order_index": 4}, {"label": "Department Id", "type_id": 2, "field_name": "department_id", "data_column": "department_id", "order_index": 5}, {"label": "Analysis Date", "type_id": 3, "field_name": "analysis_date", "data_column": "analysis_date", "order_index": 6}, {"label": "Prepared By", "type_id": 2, "field_name": "prepared_by", "data_column": "prepared_by", "order_index": 7}, {"label": "Team Member Ids", "type_id": 7, "field_name": "team_member_ids", "data_column": "team_member_ids", "order_index": 8}, {"label": "Ppe Required", "type_id": 7, "field_name": "ppe_required", "data_column": "ppe_required", "order_index": 9}, {"label": "Permit Requirements", "type_id": 7, "field_name": "permit_requirements", "data_column": "permit_requirements", "order_index": 10}, {"label": "Review Date", "type_id": 3, "field_name": "review_date", "data_column": "review_date", "order_index": 11}]	none	\N	f	\N	f	2025-10-20 22:31:30.78377+00
56	\N	\N	\N	Hazard Type	Manage hazard classifications	ohs_hazard_types	\N	1	grid	[]	none	\N	f	\N	f	2025-10-20 22:31:31.322634+00
7	\N	\N	\N	OHS Hazard	Default hazard report form	ohs_hazards	\N	1	grid	[{"label": "Description", "type_id": 1, "field_name": "description", "data_column": "description", "order_index": 1}, {"label": "Location", "type_id": 1, "field_name": "location", "data_column": "location", "order_index": 2}, {"label": "Probability", "options": [{"value": "1", "display_text": "1"}, {"value": "2", "display_text": "2"}, {"value": "3", "display_text": "3"}, {"value": "4", "display_text": "4"}, {"value": "5", "display_text": "5"}], "type_id": 4, "field_name": "probability", "data_column": "probability", "order_index": 4}, {"label": "Severity", "options": [{"value": "1", "display_text": "1"}, {"value": "2", "display_text": "2"}, {"value": "3", "display_text": "3"}, {"value": "4", "display_text": "4"}, {"value": "5", "display_text": "5"}], "type_id": 4, "field_name": "severity", "data_column": "severity", "order_index": 5}, {"label": "Risk Level", "type_id": 2, "field_name": "risk_level", "data_column": "risk_level", "order_index": 6}, {"label": "Latitude", "type_id": 2, "field_name": "latitude", "data_column": "latitude", "order_index": 7}, {"label": "Longitude", "type_id": 2, "field_name": "longitude", "data_column": "longitude", "order_index": 8}, {"label": "Hazard Type", "type_id": 4, "field_name": "hazard_type_id", "data_column": "hazard_type_id", "order_index": 3, "options_table": "ohs_hazard_types", "options_label_column": "name", "options_value_column": "id"}]	none	\N	f	\N	f	2025-10-20 22:31:30.795017+00
8	\N	\N	\N	SCORM Package	Upload SCORM content	 NULL	\N	1	grid	[{"label": "Course Id", "type_id": 2, "field_name": "course_id", "data_column": "course_id", "order_index": 1}, {"label": "Title", "type_id": 1, "field_name": "title", "data_column": "title", "order_index": 2}, {"label": "Scorm Zip", "type_id": 7, "field_name": "scorm_zip", "data_column": "scorm_zip", "order_index": 3}, {"label": "Is Scorm", "type_id": 5, "field_name": "is_scorm", "data_column": "is_scorm", "order_index": 4}, {"label": "Caption", "type_id": 7, "field_name": "caption", "data_column": "caption", "order_index": 5}, {"label": "Language Code", "type_id": 1, "field_name": "language_code", "data_column": "language_code", "order_index": 6}]	none	\N	f	\N	f	2025-10-20 22:31:30.808171+00
9	\N	\N	\N	Training Path	Create a learning path	 NULL	\N	1	grid	[{"label": "Name", "type_id": 1, "field_name": "name", "data_column": "name", "order_index": 1}, {"label": "Description", "type_id": 1, "field_name": "description", "data_column": "description", "order_index": 2}, {"label": "Department Id", "type_id": 2, "field_name": "department_id", "data_column": "department_id", "order_index": 3}, {"label": "Role Id", "type_id": 2, "field_name": "role_id", "data_column": "role_id", "order_index": 4}]	none	\N	f	\N	f	2025-10-20 22:31:30.820991+00
10	\N	\N	\N	Safety Induction	Record employee safety inductions	 NULL	\N	1	grid	[{"label": "Employee Id", "type_id": 2, "field_name": "employee_id", "data_column": "employee_id", "order_index": 1}, {"label": "Induction Date", "type_id": 3, "field_name": "induction_date", "data_column": "induction_date", "order_index": 2}, {"label": "Document Id", "type_id": 7, "field_name": "document_id", "data_column": "document_id", "order_index": 3}]	none	\N	f	\N	f	2025-10-20 22:31:30.832972+00
11	\N	\N	\N	Employee License	Track employee licenses	 NULL	\N	1	grid	[{"label": "Employee Id", "type_id": 2, "field_name": "employee_id", "data_column": "employee_id", "order_index": 1}, {"label": "License Type", "type_id": 1, "field_name": "license_type", "data_column": "license_type", "order_index": 2}, {"label": "License Number", "type_id": 1, "field_name": "license_number", "data_column": "license_number", "order_index": 3}, {"label": "Expiry Date", "type_id": 3, "field_name": "expiry_date", "data_column": "expiry_date", "order_index": 4}, {"label": "Document Id", "type_id": 7, "field_name": "document_id", "data_column": "document_id", "order_index": 5}]	none	\N	f	\N	f	2025-10-20 22:31:30.845079+00
12	\N	\N	\N	Training Requirement	Assign mandatory courses per project	 NULL	\N	1	grid	[{"label": "Project Id", "type_id": 2, "field_name": "project_id", "data_column": "project_id", "order_index": 1}, {"label": "Role Id", "type_id": 2, "field_name": "role_id", "data_column": "role_id", "order_index": 2}, {"label": "Location Id", "type_id": 2, "field_name": "location_id", "data_column": "location_id", "order_index": 3}, {"label": "Course Id", "type_id": 2, "field_name": "course_id", "data_column": "course_id", "order_index": 4}]	none	\N	f	\N	f	2025-10-20 22:31:30.858711+00
13	\N	\N	1	OHS Incident – Property Damage	Report property damage incidents	ohs_incidents	\N	1	grid	[{"label": "Short Description", "type_id": 1, "field_name": "short_description", "data_column": "short_description", "order_index": 0}, {"label": "Date of Damage", "type_id": 3, "field_name": "date", "data_column": "date", "order_index": 1}, {"label": "Time of Damage", "type_id": 1, "field_name": "time", "data_column": "time", "order_index": 2}, {"label": "Location", "type_id": 17, "field_name": "location", "data_column": "location", "order_index": 3}, {"label": "Asset Affected", "type_id": 1, "field_name": "asset_affected", "json_column": "form_data", "order_index": 4}, {"label": "Damage Description", "type_id": 1, "field_name": "damage_description", "json_column": "form_data", "order_index": 5}, {"label": "Estimated Cost", "type_id": 2, "field_name": "estimated_cost", "json_column": "form_data", "order_index": 6}, {"label": "Immediate Action", "type_id": 1, "field_name": "immediate_action", "json_column": "form_data", "order_index": 7}, {"label": "Severity", "type_id": 17, "field_name": "severity", "data_column": "severity", "order_index": 12}, {"label": "Responsible Person", "type_id": 1, "field_name": "responsible_person", "json_column": "form_data", "order_index": 8}, {"label": "Status", "type_id": 4, "field_name": "status", "json_column": "form_data", "order_index": 9, "options_table": "ohs_incident_statuses", "options_label_column": "name", "options_value_column": "id"}, {"label": "Investigator", "type_id": 17, "field_name": "investigator_id", "validation": "{\\"filter_columns\\":{\\"groups.name\\":[\\"Investigators\\"]}}", "data_column": "investigator_id", "order_index": 10, "options_table": "users", "options_label_column": "full_name", "options_value_column": "id"}, {"label": "Reviewer", "type_id": 17, "field_name": "reviewer_id", "validation": "{\\"filter_columns\\":{\\"groups.name\\":[\\"Reviewers\\"]}}", "data_column": "reviewer_id", "order_index": 11, "options_table": "users", "options_label_column": "full_name", "options_value_column": "id"}, {"label": "Classification", "type_id": 17, "field_name": "classification", "data_column": "classification", "order_index": 12}]	none	\N	f	\N	f	2025-10-20 22:31:30.889002+00
14	\N	\N	1	OHS Incident – Environmental	Report environmental incidents (spills, emissions, etc.)	ohs_incidents	\N	1	grid	[{"label": "Short Description", "type_id": 1, "field_name": "short_description", "data_column": "short_description", "order_index": 0}, {"label": "Date", "type_id": 3, "field_name": "date", "data_column": "date", "order_index": 1}, {"label": "Time", "type_id": 1, "field_name": "time", "data_column": "time", "order_index": 2}, {"label": "Location", "type_id": 1, "field_name": "location", "data_column": "location", "order_index": 3}, {"label": "Type of Incident", "type_id": 1, "field_name": "env_incident_type", "data_column": "env_incident_type", "order_index": 4}, {"label": "Impact Description", "type_id": 1, "field_name": "impact_description", "data_column": "impact_description", "order_index": 5}, {"label": "Area Affected", "type_id": 1, "field_name": "area_affected", "data_column": "area_affected", "order_index": 6}, {"label": "Volume/Quantity", "type_id": 2, "field_name": "volume", "data_column": "volume", "order_index": 7}, {"label": "Remediation Action", "type_id": 1, "field_name": "remediation_action", "data_column": "remediation_action", "order_index": 8}, {"label": "Status", "type_id": 4, "field_name": "status_id", "data_column": "status_id", "order_index": 9, "options_table": "ohs_incident_statuses", "options_label_column": "name", "options_value_column": "id"}, {"label": "Investigator", "type_id": 4, "field_name": "investigator_id", "validation": "{\\"filter_columns\\":{\\"groups.name\\":[\\"Investigators\\"]}}", "data_column": "investigator_id", "order_index": 10, "options_table": "users", "options_label_column": "full_name", "options_value_column": "id"}, {"label": "Reviewer", "type_id": 4, "field_name": "reviewer_id", "validation": "{\\"filter_columns\\":{\\"groups.name\\":[\\"Reviewers\\"]}}", "data_column": "reviewer_id", "order_index": 11, "options_table": "users", "options_label_column": "full_name", "options_value_column": "id"}, {"label": "Classification", "type_id": 16, "field_name": "classification", "data_column": "classification", "order_index": 12}]	none	\N	f	\N	f	2025-10-20 22:31:30.902182+00
57	\N	\N	\N	Incident Type	Manage incident categories	ohs_incident_types	\N	1	grid	[{"label": "Name", "type_id": 1, "field_name": "name", "data_column": "name", "order_index": 1}, {"label": "Form Id", "type_id": 4, "field_name": "form_id", "data_column": "form_id", "order_index": 2, "options_table": "forms", "options_label_column": "name", "options_value_column": "id"}]	none	\N	f	\N	f	2025-10-20 22:31:31.335125+00
84	\N	\N	\N	Inspection Assignment Rule	Inspector assignment rule	inspection_assignment_rules	\N	1	grid	[]	none	\N	f	\N	f	2025-10-20 22:31:31.350502+00
16	\N	\N	1	OHS Incident – First Aid	Report incidents requiring first aid	ohs_incidents	\N	1	grid	[{"label": "Short Description", "type_id": 1, "field_name": "short_description", "data_column": "short_description", "order_index": 0}, {"label": "Date", "type_id": 3, "field_name": "date", "data_column": "date", "order_index": 1}, {"label": "Time", "type_id": 1, "field_name": "time", "data_column": "time", "order_index": 2}, {"label": "Location", "type_id": 17, "field_name": "location", "data_column": "location", "order_index": 3}, {"label": "Person Treated", "type_id": 1, "field_name": "person_treated", "json_column": "form_data", "order_index": 4}, {"label": "Injury Description", "type_id": 1, "field_name": "injury_description", "json_column": "form_data", "order_index": 5}, {"label": "First Aid Given", "type_id": 1, "field_name": "first_aid_given", "json_column": "form_data", "order_index": 6}, {"label": "Treated By", "type_id": 1, "field_name": "treated_by", "json_column": "form_data", "order_index": 7}, {"label": "Follow-Up Required?", "options": [{"value": "yes", "display_text": "Yes"}, {"value": "no", "display_text": "No"}], "type_id": 4, "field_name": "follow_up_required", "json_column": "form_data", "order_index": 8}, {"label": "Classification", "type_id": 17, "field_name": "classification", "data_column": "classification", "order_index": 12}, {"label": "Severity", "type_id": 17, "field_name": "severity", "data_column": "severity", "order_index": 13}, {"label": "Status", "type_id": 4, "field_name": "status", "json_column": "form_data", "order_index": 9, "options_table": "ohs_incident_statuses", "options_label_column": "name", "options_value_column": "id"}, {"label": "Investigator", "type_id": 4, "field_name": "investigator_id", "validation": "{\\"filter_columns\\":{\\"groups.name\\":[\\"Investigators\\"]}}", "data_column": "investigator_id", "order_index": 10, "options_table": "users", "options_label_column": "full_name", "options_value_column": "id"}, {"label": "Reviewer", "type_id": 4, "field_name": "reviewer_id", "validation": "{\\"filter_columns\\":{\\"groups.name\\":[\\"Reviewers\\"]}}", "data_column": "reviewer_id", "order_index": 11, "options_table": "users", "options_label_column": "full_name", "options_value_column": "id"}]	none	\N	f	\N	f	2025-10-20 22:31:30.9277+00
17	\N	\N	1	OHS Incident – Medical Treatment	Report incidents requiring medical treatment	ohs_incidents	\N	1	grid	[{"label": "Short Description", "type_id": 1, "field_name": "short_description", "data_column": "short_description", "order_index": 0}, {"label": "Date", "type_id": 3, "field_name": "date", "data_column": "date", "order_index": 1}, {"label": "Time", "type_id": 1, "field_name": "time", "data_column": "time", "order_index": 2}, {"label": "Location", "type_id": 1, "field_name": "location", "data_column": "location", "order_index": 3}, {"label": "Person Treated", "type_id": 1, "field_name": "person_treated", "json_column": "form_data", "order_index": 4}, {"label": "Injury Description", "type_id": 1, "field_name": "injury_description", "json_column": "form_data", "order_index": 5}, {"label": "Medical Details", "type_id": 1, "field_name": "medical_details", "json_column": "form_data", "order_index": 6}, {"label": "Provider", "type_id": 1, "field_name": "medical_provider", "json_column": "form_data", "order_index": 7}, {"label": "Follow-Up Required?", "options": [{"value": "yes", "display_text": "Yes"}, {"value": "no", "display_text": "No"}], "type_id": 4, "field_name": "follow_up_required", "json_column": "form_data", "order_index": 8}, {"label": "Classification", "type_id": 16, "field_name": "classification", "data_column": "classification", "order_index": 12}, {"label": "Severity", "type_id": 16, "field_name": "severity", "data_column": "severity", "order_index": 13}, {"label": "Status", "type_id": 4, "field_name": "status", "json_column": "form_data", "order_index": 9, "options_table": "ohs_incident_statuses", "options_label_column": "name", "options_value_column": "id"}, {"label": "Investigator", "type_id": 4, "field_name": "investigator_id", "validation": "{\\"filter_columns\\":{\\"groups.name\\":[\\"Investigators\\"]}}", "data_column": "investigator_id", "order_index": 10, "options_table": "users", "options_label_column": "full_name", "options_value_column": "id"}, {"label": "Reviewer", "type_id": 4, "field_name": "reviewer_id", "validation": "{\\"filter_columns\\":{\\"groups.name\\":[\\"Reviewers\\"]}}", "data_column": "reviewer_id", "order_index": 11, "options_table": "users", "options_label_column": "full_name", "options_value_column": "id"}]	none	\N	f	\N	f	2025-10-20 22:31:30.938847+00
18	\N	\N	1	OHS Incident – LTI	Report lost-time injuries	ohs_incidents	\N	1	grid	[{"label": "Short Description", "type_id": 1, "field_name": "short_description", "data_column": "short_description", "order_index": 0}, {"label": "Date", "type_id": 3, "field_name": "date", "data_column": "date", "order_index": 1}, {"label": "Time", "type_id": 1, "field_name": "time", "data_column": "time", "order_index": 2}, {"label": "Location", "type_id": 1, "field_name": "location", "data_column": "location", "order_index": 3}, {"label": "Person Injured", "type_id": 1, "field_name": "person_injured", "json_column": "form_data", "order_index": 4}, {"label": "Injury Description", "type_id": 1, "field_name": "injury_description", "json_column": "form_data", "order_index": 5}, {"label": "Days Lost", "type_id": 2, "field_name": "days_lost", "json_column": "form_data", "order_index": 6}, {"label": "Classification", "type_id": 16, "field_name": "classification", "data_column": "classification", "order_index": 12}, {"label": "Severity", "type_id": 16, "field_name": "severity", "data_column": "severity", "order_index": 13}, {"label": "Return-to-Work Date", "type_id": 3, "field_name": "rtw_date", "json_column": "form_data", "order_index": 7}, {"label": "Corrective Action", "type_id": 1, "field_name": "corrective_action", "json_column": "form_data", "order_index": 8}, {"label": "Status", "type_id": 4, "field_name": "status", "json_column": "form_data", "order_index": 9, "options_table": "ohs_incident_statuses", "options_label_column": "name", "options_value_column": "id"}, {"label": "Investigator", "type_id": 4, "field_name": "investigator_id", "validation": "{\\"filter_columns\\":{\\"groups.name\\":[\\"Investigators\\"]}}", "data_column": "investigator_id", "order_index": 10, "options_table": "users", "options_label_column": "full_name", "options_value_column": "id"}, {"label": "Reviewer", "type_id": 4, "field_name": "reviewer_id", "validation": "{\\"filter_columns\\":{\\"groups.name\\":[\\"Reviewers\\"]}}", "data_column": "reviewer_id", "order_index": 11, "options_table": "users", "options_label_column": "full_name", "options_value_column": "id"}]	none	\N	f	\N	f	2025-10-20 22:31:30.950893+00
19	\N	\N	1	OHS Incident – Fatality	Report fatalities	ohs_incidents	\N	1	grid	[{"label": "Short Description", "type_id": 1, "field_name": "short_description", "data_column": "short_description", "order_index": 0}, {"label": "Date", "type_id": 3, "field_name": "date", "data_column": "date", "order_index": 1}, {"label": "Time", "type_id": 1, "field_name": "time", "data_column": "time", "order_index": 2}, {"label": "Location", "type_id": 1, "field_name": "location", "data_column": "location", "order_index": 3}, {"label": "Deceased Name", "type_id": 1, "field_name": "deceased_name", "json_column": "form_data", "order_index": 4}, {"label": "Cause of Death", "type_id": 1, "field_name": "cause_of_death", "json_column": "form_data", "order_index": 5}, {"label": "Reported to Authorities", "type_id": 3, "field_name": "reported_authorities", "json_column": "form_data", "order_index": 6}, {"label": "Coroner Details", "type_id": 1, "field_name": "coroner_details", "json_column": "form_data", "order_index": 7}, {"label": "Corrective Action", "type_id": 1, "field_name": "corrective_action", "json_column": "form_data", "order_index": 8}, {"label": "Classification", "type_id": 16, "field_name": "classification", "data_column": "classification", "order_index": 12}, {"label": "Severity", "type_id": 16, "field_name": "severity", "data_column": "severity", "order_index": 13}, {"label": "Status", "type_id": 4, "field_name": "status", "json_column": "form_data", "order_index": 9, "options_table": "ohs_incident_statuses", "options_label_column": "name", "options_value_column": "id"}, {"label": "Investigator", "type_id": 4, "field_name": "investigator_id", "validation": "{\\"filter_columns\\":{\\"groups.name\\":[\\"Investigators\\"]}}", "data_column": "investigator_id", "order_index": 10, "options_table": "users", "options_label_column": "full_name", "options_value_column": "id"}, {"label": "Reviewer", "type_id": 4, "field_name": "reviewer_id", "validation": "{\\"filter_columns\\":{\\"groups.name\\":[\\"Reviewers\\"]}}", "data_column": "reviewer_id", "order_index": 11, "options_table": "users", "options_label_column": "full_name", "options_value_column": "id"}]	none	\N	f	\N	f	2025-10-20 22:31:30.962951+00
20	\N	\N	1	OHS Incident	Default incident report form	ohs_incidents	\N	1	grid	[{"label": "Short Description", "type_id": 1, "field_name": "short_description", "data_column": "short_description", "order_index": 0}, {"label": "Date", "type_id": 3, "field_name": "date", "data_column": "date", "order_index": 1}, {"label": "Time", "type_id": 1, "field_name": "time", "data_column": "time", "order_index": 2}, {"label": "Classification", "options": [{"value": "injury", "display_text": "Injury"}, {"value": "property_damage", "display_text": "Property Damage"}, {"value": "environmental", "display_text": "Environmental"}, {"value": "near_miss", "display_text": "Near Miss"}, {"value": "first_aid", "display_text": "First Aid"}, {"value": "medical_treatment", "display_text": "Medical Treatment"}, {"value": "lti", "display_text": "LTI"}, {"value": "fatality", "display_text": "Fatality"}], "type_id": 4, "field_name": "classification", "data_column": "classification", "order_index": 3}, {"label": "Location", "type_id": 1, "field_name": "location", "data_column": "location", "order_index": 4}, {"label": "Nature", "type_id": 1, "field_name": "nature", "json_column": "form_data", "order_index": 5}, {"label": "Workplace Part", "type_id": 1, "field_name": "workplace_part", "json_column": "form_data", "order_index": 6}, {"label": "Activity", "type_id": 1, "field_name": "activity", "json_column": "form_data", "order_index": 7}, {"label": "Unexpected", "type_id": 1, "field_name": "unexpected", "json_column": "form_data", "order_index": 8}, {"label": "How Sustained", "type_id": 1, "field_name": "how_sustained", "json_column": "form_data", "order_index": 9}, {"label": "Completed By", "type_id": 1, "field_name": "completed_by", "json_column": "form_data", "order_index": 10}, {"label": "Position", "type_id": 1, "field_name": "position", "json_column": "form_data", "order_index": 11}, {"label": "Outcome", "type_id": 1, "field_name": "outcome", "json_column": "form_data", "order_index": 12}, {"label": "Preventative Action", "type_id": 1, "field_name": "preventative_action", "json_column": "form_data", "order_index": 13}, {"label": "Investigator Id", "type_id": 4, "field_name": "investigator_id", "validation": "{\\"filter_columns\\":{\\"groups.name\\":[\\"Investigators\\"]}}", "data_column": "investigator_id", "order_index": 14, "options_table": "users", "options_label_column": "full_name", "options_value_column": "id"}, {"label": "Reviewer", "type_id": 4, "field_name": "reviewer_id", "validation": "{\\"filter_columns\\":{\\"groups.name\\":[\\"Reviewers\\"]}}", "data_column": "reviewer_id", "order_index": 15, "options_table": "users", "options_label_column": "full_name", "options_value_column": "id"}, {"label": "Status", "type_id": 4, "field_name": "status", "json_column": "form_data", "order_index": 16, "options_table": "ohs_incident_statuses", "options_label_column": "name", "options_value_column": "id"}, {"label": "Days Lost", "type_id": 2, "field_name": "days_lost", "json_column": "form_data", "order_index": 17}, {"label": "Return-to-Work Date", "type_id": 3, "field_name": "rtw_date", "json_column": "form_data", "order_index": 18}, {"label": "Restricted Duty Notes", "type_id": 1, "field_name": "restricted_duty_notes", "json_column": "form_data", "order_index": 19}, {"label": "Severity", "type_id": 16, "field_name": "severity", "data_column": "severity", "order_index": 20}]	none	\N	f	\N	f	2025-10-20 22:31:30.974187+00
29	\N	\N	\N	Vehicle Registration	Capture fleet vehicle details	vehicles	\N	1	grid	[{"label": "Vehicle Number", "type_id": 1, "field_name": "vehicle_number", "data_column": "vehicle_number", "order_index": 1, "options_table": " NULL", "options_label_column": " NULL", "options_value_column": " NULL"}, {"label": "Vin", "type_id": 1, "field_name": "vin", "data_column": "vin", "order_index": 2, "options_table": " NULL", "options_label_column": " NULL", "options_value_column": " NULL"}, {"label": "Engine Number", "type_id": 1, "field_name": "engine_number", "data_column": "engine_number", "order_index": 3, "options_table": " NULL", "options_label_column": " NULL", "options_value_column": " NULL"}, {"label": "Mileage", "type_id": 2, "field_name": "mileage", "data_column": "mileage", "order_index": 4, "options_table": " NULL", "options_label_column": " NULL", "options_value_column": " NULL"}, {"label": "Make", "type_id": 9, "field_name": "make", "data_column": "make", "order_index": 5, "options_table": "vehicle_makes", "options_label_column": "name", "options_value_column": "id"}, {"label": "Model", "type_id": 9, "field_name": "model", "data_column": "model", "order_index": 6, "options_table": "vehicle_models", "options_label_column": "name", "options_value_column": "id"}, {"label": "Type", "type_id": 9, "field_name": "type", "data_column": "type", "order_index": 7, "options_table": "vehicle_types", "options_label_column": "name", "options_value_column": "id"}, {"label": "Year", "type_id": 2, "field_name": "year", "data_column": "year", "order_index": 8, "options_table": " NULL", "options_label_column": " NULL", "options_value_column": " NULL"}, {"label": "Fitness Expires", "type_id": 3, "field_name": "fitness_expires", "data_column": "fitness_expires", "order_index": 9, "options_table": " NULL", "options_label_column": " NULL", "options_value_column": " NULL"}]	none	\N	f	\N	f	2025-10-20 22:31:30.98608+00
30	\N	\N	\N	Trip Log	Record vehicle trips with mileage	 NULL	\N	1	grid	[{"label": "Vehicle Id", "type_id": 2, "field_name": "vehicle_id", "data_column": "vehicle_id", "order_index": 1}, {"label": "Driver Id", "type_id": 2, "field_name": "driver_id", "data_column": "driver_id", "order_index": 2}, {"label": "Trip Date", "type_id": 3, "field_name": "trip_date", "data_column": "trip_date", "order_index": 3}, {"label": "Start Time", "type_id": 8, "field_name": "start_time", "data_column": "start_time", "order_index": 4}, {"label": "End Time", "type_id": 8, "field_name": "end_time", "data_column": "end_time", "order_index": 5}, {"label": "Start Location", "type_id": 1, "field_name": "start_location", "data_column": "start_location", "order_index": 6}, {"label": "End Location", "type_id": 1, "field_name": "end_location", "data_column": "end_location", "order_index": 7}, {"label": "Start Mileage", "type_id": 2, "field_name": "start_mileage", "data_column": "start_mileage", "order_index": 8}, {"label": "End Mileage", "type_id": 2, "field_name": "end_mileage", "data_column": "end_mileage", "order_index": 9}, {"label": "Distance Km", "type_id": 2, "field_name": "distance_km", "data_column": "distance_km", "order_index": 10}, {"label": "Status", "type_id": 1, "field_name": "status", "data_column": "status_id", "order_index": 11}]	none	\N	f	\N	f	2025-10-20 22:31:30.997736+00
31	\N	\N	\N	Service Type	Define maintenance intervals	service_types	\N	1	grid	[{"label": "Name", "type_id": 1, "field_name": "name", "data_column": "name", "order_index": 1, "options_table": " NULL", "options_label_column": " NULL", "options_value_column": " NULL"}, {"label": "Description", "type_id": 7, "field_name": "description", "data_column": "description", "order_index": 2, "options_table": " NULL", "options_label_column": " NULL", "options_value_column": " NULL"}, {"label": "Make", "type_id": 9, "field_name": "make", "data_column": "make", "order_index": 3, "options_table": "vehicle_makes", "options_label_column": "name", "options_value_column": "id"}, {"label": "Model", "type_id": 9, "field_name": "model", "data_column": "model", "order_index": 4, "options_table": "vehicle_models", "options_label_column": "name", "options_value_column": "id"}, {"label": "Vehicle Type", "type_id": 9, "field_name": "type", "data_column": "type", "order_index": 5, "options_table": "vehicle_types", "options_label_column": "name", "options_value_column": "id"}, {"label": "Km Interval", "type_id": 2, "field_name": "km_interval", "data_column": "km_interval", "order_index": 6, "options_table": " NULL", "options_label_column": " NULL", "options_value_column": " NULL"}, {"label": "Month Interval", "type_id": 2, "field_name": "month_interval", "data_column": "month_interval", "order_index": 7, "options_table": " NULL", "options_label_column": " NULL", "options_value_column": " NULL"}]	none	\N	f	\N	f	2025-10-20 22:31:31.010836+00
32	\N	\N	\N	User Group	Manage user groups and permissions	groups	\N	1	grid	[{"label": "Name", "type_id": 1, "field_name": "name", "data_column": "name", "order_index": 1}, {"label": "Description", "type_id": 7, "field_name": "description", "data_column": "description", "order_index": 2}, {"label": "Parent Id", "type_id": 2, "field_name": "parent_id", "data_column": "parent_id", "order_index": 3}]	none	\N	f	\N	f	2025-10-20 22:31:31.022715+00
33	\N	\N	\N	Group Member	Assign users to groups	user_group_memberships	\N	1	grid	[{"label": "User Id", "type_id": 2, "field_name": "user_id", "data_column": "user_id", "order_index": 1}, {"label": "Group Id", "type_id": 2, "field_name": "group_id", "data_column": "group_id", "order_index": 2}, {"label": "Role", "type_id": 1, "field_name": "role", "data_column": "role", "order_index": 3}]	none	\N	f	\N	f	2025-10-20 22:31:31.035357+00
34	\N	\N	\N	Vehicle Issue Report	Report vehicle issues	vehicle_reports	\N	1	grid	[{"label": "Vehicle Id", "type_id": 9, "field_name": "vehicle_id", "data_column": "vehicle_id", "order_index": 1, "options_table": "vehicles", "options_label_column": "vehicle_number", "options_value_column": "id"}, {"label": "Report Type", "options": [{"value": "minor", "display_text": "minor"}, {"value": "major", "display_text": "major"}, {"value": "breakdown", "display_text": "breakdown"}], "type_id": 4, "field_name": "report_type", "data_column": "report_type", "order_index": 2, "options_table": "\\n        NULL", "options_label_column": " NULL", "options_value_column": " NULL"}, {"label": "Description", "type_id": 7, "field_name": "description", "data_column": "description", "order_index": 3, "options_table": "\\n        NULL", "options_label_column": " NULL", "options_value_column": " NULL"}]	none	\N	f	\N	f	2025-10-20 22:31:31.046902+00
35	\N	\N	\N	Client	Client details	clients	\N	1	grid	[{"label": "Name", "type_id": 1, "field_name": "name", "validation": "{\\"unique\\":{\\"table\\":\\"clients\\",\\"column\\":\\"name\\"}}", "data_column": "name", "order_index": 1}, {"label": "Phone", "type_id": 1, "field_name": "phone", "data_column": "phone", "order_index": 2}, {"label": "Email", "type_id": 1, "field_name": "email", "data_column": "email", "order_index": 3}, {"label": "Address", "type_id": 1, "field_name": "address", "data_column": "address", "order_index": 4}, {"label": "City", "type_id": 1, "field_name": "city", "data_column": "city", "order_index": 5}, {"label": "Country", "type_id": 1, "field_name": "country", "data_column": "country", "order_index": 6}, {"label": "Description", "type_id": 8, "field_name": "description", "data_column": "description", "order_index": 7}, {"label": "Comments", "type_id": 8, "field_name": "comments", "data_column": "comments", "order_index": 8}]	none	\N	f	\N	f	2025-10-20 22:31:31.057961+00
36	\N	\N	\N	Case	Case record	cases	\N	1	grid	[{"label": "Client", "type_id": 4, "field_name": "client_id", "data_column": "client_id", "order_index": 1, "options_table": "clients", "options_label_column": "name", "options_value_column": "client_id"}, {"label": "Case Number", "type_id": 1, "field_name": "case_number", "data_column": "case_number", "order_index": 2}, {"label": "Title", "type_id": 1, "field_name": "title", "data_column": "title", "order_index": 3}, {"label": "Status", "options": [{"value": "open", "display_text": "open"}, {"value": "closed", "display_text": "closed"}, {"value": "pending", "display_text": "pending"}], "type_id": 4, "field_name": "status", "data_column": "status_id", "order_index": 4}, {"label": "Assigned Representative", "type_id": 4, "field_name": "lead_rep_id", "validation": "{\\"filter_columns\\":{\\"groups.name\\":[\\"lawyer\\",\\"lawyers\\"]}}", "data_column": "lead_rep_id", "order_index": 7, "options_table": "users", "options_label_column": "full_name", "options_value_column": "user_id"}, {"label": "Description", "type_id": 8, "field_name": "description", "data_column": "description", "order_index": 8}, {"label": "Initial Instructions", "type_id": 8, "field_name": "initial_instructions", "data_column": "initial_instructions", "order_index": 9}]	none	\N	f	\N	f	2025-10-20 22:31:31.07008+00
37	\N	\N	\N	Lawyer	Lawyer user	users	\N	1	grid	[{"label": "Full Name", "type_id": 1, "field_name": "full_name", "data_column": "full_name", "order_index": 1}, {"label": "Emails", "type_id": 16, "field_name": "emails", "data_column": "emails", "order_index": 2}, {"label": "Phones", "type_id": 16, "field_name": "phones", "data_column": "phones", "order_index": 3}, {"label": "Password", "type_id": 0, "field_name": "password", "data_column": "NULL", "order_index": 4}]	none	\N	f	\N	f	2025-10-20 22:31:31.08272+00
90	\N	\N	\N	Community & Stakeholder Risk Assessment	Analyzes public-facing risks and reputational threats from service issues	risk_assessments	\N	1	grid	[{"type_id": 1, "field_name": "risk_assessment_type_id", "data_column": "risk_assessment_type_id", "order_index": 0}, {"label": "Title", "type_id": 1, "field_name": "title", "data_column": "title", "order_index": 1}, {"label": "Assessment Date", "type_id": 3, "field_name": "assessment_date", "data_column": "assessment_date", "order_index": 2}, {"label": "Location", "type_id": 1, "field_name": "location", "data_column": "location", "order_index": 3}, {"label": "Assessor Names", "type_id": 1, "field_name": "assessor_names", "json_column": "form_data", "order_index": 4}, {"label": "Review Date", "type_id": 3, "field_name": "review_date", "data_column": "review_date", "order_index": 5}, {"label": "Approver", "type_id": 1, "field_name": "approver_name", "json_column": "form_data", "order_index": 6}, {"label": "Work Description", "type_id": 7, "field_name": "work_description", "json_column": "form_data", "order_index": 7}, {"label": "Permit Requirements", "type_id": 7, "field_name": "permit_requirements", "json_column": "form_data", "order_index": 8}, {"label": "Community Area", "type_id": 1, "field_name": "community", "json_column": "form_data", "order_index": 9}, {"label": "Public Concern", "type_id": 7, "field_name": "concern", "json_column": "form_data", "order_index": 10}, {"label": "Likelihood of Escalation", "type_id": 2, "field_name": "escalation", "json_column": "form_data", "order_index": 11}, {"label": "Communication Strategy", "type_id": 7, "field_name": "communication", "json_column": "form_data", "order_index": 12}, {"label": "Resolution Timeline", "type_id": 1, "field_name": "timeline", "json_column": "form_data", "order_index": 13}]	none	\N	f	\N	f	2025-10-20 22:31:31.810568+00
38	\N	\N	\N	Time Entries	Record hours worked on a case	time_entries	\N	1	grid	[{"label": "Case", "type_id": 4, "field_name": "case_id", "data_column": "reference_id", "order_index": 1, "options_table": "cases", "options_label_column": "title", "options_value_column": "case_id"}, {"label": "Date", "default": "now()", "type_id": 3, "field_name": "date", "data_column": "date", "order_index": 2}, {"label": "Hours", "type_id": 2, "field_name": "hours", "data_column": "hours", "order_index": 3}, {"label": "Billable", "type_id": 5, "field_name": "billable", "data_column": "billable", "order_index": 4}, {"label": "Description", "type_id": 8, "field_name": "description", "data_column": "description", "order_index": 6}, {"label": "Work Type", "type_id": 13, "field_name": "work_type", "data_column": "work_type_id", "order_index": 7, "options_table": "work_types", "options_label_column": "name", "options_value_column": "work_type_id"}, {"label": "Instructions", "type_id": 8, "field_name": "instructions", "data_column": "instructions", "order_index": 9}, {"label": "Documents", "options": {"linkField": "document_id", "linkTable": "case_hour_documents"}, "type_id": 9, "field_name": "documents", "data_column": "document_ids", "order_index": 10}, {"type_id": 17, "field_name": "reference_table", "data_column": "reference_table", "order_index": 11, "default_value": "cases"}]	none	\N	f	\N	f	2025-10-20 22:31:31.095661+00
39	\N	\N	\N	Tenant	Tenant details	tenants	\N	1	grid	[{"label": "Name", "type_id": 1, "field_name": "name", "data_column": "name", "order_index": 1}, {"label": "Subdomain", "type_id": 1, "field_name": "subdomain", "data_column": "subdomain", "order_index": 2}, {"label": "Custom Domain", "type_id": 1, "field_name": "custom_domain", "data_column": "custom_domain", "order_index": 3}, {"label": "Settings", "type_id": 7, "field_name": "settings", "data_column": "settings", "order_index": 4}, {"label": "Product Name", "type_id": 1, "field_name": "product_name", "data_column": "product_name", "order_index": 5}, {"label": "Dashboard Name", "type_id": 1, "field_name": "dashboard_name", "data_column": "dashboard_name", "order_index": 6}, {"label": "Logo Url", "type_id": 1, "field_name": "logo_url", "data_column": "logo_url", "order_index": 7}]	none	\N	f	\N	f	2025-10-20 22:31:31.109514+00
40	\N	\N	\N	Admin	Admin user	users	\N	1	grid	[{"label": "Full Name", "type_id": 1, "field_name": "full_name", "data_column": "full_name", "order_index": 1}, {"label": "Email", "type_id": 16, "field_name": "emails", "data_column": "emails", "order_index": 2}, {"label": "Phones", "type_id": 16, "field_name": "phones", "data_column": "phones", "order_index": 3}, {"label": "Password", "type_id": 1, "field_name": "password", "data_column": "password", "order_index": 4}, {"label": "Tenant Id", "type_id": 4, "field_name": "tenant_id", "data_column": "tenant_id", "order_index": 5, "options_table": "tenants", "options_label_column": "name", "options_value_column": "id"}]	none	\N	f	\N	f	2025-10-20 22:31:31.123449+00
41	\N	\N	\N	User	User account details	users	\N	1	grid	[]	none	\N	f	\N	f	2025-10-20 22:31:31.135663+00
42	\N	\N	\N	Vehicle Downtime	Record vehicle downtime periods	vehicle_downtime	\N	1	grid	[]	none	\N	f	\N	f	2025-10-20 22:31:31.147727+00
44	\N	\N	\N	Invoice Settings	Configure invoice defaults	invoice_settings	\N	1	grid	[{"label": "Template Id", "type_id": 0, "field_name": "template_id", "data_column": "template_id", "order_index": 1, "options_table": "invoice_templates", "options_label_column": "name", "options_value_column": "id"}, {"label": "Case Template Id", "type_id": 0, "field_name": "case_template_id", "data_column": "case_template_id", "order_index": 2, "options_table": "invoice_templates", "options_label_column": "name", "options_value_column": "id"}, {"label": "Logo Document Id", "type_id": 0, "field_name": "logo_document_id", "data_column": "logo_document_id", "order_index": 3}, {"label": "Instructions", "type_id": 0, "field_name": "instructions", "data_column": "instructions", "order_index": 4}, {"label": "Disclaimer", "type_id": 0, "field_name": "disclaimer", "data_column": "disclaimer", "order_index": 5}, {"label": "Bank Details", "type_id": 0, "field_name": "bank_details", "data_column": "bank_details", "order_index": 6}, {"label": "Number Format", "type_id": 0, "field_name": "number_format", "data_column": "number_format", "order_index": 7}, {"label": "Starting Number", "type_id": 0, "field_name": "starting_number", "data_column": "starting_number", "order_index": 8}, {"label": "Rollover Date", "type_id": 0, "field_name": "rollover_date", "data_column": "rollover_date", "order_index": 9}]	none	\N	f	\N	f	2025-10-20 22:31:31.158736+00
45	\N	\N	\N	Driver	Driver user	users	\N	1	grid	[{"label": "Full Name", "type_id": 1, "field_name": "full_name", "data_column": "full_name", "order_index": 1}, {"label": "Email", "type_id": 0, "field_name": "email", "data_column": "NULL", "order_index": 2}, {"label": "Phone", "type_id": 1, "field_name": "phone", "data_column": "NULL", "order_index": 3}, {"label": "Password", "type_id": 0, "field_name": "password", "data_column": "NULL", "order_index": 4}]	none	\N	f	\N	f	2025-10-20 22:31:31.170097+00
46	\N	\N	\N	Fleet Engineer	Fleet engineer user	users	\N	1	grid	[{"label": "Full Name", "type_id": 1, "field_name": "full_name", "data_column": "full_name", "order_index": 1}, {"label": "Email", "type_id": 0, "field_name": "email", "data_column": "NULL", "order_index": 2}, {"label": "Phone", "type_id": 1, "field_name": "phone", "data_column": "NULL", "order_index": 3}, {"label": "Password", "type_id": 0, "field_name": "password", "data_column": "NULL", "order_index": 4}]	none	\N	f	\N	f	2025-10-20 22:31:31.181862+00
47	\N	\N	\N	Case Instruction	Matter instruction	case_instructions	\N	1	grid	[{"label": "Case Id", "type_id": 0, "field_name": "case_id", "data_column": "case_id", "order_index": 1}, {"label": "Instruction Date", "type_id": 3, "field_name": "instruction_date", "data_column": "instruction_date", "order_index": 2}, {"label": "Instruction", "type_id": 0, "field_name": "instruction", "data_column": "instruction", "order_index": 3}, {"label": "Documents", "type_id": 9, "field_name": "document_ids", "data_column": "document_ids", "order_index": 4}]	none	\N	f	\N	f	2025-10-20 22:31:31.193722+00
48	\N	\N	\N	Case Expense	Case related expense	expenses	\N	1	grid	[{"label": "Case", "type_id": 4, "field_name": "case_id", "data_column": "reference_id", "order_index": 1, "options_table": "cases", "options_label_column": "title", "options_value_column": "case_id"}, {"label": "Expense Date", "default": "now()", "type_id": 3, "field_name": "date", "data_column": "date", "order_index": 2}, {"label": "Vendor", "type_id": 13, "field_name": "vendor", "data_column": "vendor_id", "order_index": 3, "options_table": "vendors", "options_label_column": "vendorname", "options_value_column": "vendor_id"}, {"label": "Invoice Number", "type_id": 1, "field_name": "invoice_number", "data_column": "invoice_number", "order_index": 4}, {"label": "Amount", "type_id": 2, "field_name": "amount", "data_column": "amount", "order_index": 6}, {"label": "Billable", "type_id": 5, "field_name": "billable", "data_column": "billable", "order_index": 7}, {"label": "Description", "type_id": 8, "field_name": "description", "data_column": "description", "order_index": 10}, {"label": "Documents", "type_id": 9, "field_name": "document_ids", "data_column": "document_ids", "order_index": 14}, {"type_id": 17, "field_name": "reference_table", "data_column": "reference_table", "order_index": 15, "default_value": "cases"}]	none	\N	f	\N	f	2025-10-20 22:31:31.205986+00
58	\N	\N	\N	One Time Cost	One time service cost for a case	one_time_service_costs	\N	1	grid	[{"label": "Case", "type_id": 4, "field_name": "case_id", "data_column": "reference_id", "order_index": 1, "options_table": "cases", "options_label_column": "title", "options_value_column": "case_id"}, {"label": "Cost Date", "default": "now()", "type_id": 3, "field_name": "date", "data_column": "date", "order_index": 2}, {"label": "Vendor", "type_id": 13, "field_name": "vendor", "data_column": "vendor_id", "order_index": 3, "options_table": "vendors", "options_label_column": "vendorname", "options_value_column": "vendor_id"}, {"label": "Invoice Number", "type_id": 1, "field_name": "invoice_number", "data_column": "invoice_number", "order_index": 4}, {"label": "Amount", "type_id": 2, "field_name": "amount", "data_column": "amount", "order_index": 6}, {"label": "Billable", "type_id": 5, "field_name": "billable", "data_column": "billable", "order_index": 7}, {"label": "Description", "type_id": 8, "field_name": "description", "data_column": "description", "order_index": 10}, {"label": "Documents", "type_id": 9, "field_name": "document_ids", "data_column": "document_ids", "order_index": 14}, {"type_id": 17, "field_name": "reference_table", "data_column": "reference_table", "order_index": 15, "default_value": "cases"}]	none	\N	f	\N	f	2025-10-20 22:31:31.218091+00
49	\N	\N	\N	Case Invoice	Invoice for a case	invoices	\N	1	grid	[{"label": "Reference Id", "type_id": 0, "field_name": "invoice_id", "data_column": "invoice_id", "order_index": 1}, {"label": "Invoice Number", "type_id": 0, "field_name": "invoice_number", "data_column": "invoice_number", "order_index": 2}, {"label": "Invoice Date", "type_id": 3, "field_name": "invoice_date", "data_column": "invoice_date", "order_index": 3}, {"label": "Amount", "type_id": 0, "field_name": "amount", "data_column": "amount", "order_index": 4}, {"label": "Status", "type_id": 0, "field_name": "status", "data_column": "status_id", "order_index": 5}, {"label": "Invoice Template Id", "type_id": 0, "field_name": "invoice_template_id", "data_column": "invoice_template_id", "order_index": 6, "options_table": "invoice_templates", "options_label_column": "name", "options_value_column": "id"}]	none	\N	f	\N	f	2025-10-20 22:31:31.231399+00
50	\N	\N	\N	Case Payment	Payment for a case invoice	payments	\N	1	grid	[{"label": "Client", "type_id": 4, "field_name": "client_id", "data_column": "client_id", "order_index": 1, "options_table": "clients", "options_label_column": "name", "options_value_column": "client_id"}, {"label": "Invoice Id", "type_id": 4, "field_name": "invoice_id", "data_column": "invoice_id", "order_index": 2, "options_table": "invoices", "options_label_column": "invoice_number", "options_value_column": "id"}, {"label": "Payment Date", "type_id": 3, "field_name": "payment_date", "data_column": "payment_date", "order_index": 3}, {"label": "Payment Amount", "type_id": 2, "field_name": "payment_amount", "data_column": "payment_amount", "order_index": 4}, {"label": "Payment Method", "options": [{"value": "credit_card", "display_text": "credit card"}, {"value": "bank_transfer", "display_text": "bank transfer"}, {"value": "cash", "display_text": "cash"}, {"value": "check", "display_text": "check"}], "type_id": 4, "field_name": "payment_method", "data_column": "payment_method", "order_index": 5}, {"label": "Reference Id", "type_id": 1, "field_name": "reference_id", "data_column": "reference_id", "order_index": 6}, {"label": "Reference Table", "type_id": 1, "field_name": "reference_table", "data_column": "reference_table", "order_index": 7, "default_value": "cases"}, {"label": "Notes", "type_id": 8, "field_name": "notes", "data_column": "notes", "order_index": 8}, {"label": "Status", "options": [{"value": "completed", "display_text": "completed"}, {"value": "pending", "display_text": "pending"}, {"value": "failed", "display_text": "failed"}], "type_id": 4, "field_name": "status", "data_column": "status", "order_index": 9}, {"label": "Screenshots", "type_id": 7, "field_name": "screenshot_ids", "data_column": "screenshot_ids", "order_index": 10}, {"label": "Documents", "type_id": 9, "field_name": "document_ids", "data_column": "document_ids", "order_index": 11}]	none	\N	f	\N	f	2025-10-20 22:31:31.244218+00
51	\N	\N	\N	Case Approval	Approve or reject case	\N	\N	1	grid	[{"label": "Case Id", "type_id": 0, "field_name": "case_id", "data_column": "case_id", "order_index": 1}, {"label": "Comments", "type_id": 0, "field_name": "comments", "data_column": "comments", "order_index": 2}]	none	\N	f	\N	f	2025-10-20 22:31:31.257647+00
52	\N	\N	\N	OHS Action	Action taken for an incident	ohs_actions	\N	1	grid	[{"label": "Description", "type_id": 0, "field_name": "description", "data_column": "description", "order_index": 1}, {"label": "Responsible User Id", "type_id": 0, "field_name": "responsible_user_id", "data_column": "responsible_user_id", "order_index": 2}, {"label": "Target Date", "type_id": 0, "field_name": "target_date", "data_column": "target_date", "order_index": 3}, {"label": "Status", "type_id": 0, "field_name": "status", "data_column": "status_id", "order_index": 4}, {"label": "Completed At", "type_id": 0, "field_name": "completed_at", "data_column": "completed_at", "order_index": 5}]	none	\N	f	\N	f	2025-10-20 22:31:31.270429+00
53	\N	\N	\N	OHS Regulation	Record safety regulations	ohs_regulations	\N	1	grid	[{"label": "Title", "type_id": 0, "field_name": "title", "data_column": "title", "order_index": 1}, {"label": "Description", "type_id": 0, "field_name": "description", "data_column": "description", "order_index": 2}, {"label": "Effective Date", "type_id": 0, "field_name": "effective_date", "data_column": "effective_date", "order_index": 3}]	none	\N	f	\N	f	2025-10-20 22:31:31.283051+00
54	\N	\N	\N	OHS Compliance Task	Task to meet a regulation	ohs_compliance_tasks	\N	1	grid	[{"label": "Regulation Id", "type_id": 0, "field_name": "regulation_id", "data_column": "regulation_id", "order_index": 1, "options_table": "ohs_regulations", "options_label_column": "title", "options_value_column": "id"}, {"label": "Title", "type_id": 0, "field_name": "title", "data_column": "title", "order_index": 2}, {"label": "Due Date", "type_id": 0, "field_name": "due_date", "data_column": "due_date", "order_index": 3}, {"label": "Assigned To", "type_id": 0, "field_name": "assigned_to", "data_column": "assigned_to", "order_index": 4}, {"label": "Status", "type_id": 0, "field_name": "status", "data_column": "status_id", "order_index": 5}]	none	\N	f	\N	f	2025-10-20 22:31:31.296314+00
55	\N	\N	\N	Permit Inspection	Record permit inspections	permit_inspections	\N	1	grid	[]	none	\N	f	\N	f	2025-10-20 22:31:31.310397+00
101	\N	\N	\N	WorkCOM Inspection Assignment Rule	Inspector assignment rule	inspection_assignment_rules	\N	1	grid	[{"label": "District", "type_id": 4, "field_name": "district_id", "data_column": "district_id", "order_index": 1, "options_table": "districts", "options_label_column": "name", "options_value_column": "id"}, {"label": "Assign", "type_id": 4, "field_name": "inspector_id", "validation": "{\\"filter_columns\\":{\\"groups.name\\":[\\"Investigators\\"]}}", "data_column": "inspector_id", "order_index": 2, "options_table": "users", "options_label_column": "full_name", "options_value_column": "id"}, {"label": "Email", "type_id": 1, "field_name": "email", "data_column": "email", "order_index": 3}, {"label": "Send Email", "type_id": 5, "field_name": "send_email", "data_column": "send_email", "order_index": 4}, {"label": "Phone", "type_id": 1, "field_name": "phone", "data_column": "phone", "order_index": 5}, {"label": "Send SMS", "type_id": 5, "field_name": "send_sms", "data_column": "send_sms", "order_index": 6}, {"label": "Send Push", "type_id": 5, "field_name": "send_push", "data_column": "send_push", "order_index": 7}]	none	\N	f	\N	f	2025-10-20 22:31:31.362362+00
59	\N	\N	\N	OHS Incident Classification	Select incident type and location	ohs_incidents	\N	1	grid	[{"label": "Classification", "type_id": 4, "field_name": "classification", "data_column": "classification", "order_index": 1, "options_table": "ohs_incident_types", "options_label_column": "name", "options_value_column": "name"}, {"label": "Location", "options": [{"value": "Other", "display_text": "Other"}], "type_id": 4, "field_name": "location", "data_column": "location", "order_index": 2, "options_table": "locations", "options_label_column": "name", "options_value_column": "name"}, {"label": "Address", "type_id": 7, "show_when": {"field": "location", "value": "Other"}, "field_name": "address", "data_column": "address", "order_index": 3}, {"label": "Severity", "type_id": 4, "field_name": "severity", "data_column": "severity", "order_index": 4, "options_table": "ohs_severities", "options_label_column": "name", "options_value_column": "name"}]	none	\N	f	\N	f	2025-10-20 22:31:31.375037+00
66	\N	\N	\N	Issues Log	Record safety issues	ohs_issues	\N	1	grid	[{"label": "Description", "type_id": 0, "field_name": "description", "data_column": "description", "order_index": 1}, {"label": "Type", "type_id": 0, "field_name": "type", "data_column": "type", "order_index": 2}, {"label": "Category", "type_id": 0, "field_name": "category", "data_column": "category", "order_index": 3}, {"label": "Impact", "type_id": 0, "field_name": "impact", "data_column": "impact", "order_index": 4}, {"label": "Risk Or Opportunity", "type_id": 0, "field_name": "risk_or_opportunity", "data_column": "risk_or_opportunity", "order_index": 5}, {"label": "Action Taken", "type_id": 0, "field_name": "action_taken", "data_column": "action_taken", "order_index": 6}, {"label": "Owner", "type_id": 0, "field_name": "owner", "data_column": "owner", "order_index": 7}, {"label": "Review Date", "type_id": 0, "field_name": "review_date", "data_column": "review_date", "order_index": 8}]	none	\N	f	\N	f	2025-10-20 22:31:31.387968+00
67	\N	\N	\N	Needs & Expectations Assessment	Stakeholder needs and expectations	ohs_needs_expectations	\N	1	grid	[{"label": "Interested Party", "type_id": 0, "field_name": "interested_party", "data_column": "interested_party", "order_index": 1}, {"label": "Needs", "type_id": 0, "field_name": "needs", "data_column": "needs", "order_index": 2}, {"label": "Expectations", "type_id": 0, "field_name": "expectations", "data_column": "expectations", "order_index": 3}, {"label": "Compliance Required", "type_id": 0, "field_name": "compliance_required", "data_column": "compliance_required", "order_index": 4}, {"label": "Source", "type_id": 0, "field_name": "source", "data_column": "source", "order_index": 5}, {"label": "Status", "type_id": 0, "field_name": "status_id", "data_column": "status_id", "order_index": 6}, {"label": "Notes", "type_id": 0, "field_name": "notes", "data_column": "notes", "order_index": 7}, {"label": "Review Date", "type_id": 0, "field_name": "review_date", "data_column": "review_date", "order_index": 8}, {"label": "Review By", "type_id": 0, "field_name": "review_by", "data_column": "review_by", "order_index": 9}]	none	\N	f	\N	f	2025-10-20 22:31:31.400456+00
68	\N	\N	\N	Inspection Type	Manage inspection categories	ohs_inspection_types	\N	1	grid	[{"label": "Name", "type_id": 1, "field_name": "name", "data_column": "name", "order_index": 1}, {"label": "Form Id", "type_id": 4, "field_name": "form_id", "data_column": "form_id", "order_index": 2, "options_table": "forms", "options_label_column": "name", "options_value_column": "id"}]	none	\N	f	\N	f	2025-10-20 22:31:31.412109+00
104	\N	\N	\N	WorkCOM Inspection Type	Manage WorkCOM inspection categories	workcom_inspection_types	\N	1	grid	[{"label": "Name", "type_id": 1, "field_name": "name", "data_column": "name", "order_index": 1}, {"label": "Form Id", "type_id": 4, "field_name": "form_id", "data_column": "form_id", "order_index": 2, "options_table": "forms", "options_label_column": "name", "options_value_column": "id"}]	none	\N	f	\N	f	2025-10-20 22:31:31.423498+00
105	\N	\N	\N	OHS Field Incident	Report field incidents	ohs_incidents	\N	1	grid	[{"label": "Incident Type", "type_id": 1, "field_name": "incident_type", "json_column": "form_data", "order_index": 1}, {"label": "Location", "type_id": 1, "field_name": "location", "data_column": "location", "order_index": 2}, {"label": "Description", "type_id": 8, "field_name": "description", "json_column": "form_data", "order_index": 3}, {"label": "Documents", "type_id": 9, "field_name": "document_ids", "json_column": "form_data", "order_index": 4}, {"label": "GPS", "type_id": 20, "field_name": "gps", "json_column": "form_data", "order_index": 5}]	none	\N	f	\N	f	2025-10-20 22:31:31.436447+00
71	\N	\N	\N	Form Category	Manage form categories	form_categories	\N	1	grid	[{"label": "Name", "type_id": 1, "field_name": "name", "data_column": "name", "order_index": 1}, {"label": "Description", "type_id": 7, "field_name": "description", "data_column": "description", "order_index": 2}]	none	\N	f	\N	f	2025-10-20 22:31:31.447856+00
99	\N	\N	\N	Inspection Request	Submit request for workplace inspection	inspection_requests	\N	1	grid	[{"label": "Workplace", "type_id": 4, "field_name": "workplace_id", "data_column": "workplace_id", "order_index": 1, "options_table": "workplace_registrations", "options_label_column": "company_name", "options_value_column": "id"}, {"label": "Description", "type_id": 7, "field_name": "description", "data_column": "description", "order_index": 2}, {"label": "Preferred Date", "type_id": 3, "field_name": "preferred_date", "data_column": "preferred_date", "order_index": 3}]	none	\N	f	\N	f	2025-10-20 22:31:31.83441+00
72	\N	\N	\N	Training Certificate	Employee training record	training_certificates	\N	1	grid	[{"label": "Certificate Name", "type_id": 1, "field_name": "certificate_name", "data_column": "certificate_name", "order_index": 1, "options_table": "training_courses", "options_label_column": "name", "options_value_column": "id"}, {"label": "Category", "type_id": 1, "field_name": "category", "data_column": "category", "order_index": 2, "options_table": "training_categories", "options_label_column": "name", "options_value_column": "id"}, {"label": "Employee Id", "type_id": 4, "field_name": "employee_id", "data_column": "certificate_user_id", "order_index": 3, "options_table": "users", "options_label_column": "full_name", "options_value_column": "id"}, {"label": "Issued At", "type_id": 3, "field_name": "issued_at", "data_column": "issued_at", "order_index": 4}, {"label": "Expiry Date", "type_id": 3, "field_name": "expiry_date", "data_column": "expiry_date", "order_index": 5}]	none	\N	f	\N	f	2025-10-20 22:31:31.460698+00
73	\N	\N	\N	Investigator	Investigator user	users	\N	1	grid	[{"label": "Full Name", "type_id": 1, "field_name": "full_name", "data_column": "full_name", "order_index": 1}, {"label": "Emails", "type_id": 15, "field_name": "emails", "data_column": "emails", "order_index": 2}, {"label": "Phones", "type_id": 15, "field_name": "phones", "data_column": "phones", "order_index": 3}, {"label": "Password", "type_id": 0, "field_name": "password", "data_column": null, "order_index": 4}]	none	\N	f	\N	f	2025-10-20 22:31:31.474848+00
74	\N	\N	\N	Inspection Template	Define reusable inspection templates	ohs_inspection_templates	\N	1	grid	[{"label": "Template Name", "type_id": 1, "field_name": "template_name", "data_column": "template_name", "order_index": 1}, {"label": "Form Id", "type_id": 4, "field_name": "form_id", "data_column": "form_id", "order_index": 2, "options_table": "forms", "options_label_column": "name", "options_value_column": "id"}, {"label": "Description", "type_id": 7, "field_name": "description", "data_column": "description", "order_index": 3}]	none	\N	f	\N	f	2025-10-20 22:31:31.487449+00
97	\N	\N	\N	Safety Incident	Record safety incidents	safety_incidents	\N	1	grid	[{"label": "Incident Type", "type_id": 4, "field_name": "incident_type", "data_column": "incident_type", "order_index": 1, "options_table": "safety_incident_types", "options_label_column": "name", "options_value_column": "id"}, {"label": "Location", "type_id": 1, "field_name": "location", "data_column": "location", "order_index": 2}, {"label": "Description", "type_id": 8, "field_name": "description", "data_column": "description", "order_index": 3}, {"label": "Documents", "type_id": 9, "field_name": "document_ids", "data_column": "document_ids", "order_index": 4}, {"label": "GPS", "type_id": 20, "field_name": "gps", "data_column": "gps", "order_index": 5}]	none	\N	f	\N	f	2025-10-20 22:31:31.499743+00
107	\N	\N	\N	Safety Incident Classification	Select incident type and location	safety_incidents	\N	1	grid	[{"label": "Incident Type", "type_id": 4, "field_name": "incident_type", "data_column": "incident_type", "order_index": 1, "options_table": "safety_incident_types", "options_label_column": "name", "options_value_column": "id"}, {"label": "Location", "type_id": 4, "field_name": "location", "data_column": "location", "order_index": 2, "options_table": "locations", "options_label_column": "name", "options_value_column": "name"}]	none	\N	f	\N	f	2025-10-20 22:31:31.512026+00
98	\N	\N	\N	Incident Alert Rule	Alert configuration per incident type	incident_alert_rules	\N	1	grid	[{"label": "Incident Type", "type_id": 4, "field_name": "incident_type_id", "data_column": "incident_type_id", "order_index": 1, "options_table": "ohs_incident_types", "options_label_column": "name", "options_value_column": "id"}, {"label": "Severity", "options": [{"value": "Minor", "display_text": "Minor"}, {"value": "Moderate", "display_text": "Moderate"}, {"value": "Major", "display_text": "Major"}, {"value": "Severe", "display_text": "Severe"}, {"value": "Critical", "display_text": "Critical"}], "type_id": 4, "field_name": "severity", "data_column": "severity", "order_index": 2}, {"label": "Location", "options": [{"value": "", "display_text": "All Locations"}], "type_id": 4, "field_name": "location_id", "data_column": "location_id", "order_index": 3, "options_table": "locations", "options_label_column": "name", "options_value_column": "id"}, {"label": "Send Alert To", "type_id": 4, "field_name": "send_alert_to", "data_column": "send_alert_to", "order_index": 4, "options_table": "users", "options_label_column": "full_name", "options_value_column": "id"}, {"label": "Email", "type_id": 1, "field_name": "email", "data_column": "email", "order_index": 5}, {"label": "Send Email", "type_id": 5, "field_name": "send_email", "data_column": "send_email", "order_index": 6}, {"label": "Phone", "type_id": 1, "field_name": "phone", "data_column": "phone", "order_index": 7}, {"label": "Send SMS", "type_id": 5, "field_name": "send_sms", "data_column": "send_sms", "order_index": 8}, {"label": "Send Push", "type_id": 5, "field_name": "send_push", "data_column": "send_push", "order_index": 9}]	none	\N	f	\N	f	2025-10-20 22:31:31.538707+00
75	\N	\N	\N	Risk Assessment	Record assessment administrative info	risk_assessments	\N	1	grid	[{"label": "Type", "type_id": 4, "field_name": "risk_assessment_type_id", "data_column": "risk_assessment_type_id", "order_index": 1, "options_table": "risk_assessment_types", "options_label_column": "name", "options_value_column": "id"}, {"label": "Location", "type_id": 4, "field_name": "location", "data_column": "location", "order_index": 2, "options_table": "locations", "options_label_column": "name", "options_value_column": "name"}]	none	\N	f	\N	f	2025-10-20 22:31:31.574196+00
76	\N	\N	\N	Risk Assessment Hazard	Identify hazards and controls	risk_assessment_hazards	\N	1	grid	[{"label": "Hazard Description", "type_id": 7, "field_name": "hazard_description", "data_column": "hazard_description", "order_index": 1}, {"label": "Who Might Be Harmed", "type_id": 1, "field_name": "who_might_be_harmed", "data_column": "who_might_be_harmed", "order_index": 2}, {"label": "Existing Controls", "type_id": 7, "field_name": "existing_control_measures", "data_column": "existing_control_measures", "order_index": 3}, {"label": "Risk Rating Before", "type_id": 2, "field_name": "risk_rating_before", "data_column": "risk_rating_before", "order_index": 4}, {"label": "Additional Controls", "type_id": 7, "field_name": "additional_controls", "data_column": "additional_controls", "order_index": 5}, {"label": "Residual Risk", "type_id": 2, "field_name": "residual_risk_rating", "data_column": "residual_risk_rating", "order_index": 6}, {"label": "Responsible Person", "type_id": 1, "field_name": "responsible_person", "data_column": "responsible_person", "order_index": 7}]	none	\N	f	\N	f	2025-10-20 22:31:31.597548+00
77	\N	\N	\N	Risk Assessment PPE	Personal protective equipment checklist	risk_assessment_ppe	\N	1	grid	[{"label": "Checklist Item", "type_id": 1, "field_name": "checklist_item", "data_column": "checklist_item", "order_index": 1}]	none	\N	f	\N	f	2025-10-20 22:31:31.609144+00
78	\N	\N	\N	Risk Assessment Sign-off	Record assessment approvals	risk_assessment_signoffs	\N	1	grid	[{"label": "Name", "type_id": 1, "field_name": "name", "data_column": "name", "order_index": 1}, {"label": "Position", "type_id": 1, "field_name": "position", "data_column": "position", "order_index": 2}, {"label": "Signature", "type_id": 7, "field_name": "signature", "data_column": "signature", "order_index": 3}, {"label": "Signed At", "type_id": 3, "field_name": "signed_at", "data_column": "signed_at", "order_index": 4}]	none	\N	f	\N	f	2025-10-20 22:31:31.621185+00
80	\N	\N	\N	Risk Identification	Identify risks	risk_identifications	\N	1	grid	[{"label": "Risk Description", "type_id": 7, "field_name": "risk_description", "data_column": "risk_description", "order_index": 1}, {"label": "Risk category", "type_id": 4, "field_name": "risk_category_id", "data_column": "risk_category_id", "order_index": 2, "options_table": "risk_categories", "options_label_column": "name", "options_value_column": "id"}, {"label": "Root Cause", "type_id": 1, "field_name": "root_cause", "data_column": "root_cause", "order_index": 3}, {"label": "Likelihood", "options": [{"value": "1", "display_text": "1"}, {"value": "2", "display_text": "2"}, {"value": "3", "display_text": "3"}, {"value": "4", "display_text": "4"}, {"value": "5", "display_text": "5"}], "type_id": 4, "field_name": "likelihood", "data_column": "likelihood", "order_index": 4}, {"label": "Impact", "options": [{"value": "1", "display_text": "1"}, {"value": "2", "display_text": "2"}, {"value": "3", "display_text": "3"}, {"value": "4", "display_text": "4"}, {"value": "5", "display_text": "5"}], "type_id": 4, "field_name": "impact", "data_column": "impact", "order_index": 5}, {"label": "Current Controls", "type_id": 7, "field_name": "current_controls", "data_column": "current_controls", "order_index": 6}]	none	\N	f	\N	f	2025-10-20 22:31:31.659271+00
79	\N	\N	\N	Risk Category	Risk classification	risk_categories	\N	1	grid	[{"label": "Name", "type_id": 1, "field_name": "name", "data_column": "name", "order_index": 1}, {"label": "Description", "type_id": 7, "field_name": "description", "data_column": "description", "order_index": 2}]	none	\N	f	\N	f	2025-10-20 22:31:31.687286+00
81	\N	\N	\N	Calendar Category	Manage calendar categories	calendar_categories	\N	1	grid	[{"label": "Name", "type_id": 1, "field_name": "name", "data_column": "name", "order_index": 1}, {"label": "Description", "type_id": 7, "field_name": "description", "data_column": "description", "order_index": 2}]	none	\N	f	\N	f	2025-10-20 22:31:31.699919+00
82	\N	\N	\N	Incident Status	Manage incident status options	ohs_incident_statuses	\N	1	grid	[{"label": "Name", "type_id": 1, "field_name": "name", "data_column": "name", "order_index": 1}, {"label": "Purpose", "type_id": 7, "field_name": "purpose", "data_column": "purpose", "order_index": 2}]	none	\N	f	\N	f	2025-10-20 22:31:31.712363+00
83	\N	\N	\N	Five Whys	Record Five Whys analysis	ohs_five_whys	\N	1	grid	[{"label": "Incident", "type_id": 4, "field_name": "incident_id", "data_column": "incident_id", "order_index": 1, "options_table": "ohs_incidents", "options_label_column": "id", "options_value_column": "id"}, {"label": "Why 1", "type_id": 1, "field_name": "why1", "json_column": "whys", "order_index": 2}, {"label": "Why 2", "type_id": 1, "field_name": "why2", "json_column": "whys", "order_index": 3}, {"label": "Why 3", "type_id": 1, "field_name": "why3", "json_column": "whys", "order_index": 4}, {"label": "Why 4", "type_id": 1, "field_name": "why4", "json_column": "whys", "order_index": 5}, {"label": "Why 5", "type_id": 1, "field_name": "why5", "json_column": "whys", "order_index": 6}]	none	\N	f	\N	f	2025-10-20 22:31:31.727336+00
85	\N	\N	\N	Water Treatment Plant Risk Assessment	Assessment of operational and chemical risks in treatment facilities	risk_assessments	\N	1	grid	[{"type_id": 1, "field_name": "risk_assessment_type_id", "data_column": "risk_assessment_type_id", "order_index": 0}, {"label": "Title", "type_id": 1, "field_name": "title", "data_column": "title", "order_index": 1}, {"label": "Assessment Date", "type_id": 3, "field_name": "assessment_date", "data_column": "assessment_date", "order_index": 2}, {"label": "Location", "type_id": 1, "field_name": "location", "data_column": "location", "order_index": 3}, {"label": "Assessor Names", "type_id": 1, "field_name": "assessor_names", "json_column": "form_data", "order_index": 4}, {"label": "Review Date", "type_id": 3, "field_name": "review_date", "data_column": "review_date", "order_index": 5}, {"label": "Approver", "type_id": 1, "field_name": "approver_name", "json_column": "form_data", "order_index": 6}, {"label": "Work Description", "type_id": 7, "field_name": "work_description", "json_column": "form_data", "order_index": 7}, {"label": "Permit Requirements", "type_id": 7, "field_name": "permit_requirements", "json_column": "form_data", "order_index": 8}, {"label": "Chemical Used", "type_id": 1, "field_name": "chemical", "json_column": "form_data", "order_index": 9}, {"label": "Hazard Identified", "type_id": 7, "field_name": "hazard", "json_column": "form_data", "order_index": 10}, {"label": "Risk Rating", "type_id": 2, "field_name": "risk_rating", "json_column": "form_data", "order_index": 11}, {"label": "Control Measures", "type_id": 7, "field_name": "controls", "json_column": "form_data", "order_index": 12}]	none	\N	f	\N	f	2025-10-20 22:31:31.755147+00
86	\N	\N	\N	Pipeline & Infrastructure Risk Assessment	Evaluation of potential failure points across distribution infrastructure	risk_assessments	\N	1	grid	[{"type_id": 1, "field_name": "risk_assessment_type_id", "data_column": "risk_assessment_type_id", "order_index": 0}, {"label": "Title", "type_id": 1, "field_name": "title", "data_column": "title", "order_index": 1}, {"label": "Assessment Date", "type_id": 3, "field_name": "assessment_date", "data_column": "assessment_date", "order_index": 2}, {"label": "Location", "type_id": 1, "field_name": "location", "data_column": "location", "order_index": 3}, {"label": "Assessor Names", "type_id": 1, "field_name": "assessor_names", "json_column": "form_data", "order_index": 4}, {"label": "Review Date", "type_id": 3, "field_name": "review_date", "data_column": "review_date", "order_index": 5}, {"label": "Approver", "type_id": 1, "field_name": "approver_name", "json_column": "form_data", "order_index": 6}, {"label": "Work Description", "type_id": 7, "field_name": "work_description", "json_column": "form_data", "order_index": 7}, {"label": "Permit Requirements", "type_id": 7, "field_name": "permit_requirements", "json_column": "form_data", "order_index": 8}, {"label": "Pipe Segment", "type_id": 1, "field_name": "pipe_segment", "json_column": "form_data", "order_index": 9}, {"label": "Material Type", "type_id": 1, "field_name": "material", "json_column": "form_data", "order_index": 10}, {"label": "Identified Risk", "type_id": 7, "field_name": "risk", "json_column": "form_data", "order_index": 11}, {"label": "Failure Likelihood", "type_id": 2, "field_name": "likelihood", "json_column": "form_data", "order_index": 12}, {"label": "Mitigation Action", "type_id": 7, "field_name": "action", "json_column": "form_data", "order_index": 13}]	none	\N	f	\N	f	2025-10-20 22:31:31.765965+00
87	\N	\N	\N	Environmental and Climate Risk Assessment	Assesses environmental vulnerabilities to water supply and treatment	risk_assessments	\N	1	grid	[{"type_id": 1, "field_name": "risk_assessment_type_id", "data_column": "risk_assessment_type_id", "order_index": 0}, {"label": "Title", "type_id": 1, "field_name": "title", "data_column": "title", "order_index": 1}, {"label": "Assessment Date", "type_id": 3, "field_name": "assessment_date", "data_column": "assessment_date", "order_index": 2}, {"label": "Location", "type_id": 1, "field_name": "location", "data_column": "location", "order_index": 3}, {"label": "Assessor Names", "type_id": 1, "field_name": "assessor_names", "json_column": "form_data", "order_index": 4}, {"label": "Review Date", "type_id": 3, "field_name": "review_date", "data_column": "review_date", "order_index": 5}, {"label": "Approver", "type_id": 1, "field_name": "approver_name", "json_column": "form_data", "order_index": 6}, {"label": "Work Description", "type_id": 7, "field_name": "work_description", "json_column": "form_data", "order_index": 7}, {"label": "Permit Requirements", "type_id": 7, "field_name": "permit_requirements", "json_column": "form_data", "order_index": 8}, {"label": "Area Assessed", "type_id": 1, "field_name": "area", "json_column": "form_data", "order_index": 9}, {"label": "Environmental Risk", "type_id": 7, "field_name": "env_risk", "json_column": "form_data", "order_index": 10}, {"label": "Climate Trigger", "type_id": 1, "field_name": "trigger", "json_column": "form_data", "order_index": 11}, {"label": "Severity", "type_id": 2, "field_name": "severity", "json_column": "form_data", "order_index": 12}, {"label": "Control Plan", "type_id": 7, "field_name": "plan", "json_column": "form_data", "order_index": 13}]	none	\N	f	\N	f	2025-10-20 22:31:31.776779+00
88	\N	\N	\N	Occupational Health & Safety Risk Assessment	OHS-focused hazard evaluation in operational areas and fieldwork	risk_assessments	\N	1	grid	[{"type_id": 1, "field_name": "risk_assessment_type_id", "data_column": "risk_assessment_type_id", "order_index": 0}, {"label": "Title", "type_id": 1, "field_name": "title", "data_column": "title", "order_index": 1}, {"label": "Assessment Date", "type_id": 3, "field_name": "assessment_date", "data_column": "assessment_date", "order_index": 2}, {"label": "Location", "type_id": 1, "field_name": "location", "data_column": "location", "order_index": 3}, {"label": "Assessor Names", "type_id": 1, "field_name": "assessor_names", "json_column": "form_data", "order_index": 4}, {"label": "Review Date", "type_id": 3, "field_name": "review_date", "data_column": "review_date", "order_index": 5}, {"label": "Approver", "type_id": 1, "field_name": "approver_name", "json_column": "form_data", "order_index": 6}, {"label": "Work Description", "type_id": 7, "field_name": "work_description", "json_column": "form_data", "order_index": 7}, {"label": "Permit Requirements", "type_id": 7, "field_name": "permit_requirements", "json_column": "form_data", "order_index": 8}, {"label": "Job Task", "type_id": 1, "field_name": "task", "json_column": "form_data", "order_index": 9}, {"label": "Identified Hazard", "type_id": 7, "field_name": "hazard", "json_column": "form_data", "order_index": 10}, {"label": "Risk Level", "type_id": 2, "field_name": "risk_level", "json_column": "form_data", "order_index": 11}, {"label": "PPE Required", "type_id": 1, "field_name": "ppe", "json_column": "form_data", "order_index": 12}, {"label": "First Aid Measures", "type_id": 7, "field_name": "first_aid", "json_column": "form_data", "order_index": 13}]	none	\N	f	\N	f	2025-10-20 22:31:31.787564+00
89	\N	\N	\N	Cybersecurity & SCADA Risk Assessment	Review of IT security and SCADA operational risk vulnerabilities	risk_assessments	\N	1	grid	[{"type_id": 1, "field_name": "risk_assessment_type_id", "data_column": "risk_assessment_type_id", "order_index": 0}, {"label": "Title", "type_id": 1, "field_name": "title", "data_column": "title", "order_index": 1}, {"label": "Assessment Date", "type_id": 3, "field_name": "assessment_date", "data_column": "assessment_date", "order_index": 2}, {"label": "Location", "type_id": 1, "field_name": "location", "data_column": "location", "order_index": 3}, {"label": "Assessor Names", "type_id": 1, "field_name": "assessor_names", "json_column": "form_data", "order_index": 4}, {"label": "Review Date", "type_id": 3, "field_name": "review_date", "data_column": "review_date", "order_index": 5}, {"label": "Approver", "type_id": 1, "field_name": "approver_name", "json_column": "form_data", "order_index": 6}, {"label": "Work Description", "type_id": 7, "field_name": "work_description", "json_column": "form_data", "order_index": 7}, {"label": "Permit Requirements", "type_id": 7, "field_name": "permit_requirements", "json_column": "form_data", "order_index": 8}, {"label": "System/Module", "type_id": 1, "field_name": "system", "json_column": "form_data", "order_index": 9}, {"label": "Threat Type", "type_id": 1, "field_name": "threat", "json_column": "form_data", "order_index": 10}, {"label": "Vulnerability Description", "type_id": 7, "field_name": "vuln", "json_column": "form_data", "order_index": 11}, {"label": "Impact Rating", "type_id": 2, "field_name": "impact", "json_column": "form_data", "order_index": 12}, {"label": "Mitigation Strategy", "type_id": 7, "field_name": "strategy", "json_column": "form_data", "order_index": 13}]	none	\N	f	\N	f	2025-10-20 22:31:31.799303+00
103	\N	\N	\N	WorkCOM Inspection Start	Select inspection type and workplace	workcom_inspections	\N	1	grid	[{"label": "Workplace", "type_id": 4, "field_name": "workplace_id", "data_column": "workplace_id", "order_index": 1, "options_table": "workplace_registrations", "options_label_column": "company_name", "options_value_column": "id"}, {"label": "Inspection Request", "type_id": 4, "field_name": "inspection_request_id", "data_column": "inspection_request_id", "order_index": 2, "options_table": "inspection_requests", "options_label_column": "id", "options_value_column": "id"}, {"label": "Inspection Type", "type_id": 4, "field_name": "workcom_inspection_type_id", "data_column": "inspection_type_id", "order_index": 3, "options_table": "workcom_inspection_types", "options_label_column": "name", "options_value_column": "id"}]	none	\N	f	\N	f	2025-10-20 22:31:31.849443+00
106	\N	\N	\N	Workplace Registration	Record new workplaces	workplace_registrations	\N	1	grid	[{"label": "Name of owner(s) of business", "type_id": 16, "field_name": "name_of_owners_of_business", "order_index": 0, "placeholder": "Name of owner(s) of business:"}, {"label": "Trading name", "type_id": 1, "field_name": "trading_name", "order_index": 1, "placeholder": "Trading name"}, {"label": "Address of workplace", "type_id": 1, "field_name": "address_of_workplace", "order_index": 2, "placeholder": "Address of workplace"}, {"label": "Postal address", "type_id": 1, "field_name": "postal_address", "order_index": 3, "placeholder": "Postal address"}, {"label": "Date of business commenced operations at these premises", "type_id": 3, "field_name": "date_of_business_commenced_operations_at_these_premises", "order_index": 4, "placeholder": "Date of business commenced operations at these premises"}, {"label": "Details of ownership of premises", "type_id": 8, "field_name": "details_of_ownership_of_premises", "order_index": 5, "placeholder": "Details of ownership of premises"}, {"label": "Name & address of Owner of the Building:", "type_id": 1, "field_name": "name_and_address_of_owner_of_the_building", "order_index": 6, "placeholder": "Name & address of Owner of the Building"}, {"label": "Details of business activity: (Refer to First Schedule)", "type_id": 8, "field_name": "details_of_business_activiy", "order_index": 7, "placeholder": "Details of business activity"}, {"label": "Main Activity Conducted by Business", "type_id": 1, "field_name": "main_activity_conducted_by_business", "order_index": 8, "placeholder": "Main Activity Conducted by Business"}, {"label": "Principal Articles to be manufactured repaired or sold", "type_id": 1, "field_name": "principal_articles_to_be_manufactured_repaired_or_sold", "order_index": 9, "placeholder": "Principal Articles to be manufactured repaired or sold"}, {"label": "Are goods sold at this location:", "type_id": 5, "field_name": "goods_sold", "order_index": 10, "placeholder": ""}, {"label": "Sales Type", "options": [{"value": "wholesale", "display_text": "Wholesale"}, {"value": "retail", "display_text": "Retail"}, {"value": "both", "display_text": "Both"}], "type_id": 4, "field_name": "sales_type", "order_index": 11, "condition_field": "goods_sold", "condition_value": "1"}, {"label": "Has Site Previously been used as a workplace", "type_id": 1, "field_name": "has_site_previously_been_used_as_a_workplace", "order_index": 12, "placeholder": "Has Site Previously been used as a workplace"}, {"label": "Name of previous Occupier", "type_id": 1, "field_name": "name_of_previous_occupier", "order_index": 13, "placeholder": "Name of previous Occupier"}, {"label": "Contact telephone number", "type_id": 2, "field_name": "contact_telephone_number", "order_index": 14, "placeholder": "Contact telephone number"}, {"label": "Maximum Number of Employees", "type_id": 2, "field_name": "maximum_number_of_employees", "order_index": 14, "placeholder": "Maximum Number of Employees"}, {"label": "Committee Members", "type_id": 8, "field_name": "committee_members", "order_index": 14, "placeholder": "Committee Members"}, {"label": "Training Undergone", "type_id": 5, "field_name": "training_undergone", "order_index": 14, "placeholder": "Training Undergone"}, {"label": "Districts", "type_id": 4, "field_name": "districts", "order_index": 14, "placeholder": "Districts", "options_table": "districts", "options_label_column": "name", "options_value_column": "id"}, {"label": "OHS Policy", "type_id": 9, "field_name": "ohs_policy", "order_index": 14, "placeholder": "OHS Policy"}, {"label": "Meeting Minutes", "type_id": 9, "field_name": "minutes", "order_index": 14, "placeholder": "Meeting Minutes"}]	none	\N	f	\N	f	2025-10-20 22:31:32.068376+00
110	\N	\N	\N	Vendor	Manage Vendors	vendors	\N	1	grid	[{"label": "Vendor Name", "type_id": 1, "field_name": "vendorname", "data_column": "vendorname", "order_index": 1}, {"label": "Business Registration Number", "type_id": 1, "field_name": "businessRegNumber", "data_column": "businessRegNumber", "order_index": 2}, {"label": "TIN Number", "type_id": 1, "field_name": "tin", "data_column": "tin", "order_index": 3}, {"label": "Phone Numbers", "type_id": 16, "multiple": true, "field_name": "phone_numbers", "order_index": 4, "options_table": "vendor_phone_numbers", "options_label_column": "phone_number", "options_value_column": "vendor_phone_id"}, {"label": "Emails", "type_id": 16, "multiple": true, "field_name": "emails", "order_index": 5, "options_table": "vendor_emails", "options_label_column": "email", "options_value_column": "vendor_email_id"}]	none	\N	f	\N	f	2025-10-20 22:31:32.13701+00
620	\N	\N	\N	RFQ Template	Define reusable RFQ templates	rfq_templates	\N	1	grid	[{"label": "Template Name", "type_id": 1, "field_name": "name", "data_column": "name", "order_index": 1}, {"label": "Template Code", "type_id": 1, "field_name": "code", "data_column": "code", "order_index": 2, "placeholder": "Optional short code"}, {"label": "Category", "type_id": 1, "field_name": "category", "data_column": "category", "order_index": 3}, {"label": "Default Template", "type_id": 5, "field_name": "is_default", "data_column": "is_default", "order_index": 4}, {"label": "Valid From", "type_id": 3, "field_name": "valid_from", "data_column": "valid_from", "order_index": 5}, {"label": "Valid Until", "type_id": 3, "field_name": "valid_until", "data_column": "valid_until", "order_index": 6}, {"label": "Distribution Channels", "type_id": 8, "field_name": "distribution_channels", "data_column": "distribution_channels", "order_index": 7, "placeholder": "Comma separated, e.g. email,portal"}, {"label": "Description", "type_id": 8, "field_name": "description", "data_column": "description", "order_index": 8}]	none	\N	f	\N	f	2025-10-20 22:31:32.149965+00
621	\N	\N	\N	RFQ Template Section	Manage RFQ template sections	rfq_template_sections	\N	1	grid	[{"label": "Template", "type_id": 13, "required": true, "field_name": "rfq_template_id", "data_column": "rfq_template_id", "order_index": 1, "options_table": "rfq_templates", "options_label_column": "name", "options_value_column": "rfq_template_id"}, {"label": "Section Key", "type_id": 1, "field_name": "section_key", "data_column": "section_key", "order_index": 2, "placeholder": "e.g. scope,terms,pricing"}, {"label": "Heading", "type_id": 1, "field_name": "heading", "data_column": "heading", "order_index": 3}, {"label": "Body (Markdown)", "type_id": 8, "field_name": "body_markdown", "data_column": "body_markdown", "order_index": 4}, {"label": "Body (HTML)", "type_id": 8, "field_name": "body_html", "data_column": "body_html", "order_index": 5}, {"label": "Display Order", "type_id": 2, "field_name": "sort_order", "data_column": "sort_order", "order_index": 6}, {"label": "Required", "type_id": 5, "field_name": "is_required", "data_column": "is_required", "order_index": 7}, {"label": "Include In Printed PDF", "type_id": 5, "field_name": "include_in_print", "data_column": "include_in_print", "order_index": 8}, {"label": "Include In Email", "type_id": 5, "field_name": "include_in_email", "data_column": "include_in_email", "order_index": 9}]	none	\N	f	\N	f	2025-10-20 22:31:32.163403+00
622	\N	\N	\N	RFQ Template Attachment	Attach standard files to RFQ templates	rfq_template_attachments	\N	1	grid	[{"label": "Template", "type_id": 13, "required": true, "field_name": "rfq_template_id", "data_column": "rfq_template_id", "order_index": 1, "options_table": "rfq_templates", "options_label_column": "name", "options_value_column": "rfq_template_id"}, {"label": "Label", "type_id": 1, "field_name": "label", "data_column": "label", "order_index": 2}, {"label": "File Type", "type_id": 1, "field_name": "filetype", "data_column": "filetype", "order_index": 3, "placeholder": "e.g. pdf,docx"}, {"label": "File URL", "type_id": 7, "field_name": "file_url", "data_column": "file_url", "order_index": 4}, {"label": "Include When", "options": [{"label": "Always", "value": "always"}, {"label": "Awarded", "value": "awarded"}, {"label": "Pre-Issuance", "value": "pre_issuance"}], "type_id": 4, "field_name": "include_when", "data_column": "include_when", "order_index": 5}, {"label": "Sort Order", "type_id": 2, "field_name": "sort_order", "data_column": "sort_order", "order_index": 6}]	none	\N	f	\N	f	2025-10-20 22:31:32.174957+00
610	\N	\N	\N	Vendor Contact	Capture vendor contact records	vendor_contacts	\N	1	grid	[{"label": "Vendor", "type_id": 17, "field_name": "vendor_id", "data_column": "vendor_id", "order_index": 1, "options_table": "vendors", "options_label_column": "vendorname", "options_value_column": "vendor_id"}, {"label": "Contact Name", "type_id": 1, "field_name": "contact_name", "data_column": "contact_name", "order_index": 2}, {"label": "Role", "type_id": 1, "field_name": "contact_role", "data_column": "contact_role", "order_index": 3}, {"label": "Email", "type_id": 1, "field_name": "email", "data_column": "email", "order_index": 4}, {"label": "Phone Number", "type_id": 1, "field_name": "phone_number", "data_column": "phone_number", "order_index": 5}, {"label": "Primary Contact", "type_id": 5, "field_name": "is_primary", "data_column": "is_primary", "order_index": 6}, {"label": "Notes", "type_id": 8, "field_name": "notes", "data_column": "notes", "order_index": 7}]	none	\N	f	\N	f	2025-10-20 22:31:32.186684+00
611	\N	\N	\N	Vendor Address	Manage vendor address records	vendor_addresses	\N	1	grid	[{"label": "Vendor", "type_id": 17, "field_name": "vendor_id", "data_column": "vendor_id", "order_index": 1, "options_table": "vendors", "options_label_column": "vendorname", "options_value_column": "vendor_id"}, {"label": "Address Type", "options": [{"value": "office", "display_text": "Office"}, {"value": "billing", "display_text": "Billing"}, {"value": "shipping", "display_text": "Shipping"}, {"value": "registered", "display_text": "Registered"}, {"value": "other", "display_text": "Other"}], "type_id": 4, "field_name": "address_type", "data_column": "address_type", "order_index": 2}, {"label": "Address Line 1", "type_id": 1, "field_name": "line1", "data_column": "line1", "order_index": 3}, {"label": "Address Line 2", "type_id": 1, "field_name": "line2", "data_column": "line2", "order_index": 4}, {"label": "City", "type_id": 1, "field_name": "city", "data_column": "city", "order_index": 5}, {"label": "State / Region", "type_id": 1, "field_name": "state_region", "data_column": "state_region", "order_index": 6}, {"label": "Postal Code", "type_id": 1, "field_name": "postal_code", "data_column": "postal_code", "order_index": 7}, {"label": "Country", "type_id": 1, "field_name": "country_code", "data_column": "country_code", "order_index": 8}, {"label": "Primary Address", "type_id": 5, "field_name": "is_primary", "data_column": "is_primary", "order_index": 9}]	none	\N	f	\N	f	2025-10-20 22:31:32.199688+00
612	\N	\N	\N	Vendor Capability	Track vendor capabilities and experience	vendor_capabilities	\N	1	grid	[{"label": "Vendor", "type_id": 4, "field_name": "vendor_id", "data_column": "vendor_id", "order_index": 1, "options_table": "vendors", "options_label_column": "vendorname", "options_value_column": "vendor_id"}, {"label": "Capability Category", "type_id": 1, "field_name": "capability_category", "data_column": "capability_category", "order_index": 2}, {"label": "Capability Description", "type_id": 8, "field_name": "capability_description", "data_column": "capability_description", "order_index": 3}, {"label": "Experience (Years)", "type_id": 2, "field_name": "experience_years", "data_column": "experience_years", "order_index": 4}, {"label": "Certifications", "type_id": 8, "field_name": "certifications", "data_column": "certifications", "order_index": 5}, {"label": "Capacity Notes", "type_id": 8, "field_name": "capacity_notes", "data_column": "capacity_notes", "order_index": 6}, {"label": "Competency Score", "type_id": 2, "field_name": "competency_score", "data_column": "competency_score", "order_index": 7}]	none	\N	f	\N	f	2025-10-20 22:31:32.211675+00
613	\N	\N	\N	Vendor Documents	Collect required compliance documents for vendor onboarding	vendor_documents	\N	1	grid	[{"label": "Vendor", "type_id": 17, "field_name": "vendor_id", "data_column": "vendor_id", "order_index": 1, "options_table": "vendors", "options_label_column": "vendorname", "options_value_column": "vendor_id"}, {"label": "FNPF Compliance Document", "type_id": 9, "doc_type": "fnpf_compliance", "doc_field": "file_url", "field_name": "fnpf_document", "order_index": 2, "widget_options": {"maxFiles": 1}}, {"label": "FNPF Compliance Expiry Date", "type_id": 3, "doc_type": "fnpf_compliance", "doc_field": "validity", "field_name": "fnpf_validity", "order_index": 3}, {"label": "FRCS VAT Clearance Certificate", "type_id": 9, "doc_type": "frcs_vat_clearance", "doc_field": "file_url", "field_name": "frcs_vat_document", "order_index": 4, "widget_options": {"maxFiles": 1}}, {"label": "FRCS VAT Clearance Expiry Date", "type_id": 3, "doc_type": "frcs_vat_clearance", "doc_field": "validity", "field_name": "frcs_vat_validity", "order_index": 5}, {"label": "FRCS Tax Clearance Certificate", "type_id": 9, "doc_type": "frcs_tax_clearance", "doc_field": "file_url", "field_name": "frcs_tax_document", "order_index": 6, "widget_options": {"maxFiles": 1}}, {"label": "FRCS Tax Clearance Expiry Date", "type_id": 3, "doc_type": "frcs_tax_clearance", "doc_field": "validity", "field_name": "frcs_tax_validity", "order_index": 7}, {"label": "FNU Levy Confirmation", "type_id": 9, "doc_type": "fnu_levy", "doc_field": "file_url", "field_name": "fnu_levy_document", "order_index": 8, "widget_options": {"maxFiles": 1}}, {"label": "FNU Levy Expiry Date", "type_id": 3, "doc_type": "fnu_levy", "doc_field": "validity", "field_name": "fnu_levy_validity", "order_index": 9}, {"label": "Business Registration Document", "type_id": 9, "doc_type": "business_registration", "doc_field": "file_url", "field_name": "business_registration_document", "order_index": 10, "widget_options": {"maxFiles": 1}}, {"label": "Business Registration Expiry Date", "type_id": 3, "doc_type": "business_registration", "doc_field": "validity", "field_name": "business_registration_validity", "order_index": 11}]	none	\N	f	\N	f	2025-10-20 22:31:32.223871+00
614	\N	\N	\N	Vendor Supporting Document	Track additional vendor supporting materials	vendor_supporting_docs	\N	1	grid	[{"label": "Vendor", "type_id": 4, "field_name": "vendor_id", "data_column": "vendor_id", "order_index": 1, "options_table": "vendors", "options_label_column": "vendorname", "options_value_column": "vendor_id"}, {"label": "Document Category", "options": [{"value": "questionnaire", "display_text": "Questionnaire"}, {"value": "financial", "display_text": "Financial"}, {"value": "insurance", "display_text": "Insurance"}, {"value": "policy", "display_text": "Policy"}, {"value": "other", "display_text": "Other"}], "type_id": 4, "field_name": "type", "data_column": "type", "order_index": 2}, {"label": "File Type", "type_id": 1, "field_name": "filetype", "data_column": "filetype", "order_index": 3}, {"label": "File URL", "type_id": 9, "field_name": "file_url", "data_column": "file_url", "order_index": 4}, {"label": "Validity", "type_id": 3, "field_name": "validity", "data_column": "validity", "order_index": 5}]	none	\N	f	\N	f	2025-10-20 22:31:32.235749+00
615	\N	\N	\N	Vendor Performance Metric	Log vendor performance reviews	vendor_performance_metrics	\N	1	grid	[{"label": "Vendor", "type_id": 4, "field_name": "vendor_id", "data_column": "vendor_id", "order_index": 1, "options_table": "vendors", "options_label_column": "vendorname", "options_value_column": "vendor_id"}, {"label": "Period Start", "type_id": 3, "field_name": "period_start", "data_column": "period_start", "order_index": 2}, {"label": "Period End", "type_id": 3, "field_name": "period_end", "data_column": "period_end", "order_index": 3}, {"label": "KPI Name", "type_id": 1, "field_name": "kpi_name", "data_column": "kpi_name", "order_index": 4}, {"label": "KPI Value", "type_id": 2, "field_name": "kpi_value", "data_column": "kpi_value", "order_index": 5}, {"label": "Rating", "type_id": 2, "field_name": "rating", "data_column": "rating", "order_index": 6}, {"label": "Reviewer", "type_id": 4, "field_name": "reviewer_id", "data_column": "reviewer_id", "order_index": 7, "options_table": "users", "options_label_column": "full_name", "options_value_column": "user_id"}, {"label": "Comments", "type_id": 8, "field_name": "comments", "data_column": "comments", "order_index": 8}]	none	\N	f	\N	f	2025-10-20 22:31:32.247185+00
616	\N	\N	\N	Vendor Certificate	Maintain vendor certification records	vendor_certificates	\N	1	grid	[{"label": "Vendor", "type_id": 4, "field_name": "vendor_id", "data_column": "vendor_id", "order_index": 1, "options_table": "vendors", "options_label_column": "vendorname", "options_value_column": "vendor_id"}, {"label": "Certificate Name", "type_id": 1, "field_name": "certificate_name", "data_column": "certificate_name", "order_index": 2}, {"label": "Issued At", "type_id": 3, "field_name": "issued_at", "data_column": "issued_at", "order_index": 3}, {"label": "Expiry Date", "type_id": 3, "field_name": "expiry_date", "data_column": "expiry_date", "order_index": 4}, {"label": "Description", "type_id": 8, "field_name": "description", "data_column": "description", "order_index": 5}]	none	\N	f	\N	f	2025-10-20 22:31:32.258575+00
109	\N	\N	\N	Customer	Manage customer information	customers	\N	1	grid	[{"label": "Customer Type", "options": [{"value": "individual", "display_text": "Individual"}, {"value": "corporate", "display_text": "Corporate"}, {"value": "government", "display_text": "Government"}], "type_id": 4, "field_name": "customer_type", "data_column": "customer_type", "order_index": 1}, {"label": "Name", "type_id": 1, "field_name": "name", "data_column": "name", "order_index": 2}, {"label": "Email", "type_id": 1, "field_name": "email", "data_column": "email", "order_index": 3}, {"label": "Phone Number", "type_id": 1, "field_name": "phone_number", "data_column": "phone_number", "order_index": 4}, {"label": "Address", "type_id": 1, "field_name": "address", "data_column": "address", "order_index": 5}, {"label": "TIN", "type_id": 1, "field_name": "tin", "data_column": "tin", "order_index": 6}, {"label": "Risk Rating", "options": [{"value": "low", "display_text": "Low"}, {"value": "medium", "display_text": "Medium"}, {"value": "high", "display_text": "High"}], "type_id": 4, "field_name": "risk_rating", "data_column": "risk_rating", "order_index": 7}, {"label": "Compliance Status", "options": [{"value": "compliant", "display_text": "Compliant"}, {"value": "non-compliant", "display_text": "Non-Compliant"}, {"value": "pending", "display_text": "Pending"}], "type_id": 4, "field_name": "compliance_status", "data_column": "compliance_status", "order_index": 8}]	none	\N	f	\N	f	2025-10-20 22:31:32.273082+00
121	\N	\N	\N	Department	Manage organizational departments	departments	\N	1	grid	[{"label": "Department", "type_id": 1, "field_name": "name", "data_column": "name", "order_index": 1}, {"label": "Description", "type_id": 8, "field_name": "description", "data_column": "description", "order_index": 2}]	none	\N	f	\N	f	2025-10-20 22:31:32.286458+00
111	\N	\N	\N	Product	Manage Products	products	\N	1	grid	[{"label": "Name", "type_id": 1, "field_name": "name", "data_column": "name", "order_index": 1}, {"label": "Description", "type_id": 8, "field_name": "description", "data_column": "description", "order_index": 2}, {"label": "Price", "type_id": 1, "field_name": "price", "data_column": "price", "order_index": 3}, {"label": "Barcode (GTIN)", "type_id": 1, "field_name": "barcode", "data_column": "barcode", "order_index": 4}, {"label": "Product Number", "type_id": 1, "field_name": "product_number", "data_column": "product_number", "order_index": 5}, {"label": "Brand", "type_id": 1, "field_name": "brand", "data_column": "brand", "order_index": 6}, {"label": "Category", "type_id": 13, "required": true, "field_name": "category_id", "data_column": "category_id", "order_index": 7, "options_table": "product_categories", "options_label_column": "name", "options_value_column": "category_id"}, {"label": "VAT", "options": [{"value": "G", "display_text": "12.5%"}, {"value": "B", "display_text": "0%"}], "type_id": 4, "field_name": "vat", "json_column": "tax_rates", "order_index": 8}, {"label": "STT", "options": [{"value": "", "display_text": "Not Applicable"}, {"value": "E", "display_text": "6%"}], "type_id": 4, "field_name": "stt", "json_column": "tax_rates", "order_index": 9}, {"label": "Size", "type_id": 1, "field_name": "size", "data_column": "size", "order_index": 10}]	none	\N	f	\N	f	2025-10-20 22:31:32.328145+00
131	\N	\N	\N	Auto Order	Manage Auto Orders for Products	auto_orders	\N	1	grid	[{"label": "Product", "type_id": 13, "field_name": "product_id", "data_column": "product_id", "order_index": 1, "options_table": "products", "options_label_column": "name", "options_value_column": "product_id"}, {"label": "Minimum Stock Qty", "type_id": 2, "field_name": "minimum_stock_qty", "data_column": "minimum_stock_qty", "order_index": 2}, {"label": "Order Qty", "type_id": 2, "field_name": "order_qty", "data_column": "order_qty", "order_index": 3}]	none	\N	f	\N	f	2025-10-20 22:31:32.340529+00
112	\N	\N	\N	Software Info	Software Information	software_info	\N	1	grid	[{"label": "Manufacturer Name", "type_id": 1, "field_name": "manufacturer_name", "data_column": "manufacturer_name", "order_index": 1, "default_value": "Cybex PTE Limited."}, {"label": "Serial Number", "type_id": 1, "field_name": "serial_number", "data_column": "serial_number", "order_index": 2, "default_value": "CYBEXPTE-ERP-2025-001."}, {"label": "Software Version", "type_id": 1, "field_name": "software_version", "data_column": "software_version", "order_index": 3, "default_value": "2025.08"}]	none	\N	f	\N	f	2025-10-20 22:31:32.35407+00
113	\N	\N	\N	POS Settings	Point of Sale Settings	pos_settings	\N	1	grid	[{"label": "Password", "type_id": 1, "field_name": "password", "data_column": "password", "order_index": 1, "default_value": "2CBP6HMW"}, {"label": "PIN", "type_id": 1, "field_name": "pin", "data_column": "pin", "order_index": 2, "default_value": "3840"}, {"label": "SDC Base URL", "type_id": 1, "field_name": "sdc_endpoint", "data_column": "sdc_endpoint", "order_index": 3, "placeholder": "http://devesdc.sandbox.vms.frcs.org.fj:8888/<tenant>/api"}, {"label": "SDC PIN URL", "type_id": 1, "field_name": "sdc_pin_url", "data_column": "sdc_pin_url", "order_index": 4, "placeholder": "http://devesdc.sandbox.vms.frcs.org.fj:8888/<tenant>/api/v3/pin"}]	none	\N	f	\N	f	2025-10-20 22:31:32.382225+00
114	\N	\N	\N	Restaurant Product	Manage Restaurant Products	products	\N	1	grid	[{"label": "Name", "type_id": 1, "field_name": "name", "data_column": "name", "order_index": 1}, {"label": "Description", "type_id": 8, "field_name": "description", "data_column": "description", "order_index": 2}, {"label": "Quantity", "type_id": 1, "field_name": "quantity", "data_column": "quantity", "order_index": 3}, {"label": "Price", "type_id": 1, "field_name": "price", "data_column": "price", "order_index": 4}, {"label": "Barcode (GTIN)", "type_id": 1, "field_name": "barcode", "data_column": "barcode", "order_index": 5}, {"label": "Product Number", "type_id": 1, "field_name": "product_number", "data_column": "product_number", "order_index": 6}, {"label": "Brand", "type_id": 1, "field_name": "brand", "data_column": "brand", "order_index": 7}, {"label": "Size", "type_id": 1, "field_name": "size", "data_column": "size", "order_index": 8}, {"label": "Category", "type_id": 13, "field_name": "category_id", "data_column": "category_id", "order_index": 9, "options_table": "product_categories", "options_label_column": "name", "options_value_column": "category_id"}, {"label": "VAT", "options": [{"value": "G", "display_text": "12.5%"}, {"value": "A", "display_text": "0%"}], "type_id": 4, "field_name": "vat", "json_column": "tax_rates", "order_index": 11}, {"label": "STT", "options": [{"value": "", "display_text": "Not Applicable"}, {"value": "E", "display_text": "6%"}], "type_id": 4, "field_name": "stt", "json_column": "tax_rates", "order_index": 12}, {"label": "Ingredients", "columns": [{"name": "ingredient_id", "type": "select-search", "label": "Ingredient", "options_table": "ingredients", "options_label_column": "name", "options_value_column": "id"}, {"name": "quantity", "type": "number", "label": "Quantity"}, {"name": "units", "type": "select", "label": "Units", "options": [{"value": "pieces", "display_text": "Pieces"}, {"value": "kg", "display_text": "Kg"}, {"value": "grams", "display_text": "Grams"}, {"value": "liters", "display_text": "Liters"}, {"value": "ml", "display_text": "Ml"}]}], "type_id": 22, "field_name": "ingredients", "link_table": "ingredients_to_products", "order_index": 10, "link_columns": {"units": "unit", "quantity": "quantity", "product_id": "id", "ingredient_id": "ingredient_id"}}]	none	\N	f	\N	f	2025-10-20 22:31:32.395765+00
115	\N	\N	\N	Procurement	Manage procurement and L.P.O records	procurements	\N	1	grid	[{"label": "L.P.O Vendor", "type_id": 4, "field_name": "vendor_id", "data_column": "vendor_id", "order_index": 1, "options_table": "Vendors", "options_label_column": "vendorName", "options_value_column": "id"}, {"label": "Quotation Number", "type_id": 1, "field_name": "quotation_number", "data_column": "quotation_number", "order_index": 3}, {"label": "Invoice Number", "type_id": 1, "field_name": "invoice_number", "data_column": "invoice_number", "order_index": 4}, {"label": "Requested By Date", "type_id": 3, "field_name": "requested_by_date", "data_column": "requested_by_date", "order_index": 5}, {"label": "Product Barcode", "type_id": 1, "field_name": "product_barcode", "data_column": "product_barcode", "order_index": 2, "show_product_below": true}]	none	\N	f	\N	f	2025-10-20 22:31:32.408031+00
120	\N	\N	\N	Vendor Bank Account	Manage vendor bank account details	vendor_bank_accounts	\N	1	grid	[{"label": "Vendor", "type_id": 4, "field_name": "vendor_id", "data_column": "vendor_id", "order_index": 1, "options_table": "Vendors", "options_label_column": "vendorName", "options_value_column": "vendor_id"}, {"label": "Account Name", "type_id": 1, "field_name": "account_name", "data_column": "account_name", "order_index": 2}, {"label": "Account Number", "type_id": 1, "field_name": "account_number", "data_column": "account_number", "order_index": 3}, {"label": "Bank Name", "type_id": 1, "field_name": "bank_name", "data_column": "bank_name", "order_index": 4}, {"label": "IFSC/SWIFT Code", "type_id": 1, "field_name": "ifsc_swift", "data_column": "ifsc_swift", "order_index": 5}, {"label": "Branch", "type_id": 1, "field_name": "branch", "data_column": "branch", "order_index": 6}, {"label": "Account Type", "options": [{"value": "savings", "display_text": "Savings"}, {"value": "current", "display_text": "Current"}, {"value": "other", "display_text": "Other"}], "type_id": 4, "field_name": "account_type", "data_column": "account_type", "order_index": 7}, {"label": "Active", "type_id": 5, "field_name": "is_active", "data_column": "is_active", "order_index": 8}]	none	\N	f	\N	f	2025-10-20 22:31:32.420584+00
116	\N	\N	\N	Ingredients	Manage Ingredients	ingredients	\N	1	grid	[{"label": "Ingredient Name", "type_id": 1, "field_name": "name", "data_column": "name", "order_index": 1}, {"label": "Description", "type_id": 8, "field_name": "description", "data_column": "description", "order_index": 2}, {"label": "Units", "options": [{"value": "pieces", "display_text": "Pieces"}, {"value": "kg", "display_text": "Kg"}, {"value": "grams", "display_text": "Grams"}, {"value": "liters", "display_text": "Liters"}, {"value": "ml", "display_text": "Ml"}], "type_id": 4, "field_name": "units", "data_column": "units", "order_index": 4}, {"label": "Quantity", "type_id": 1, "field_name": "quantity", "data_column": "quantity", "order_index": 3}, {"label": "Price", "type_id": 1, "field_name": "price", "data_column": "price", "order_index": 5}]	none	\N	f	\N	f	2025-10-20 22:31:32.433428+00
130	\N	\N	\N	Purchase Order	Form for creating and editing purchase orders	purchase_orders	\N	1	grid	[{"label": "Vendor", "type_id": 4, "field_name": "vendor_id", "data_column": "vendor_id", "order_index": 1, "options_table": "vendors", "options_label_column": "vendorname", "options_value_column": "vendor_id"}, {"label": "Order Date", "type_id": 3, "field_name": "order_date", "data_column": "order_date", "order_index": 2}, {"label": "Order Number", "type_id": 1, "field_name": "order_number", "data_column": "order_number", "order_index": 3}, {"label": "Products", "columns": [{"name": "product_barcode", "type": "select-search", "label": "Product", "options_table": "products", "show_selected_name": true, "options_label_column": "name", "options_value_column": "barcode"}, {"name": "quantity", "type": "number", "label": "Qty"}, {"name": "units", "type": "select", "label": "Units", "options": [{"value": "box", "display_text": "Box"}, {"value": "package", "display_text": "Package"}, {"value": "carton", "display_text": "Carton"}]}], "type_id": 22, "field_name": "products", "order_index": 6}]	none	\N	f	\N	f	2025-10-20 22:31:32.445031+00
132	\N	\N	\N	Product Discount	Manage product discounts with date ranges	product_discounts	\N	1	grid	[{"label": "Product", "default": "", "type_id": 1, "readonly": true, "field_name": "product_name", "order_index": 1}, {"hidden": true, "type_id": 1, "required": true, "field_name": "product_id", "data_column": "product_id", "order_index": 0}, {"label": "Discount Amount", "type_id": 2, "required": true, "field_name": "discount_amount", "data_column": "discount_amount", "order_index": 2, "placeholder": "Enter discount amount"}, {"label": "Start Date", "type_id": 3, "required": true, "field_name": "start_date", "data_column": "start_date", "order_index": 3}, {"label": "End Date", "type_id": 3, "required": true, "field_name": "end_date", "data_column": "end_date", "order_index": 4}]	none	\N	f	\N	f	2025-10-20 22:31:32.458939+00
150	\N	\N	\N	Discount Rule	Configure discount rules with conditional inputs	discount_rules	\N	1	grid	[{"label": "Discount Name", "type_id": 1, "required": true, "field_name": "name", "data_column": "name", "order_index": 1}, {"label": "Discount Type", "options": [{"label": "Percentage on Product", "value": "product_percent"}, {"label": "Amount on Product", "value": "product_amount"}, {"label": "Category (% Only)", "value": "category_percent"}, {"label": "Storewide (% Only)", "value": "store_percent"}, {"label": "Buy X Get Y Free - Product", "value": "bogo_product"}, {"label": "Buy X Get Y Free - Category", "value": "bogo_category"}, {"label": "Buy X Get Y Free - Storewide", "value": "bogo_store"}, {"label": "X Products for $Y", "value": "x_for_y"}, {"label": "% Off for X Items", "value": "percent_for_x_items"}], "type_id": 4, "required": true, "field_name": "discount_type", "data_column": "discount_type", "order_index": 2}, {"label": "Product", "type_id": 13, "required": true, "field_name": "product_id", "data_column": "product_id", "order_index": 3, "options_table": "products", "condition_field": "discount_type", "condition_value": "product_percent|product_amount|bogo_product|x_for_y|percent_for_x_items", "options_label_column": "name", "options_value_column": "product_id"}, {"label": "Category", "type_id": 13, "required": true, "field_name": "category_id", "data_column": "category_id", "order_index": 4, "options_table": "product_categories", "condition_field": "discount_type", "condition_value": "category_percent|bogo_category", "options_label_column": "name", "options_value_column": "category_id"}, {"label": "Discount Percentage", "type_id": 2, "required": true, "field_name": "percentage_value", "data_column": "percentage_value", "order_index": 5, "condition_field": "discount_type", "condition_value": "product_percent|category_percent|store_percent|percent_for_x_items"}, {"label": "Discount Amount", "type_id": 2, "required": true, "field_name": "amount_value", "data_column": "amount_value", "order_index": 6, "condition_field": "discount_type", "condition_value": "product_amount"}, {"label": "Buy Quantity", "type_id": 2, "required": true, "field_name": "buy_quantity", "data_column": "buy_quantity", "order_index": 7, "condition_field": "discount_type", "condition_value": "bogo_product|bogo_category|bogo_store"}, {"label": "Free Quantity", "type_id": 2, "required": true, "field_name": "free_quantity", "data_column": "free_quantity", "order_index": 8, "condition_field": "discount_type", "condition_value": "bogo_product|bogo_category|bogo_store"}, {"label": "Bundle Quantity", "type_id": 2, "required": true, "field_name": "bundle_quantity", "data_column": "bundle_quantity", "order_index": 9, "condition_field": "discount_type", "condition_value": "x_for_y"}, {"label": "Bundle Price", "type_id": 2, "required": true, "field_name": "bundle_price", "data_column": "bundle_price", "order_index": 10, "condition_field": "discount_type", "condition_value": "x_for_y"}, {"label": "Required Item Count", "type_id": 2, "required": true, "field_name": "threshold_quantity", "data_column": "threshold_quantity", "order_index": 11, "condition_field": "discount_type", "condition_value": "percent_for_x_items"}, {"label": "Start Date", "type_id": 3, "field_name": "start_date", "data_column": "start_date", "order_index": 12}, {"label": "End Date", "type_id": 3, "field_name": "end_date", "data_column": "end_date", "order_index": 13}, {"label": "Notes", "type_id": 8, "field_name": "notes", "data_column": "notes", "order_index": 14}]	none	\N	f	\N	f	2025-10-20 22:31:32.470351+00
117	\N	\N	\N	Open Position	Form to create and edit open positions	open_positions	\N	1	grid	[{"label": "Title", "type_id": 1, "required": true, "field_name": "title", "data_column": "title", "order_index": 0}, {"label": "Description", "type_id": 8, "field_name": "description", "data_column": "description", "order_index": 1}, {"label": "Branch", "type_id": 1, "field_name": "branch_id", "data_column": "branch_id", "order_index": 2}, {"label": "Position", "type_id": 1, "field_name": "position", "data_column": "position", "order_index": 3}, {"label": "Applicant Type", "options": [{"label": "All", "value": "All"}, {"label": "Internal Only", "value": "Internal Only"}, {"label": "External Only", "value": "External Only"}], "type_id": 4, "field_name": "applicant_type", "data_column": "applicant_type", "order_index": 4}, {"label": "Open Date", "type_id": 3, "field_name": "open_date", "data_column": "open_date", "order_index": 5}, {"label": "Close Date", "type_id": 3, "field_name": "close_date", "data_column": "close_date", "order_index": 6}, {"label": "Department", "type_id": 1, "field_name": "department", "data_column": "department", "order_index": 7}, {"label": "Qualifications", "type_id": 8, "field_name": "qualifications", "data_column": "qualifications", "order_index": 8}, {"label": "Salary", "type_id": 2, "field_name": "salary", "data_column": "salary", "order_index": 9}, {"label": "Status", "options": [{"label": "Open", "value": "Open"}, {"label": "Closed", "value": "Closed"}, {"label": "Pending", "value": "Pending"}], "type_id": 4, "field_name": "status", "data_column": "status", "order_index": 10}]	none	\N	f	\N	f	2025-10-20 22:31:32.485463+00
118	\N	\N	\N	Job Application	Form to submit job applications	applications	\N	1	grid	[{"label": "Position", "type_id": 4, "required": true, "field_name": "open_position_id", "data_column": "open_position_id", "order_index": 0, "options_table": "open_positions", "options_label_column": "title", "options_value_column": "open_position_id"}, {"label": "First Name", "type_id": 1, "required": true, "field_name": "first_name", "data_column": "first_name", "order_index": 1}, {"label": "Last Name", "type_id": 1, "required": true, "field_name": "last_name", "data_column": "last_name", "order_index": 2}, {"label": "Email", "type_id": 15, "required": true, "field_name": "email", "data_column": "email", "order_index": 3}, {"label": "Phone", "type_id": 1, "field_name": "phone", "data_column": "phone", "order_index": 4}, {"label": "Address", "type_id": 8, "field_name": "address", "data_column": "address", "order_index": 5}, {"label": "Date of Birth", "type_id": 3, "field_name": "date_of_birth", "data_column": "date_of_birth", "order_index": 6}, {"label": "Status", "options": [{"label": "New", "value": "New"}, {"label": "Under Review", "value": "Under Review"}, {"label": "ShortListed", "value": "ShortListed"}, {"label": "Interviewing", "value": "Interviewing"}, {"label": "Rejected", "value": "Rejected"}, {"label": "Hired", "value": "Hired"}], "type_id": 4, "required": true, "field_name": "status", "data_column": "status", "order_index": 7}, {"label": "Notes", "type_id": 8, "field_name": "notes", "data_column": "notes", "order_index": 8}]	none	\N	f	\N	f	2025-10-20 22:31:32.497963+00
119	\N	\N	\N	Interview	Form to schedule and manage job interviews	interviews	\N	1	grid	[{"label": "Application", "type_id": 4, "required": true, "field_name": "application_id", "data_column": "application_id", "order_index": 0, "options_table": "applications", "options_label_column": "first_name", "options_value_column": "application_id"}, {"label": "Interview Date", "type_id": 3, "required": true, "field_name": "interview_date", "data_column": "interview_date", "order_index": 1}, {"label": "Interview Number", "type_id": 2, "required": true, "field_name": "interview_number", "data_column": "interview_number", "order_index": 2}, {"label": "Interviewers", "type_id": 14, "field_name": "interviewer_id", "data_column": "interviewer_id", "order_index": 3, "options_table": "users", "options_label_column": "first_name", "options_value_column": "user_id"}, {"label": "Status", "options": [{"label": "Scheduled", "value": "Scheduled"}, {"label": "Completed", "value": "Completed"}, {"label": "Cancelled", "value": "Cancelled"}], "type_id": 4, "field_name": "status", "data_column": "status", "order_index": 4}, {"label": "Notes", "type_id": 8, "field_name": "notes", "data_column": "notes", "order_index": 5}, {"label": "Feedback", "type_id": 8, "field_name": "feedback", "data_column": "feedback", "order_index": 6}, {"label": "Rating", "type_id": 2, "field_name": "rating", "data_column": "rating", "order_index": 7}]	none	\N	f	\N	f	2025-10-20 22:31:32.510455+00
140	\N	\N	\N	New Employee	Form to create and manage new employee profiles	users_profiles	\N	1	grid	[{"label": "Title", "type_id": 1, "field_name": "title", "data_column": "title", "order_index": 1}, {"label": "Address", "type_id": 16, "field_name": "address", "data_column": "address", "order_index": 2}, {"label": "Phone Number", "type_id": 16, "required": true, "field_name": "phone_number", "data_column": "phone_number", "order_index": 3}, {"label": "Email", "type_id": 16, "field_name": "email", "data_column": "email", "order_index": 4}, {"label": "Date of Birth", "type_id": 3, "field_name": "date_of_birth", "data_column": "date_of_birth", "order_index": 5}, {"label": "Profile Picture", "type_id": 1, "field_name": "profile_pic", "data_column": "profile_pic", "order_index": 6}, {"label": "Notes", "type_id": 8, "field_name": "notes", "data_column": "notes", "order_index": 7}]	none	\N	f	\N	f	2025-10-20 22:31:32.523683+00
\.


--
-- Data for Name: goal_alignment; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.goal_alignment (id, parent_goal_id, child_goal_id, department_id, strategy_id, tenant_id, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: goal_documents; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.goal_documents (id, goal_id, document_id, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: goal_milestones; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.goal_milestones (id, goal_id, milestone, due_date, progress_pct, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: goal_score_labels; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.goal_score_labels (id, country_code, score_value, label, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: goal_templates; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.goal_templates (id, tenant_id, department_id, role_id, title, description, kpi_id, language_code, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: goods_receipt_lines; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.goods_receipt_lines (goods_receipt_line_id, goods_receipt_id, purchase_order_line_id, product_id, org_id, quantity_received, unit_type, batch_number, expiry_date, notes, isdeleted, updatedat) FROM stdin;
019a03bf-e0b4-73f4-8d5b-317af88c7c70	019a03bf-e0a3-7780-a5fb-41c84e6e5c27	019a03bf-e056-753e-9cc4-021a6abf12b3	019a03bf-dffd-7ce7-81ac-f14244f73838	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 22:31:37.904204+00
019a03e2-b948-7d6a-b692-380eb28466a7	019a03e2-b93a-7813-b925-b8f25166e802	019a03bf-e056-753e-9cc4-021a6abf12b3	019a03bf-dffd-7ce7-81ac-f14244f73838	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:09:41.574767+00
019a03e2-b948-7025-a084-50f79892635c	019a03bf-e0a3-7780-a5fb-41c84e6e5c27	019a03bf-e056-753e-9cc4-021a6abf12b3	019a03bf-dffd-7ce7-81ac-f14244f73838	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:09:41.574767+00
019a03e2-b949-7e0f-a0a2-314d0c6c214a	019a03e2-b93a-7813-b925-b8f25166e802	019a03e2-b8ec-7726-b3f8-386bc7ac805b	019a03bf-dffd-7ce7-81ac-f14244f73838	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:09:41.574767+00
019a03e2-b949-72e0-a0a0-6992f81005ef	019a03bf-e0a3-7780-a5fb-41c84e6e5c27	019a03e2-b8ec-7726-b3f8-386bc7ac805b	019a03bf-dffd-7ce7-81ac-f14244f73838	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:09:41.574767+00
019a03e2-b949-7878-b9df-cb88976f02d0	019a03e2-b93a-7813-b925-b8f25166e802	019a03e2-b8ec-79c9-8b57-28623ab541d2	019a03e2-b88b-70b0-9e82-7330f936bb50	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:09:41.574767+00
019a03e2-b949-797d-8287-90186feb786f	019a03bf-e0a3-7780-a5fb-41c84e6e5c27	019a03e2-b8ec-79c9-8b57-28623ab541d2	019a03e2-b88b-70b0-9e82-7330f936bb50	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:09:41.574767+00
019a03e2-b949-7687-8143-a645f4a18efc	019a03e2-b93a-7ba0-89a6-3984958556ec	019a03e2-b8ed-72cc-9215-4cf93827354f	019a03bf-dffd-7ce7-81ac-f14244f73838	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:09:41.574767+00
019a03e2-b949-7395-aaa7-ff256261a78c	019a03e2-b93a-7ba0-89a6-3984958556ec	019a03e2-b8ed-7e0d-9ff2-7aeed0b74d99	019a03e2-b88b-70b0-9e82-7330f936bb50	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:09:41.574767+00
019a040a-ae1a-70e7-a160-08983fbda155	019a040a-ae0a-7135-b507-2b32e73e32ff	019a03bf-e056-753e-9cc4-021a6abf12b3	019a03bf-dffd-7ce7-81ac-f14244f73838	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1a-7155-9d44-d80cc378840e	019a03e2-b93a-7813-b925-b8f25166e802	019a03bf-e056-753e-9cc4-021a6abf12b3	019a03bf-dffd-7ce7-81ac-f14244f73838	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1a-74fb-939a-c2d46c5518d4	019a03bf-e0a3-7780-a5fb-41c84e6e5c27	019a03bf-e056-753e-9cc4-021a6abf12b3	019a03bf-dffd-7ce7-81ac-f14244f73838	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1a-785f-9d97-6c8dd343ae5a	019a040a-ae0a-7135-b507-2b32e73e32ff	019a03e2-b8ec-7726-b3f8-386bc7ac805b	019a03bf-dffd-7ce7-81ac-f14244f73838	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1a-7ab1-bff7-7ffd19d40591	019a03e2-b93a-7813-b925-b8f25166e802	019a03e2-b8ec-7726-b3f8-386bc7ac805b	019a03bf-dffd-7ce7-81ac-f14244f73838	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1a-7c07-9bfe-96dc60187436	019a03bf-e0a3-7780-a5fb-41c84e6e5c27	019a03e2-b8ec-7726-b3f8-386bc7ac805b	019a03bf-dffd-7ce7-81ac-f14244f73838	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1a-7f97-a7b0-3091330405cd	019a040a-ae0a-7135-b507-2b32e73e32ff	019a03e2-b8ec-79c9-8b57-28623ab541d2	019a03e2-b88b-70b0-9e82-7330f936bb50	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1a-7570-b58c-617c23979f4c	019a03e2-b93a-7813-b925-b8f25166e802	019a03e2-b8ec-79c9-8b57-28623ab541d2	019a03e2-b88b-70b0-9e82-7330f936bb50	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1a-7df5-b9ed-ebd4c3de6ae4	019a03bf-e0a3-7780-a5fb-41c84e6e5c27	019a03e2-b8ec-79c9-8b57-28623ab541d2	019a03e2-b88b-70b0-9e82-7330f936bb50	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1a-7dc6-a028-14e025fcc732	019a040a-ae0a-7ce4-8ac0-7889cc634122	019a03e2-b8ed-72cc-9215-4cf93827354f	019a03bf-dffd-7ce7-81ac-f14244f73838	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1a-7a5f-8423-17e3e44142bd	019a03e2-b93a-7ba0-89a6-3984958556ec	019a03e2-b8ed-72cc-9215-4cf93827354f	019a03bf-dffd-7ce7-81ac-f14244f73838	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1b-750f-af79-b30491598974	019a040a-ae0a-7ce4-8ac0-7889cc634122	019a03e2-b8ed-7e0d-9ff2-7aeed0b74d99	019a03e2-b88b-70b0-9e82-7330f936bb50	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1b-74ae-8797-fa87937ef4be	019a03e2-b93a-7ba0-89a6-3984958556ec	019a03e2-b8ed-7e0d-9ff2-7aeed0b74d99	019a03e2-b88b-70b0-9e82-7330f936bb50	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1b-7d70-bcfc-0cbf1ec16045	019a040a-ae0a-7135-b507-2b32e73e32ff	019a040a-adb4-77bd-ae8d-cd01a99ea281	019a03bf-dffd-7ce7-81ac-f14244f73838	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1b-78c3-87a3-8e7209ea53de	019a03e2-b93a-7813-b925-b8f25166e802	019a040a-adb4-77bd-ae8d-cd01a99ea281	019a03bf-dffd-7ce7-81ac-f14244f73838	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1b-77ba-ab37-08982afb8589	019a03bf-e0a3-7780-a5fb-41c84e6e5c27	019a040a-adb4-77bd-ae8d-cd01a99ea281	019a03bf-dffd-7ce7-81ac-f14244f73838	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1b-7eb4-a35b-bb7d3a44e49c	019a040a-ae0a-7135-b507-2b32e73e32ff	019a040a-adb5-7f88-80b4-66e3612915c5	019a03e2-b88b-70b0-9e82-7330f936bb50	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1b-7925-9620-77a553499612	019a03e2-b93a-7813-b925-b8f25166e802	019a040a-adb5-7f88-80b4-66e3612915c5	019a03e2-b88b-70b0-9e82-7330f936bb50	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1b-7ed0-a923-92b80528de87	019a03bf-e0a3-7780-a5fb-41c84e6e5c27	019a040a-adb5-7f88-80b4-66e3612915c5	019a03e2-b88b-70b0-9e82-7330f936bb50	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1b-71f3-96d6-805f01512cbe	019a040a-ae0a-7135-b507-2b32e73e32ff	019a040a-adb5-7c70-be54-0adf2f44ff5f	019a040a-ad29-788d-a3d0-eefa9e1ccd91	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1b-726f-8786-366c8afba3f2	019a03e2-b93a-7813-b925-b8f25166e802	019a040a-adb5-7c70-be54-0adf2f44ff5f	019a040a-ad29-788d-a3d0-eefa9e1ccd91	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1b-7418-8460-feae2dfa7c5c	019a03bf-e0a3-7780-a5fb-41c84e6e5c27	019a040a-adb5-7c70-be54-0adf2f44ff5f	019a040a-ad29-788d-a3d0-eefa9e1ccd91	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1b-7c94-8df3-d51297e49fc2	019a040a-ae0a-7abd-912e-1a77bc459509	019a040a-adb5-769d-8af6-14e5ee11b776	019a03bf-dffd-7ce7-81ac-f14244f73838	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1b-7613-8975-672bed7ba8d0	019a040a-ae0a-7abd-912e-1a77bc459509	019a040a-adb5-7854-8c11-2f54adbd5dd1	019a03e2-b88b-70b0-9e82-7330f936bb50	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1b-7912-9b35-0dce4f5ddd76	019a040a-ae0a-7abd-912e-1a77bc459509	019a040a-adb5-7c93-955c-42797f17a03f	019a040a-ad29-788d-a3d0-eefa9e1ccd91	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1b-7c04-839e-ff22c3c75e74	019a040a-ae0a-7ce4-8ac0-7889cc634122	019a040a-adb5-7e79-8982-52de4671f6d1	019a03bf-dffd-7ce7-81ac-f14244f73838	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1b-794c-9d9d-1fa09454085c	019a03e2-b93a-7ba0-89a6-3984958556ec	019a040a-adb5-7e79-8982-52de4671f6d1	019a03bf-dffd-7ce7-81ac-f14244f73838	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1b-79b6-af97-c22e5a22f12b	019a040a-ae0a-7ce4-8ac0-7889cc634122	019a040a-adb5-7d79-8c6b-b66f6d8ab98b	019a03e2-b88b-70b0-9e82-7330f936bb50	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1b-7a68-994b-d4fb5e3ab356	019a03e2-b93a-7ba0-89a6-3984958556ec	019a040a-adb5-7d79-8c6b-b66f6d8ab98b	019a03e2-b88b-70b0-9e82-7330f936bb50	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1b-738e-b3d5-af8b275ccc07	019a040a-ae0a-7ce4-8ac0-7889cc634122	019a040a-adb5-7a24-a6a0-860b9320ef30	019a040a-ad29-788d-a3d0-eefa9e1ccd91	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
019a040a-ae1b-728b-8682-620f71450bc9	019a03e2-b93a-7ba0-89a6-3984958556ec	019a040a-adb5-7a24-a6a0-860b9320ef30	019a040a-ad29-788d-a3d0-eefa9e1ccd91	0194a8b2-1234-7123-8123-123456789abc	30.000	PALLET	\N	\N	\N	f	2025-10-20 23:53:20.151381+00
\.


--
-- Data for Name: goods_receipts; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.goods_receipts (goods_receipt_id, org_id, purchase_order_id, received_date, quantity_received, delivery_note_number, invoice_number, received_by, branch_id, vehicle_number, notes, isdeleted, updatedat) FROM stdin;
019a03bf-e0a3-7780-a5fb-41c84e6e5c27	0194a8b2-1234-7123-8123-123456789abc	019a03bf-e048-7ce0-9f89-6cb708f949df	2024-10-05	30	DN-2024-0154	INV-GS-2024-0891	019a03bf-dfd4-7712-be37-71d35001732d	019a03bf-dfd7-75f7-98c9-247bd8124265	FJ-1234	First partial delivery - 30 pallets	f	2025-10-20 22:31:37.890117+00
019a03bf-e790-713c-9ee5-211d341aa23c	0194a8b2-1234-7123-8123-123456789abc	019a03bf-e77b-790b-b4f3-aa9fd7476ff2	2025-08-01	1	\N	\N	\N	\N	\N	Software licenses activated successfully	f	2025-10-20 22:31:39.660068+00
019a03bf-e791-7ba8-bf46-ba31eee5e6ad	0194a8b2-1234-7123-8123-123456789abc	019a03bf-e77c-7297-85dd-052de5987b8d	2025-08-02	25	\N	\N	\N	\N	\N	All medical supplies received and stored	f	2025-10-20 22:31:39.660068+00
019a03bf-e791-7ff3-b8d6-8a23266b7de4	0194a8b2-1234-7123-8123-123456789abc	019a03bf-e77c-7bf2-bbdb-1c1a1460b82a	2025-08-22	15	\N	\N	\N	\N	\N	IDE licenses distributed to development team	f	2025-10-20 22:31:39.660068+00
019a03bf-e791-7089-b427-f5b16abf4aea	0194a8b2-1234-7123-8123-123456789abc	019a03bf-e77a-782a-9c36-db8bc64d241b	2025-08-10	8	\N	\N	\N	\N	\N	Partial delivery - 8 of 10 laptops received	f	2025-10-20 22:31:39.660068+00
019a03bf-e791-7bdc-b17d-065d0c4fefa7	0194a8b2-1234-7123-8123-123456789abc	019a03bf-e77b-735b-8d30-925b32888ece	2025-08-25	20	\N	\N	\N	\N	\N	All ergonomic chairs delivered and assembled	f	2025-10-20 22:31:39.660068+00
019a03bf-e792-71bf-bb4b-fa62f6ef1e39	0194a8b2-1234-7123-8123-123456789abc	019a03bf-e77b-75b1-95cc-a85490ef736f	2025-08-15	1	\N	\N	\N	\N	\N	Cloud storage upgrade activated	f	2025-10-20 22:31:39.660068+00
019a03bf-e792-758a-b05d-b77b89a0890d	0194a8b2-1234-7123-8123-123456789abc	019a03bf-e77c-770e-b6c1-c6d1db033798	2025-08-30	2	\N	\N	\N	\N	\N	New HVAC units installed in data center	f	2025-10-20 22:31:39.660068+00
019a03bf-e792-7306-a011-2dbf0d2b7af3	0194a8b2-1234-7123-8123-123456789abc	019a03bf-e77c-7ac7-a996-9936b36e31d7	2025-09-10	20	\N	\N	\N	\N	\N	Training course enrollment confirmed	f	2025-10-20 22:31:39.660068+00
019a03bf-e792-7e35-b072-e6ab4d77907d	0194a8b2-1234-7123-8123-123456789abc	019a03bf-e77b-7263-aa8d-6fbe198b3cd6	2025-08-20	4	\N	\N	\N	\N	\N	Conference room AV equipment installed	f	2025-10-20 22:31:39.660068+00
019a03bf-e792-7f59-8b1a-fc65e24b71af	0194a8b2-1234-7123-8123-123456789abc	019a03bf-e77a-782a-9c36-db8bc64d241b	2025-08-15	2	\N	\N	\N	\N	\N	Remaining 2 laptops received - order complete	f	2025-10-20 22:31:39.660068+00
019a03bf-e978-77ef-8ea4-5cbb90b46796	\N	019a03bf-e77b-77db-b120-e43df288adf7	2025-10-13	5	\N	\N	\N	\N	\N	Recent partial receipt (demo)	f	2025-10-20 22:31:40.15015+00
019a03e2-b93a-7813-b925-b8f25166e802	0194a8b2-1234-7123-8123-123456789abc	019a03bf-e048-7ce0-9f89-6cb708f949df	2024-10-05	30	DN-2024-0154	INV-GS-2024-0891	019a03bf-dfd4-7712-be37-71d35001732d	019a03bf-dfd7-75f7-98c9-247bd8124265	FJ-1234	First partial delivery - 30 pallets	f	2025-10-20 23:09:41.561093+00
019a03e2-b93a-7ba0-89a6-3984958556ec	0194a8b2-1234-7123-8123-123456789abc	019a03e2-b8df-720e-864c-f7cd5f9d7ffa	2024-10-05	30	DN-2024-0154	INV-GS-2024-0891	019a03bf-dfd4-7712-be37-71d35001732d	019a03bf-dfd7-75f7-98c9-247bd8124265	FJ-1234	First partial delivery - 30 pallets	f	2025-10-20 23:09:41.561093+00
019a040a-ae0a-7135-b507-2b32e73e32ff	0194a8b2-1234-7123-8123-123456789abc	019a03bf-e048-7ce0-9f89-6cb708f949df	2024-10-05	30	DN-2024-0154	INV-GS-2024-0891	019a03bf-dfd4-7712-be37-71d35001732d	019a03bf-dfd7-75f7-98c9-247bd8124265	FJ-1234	First partial delivery - 30 pallets	f	2025-10-20 23:53:20.137917+00
019a040a-ae0a-7abd-912e-1a77bc459509	0194a8b2-1234-7123-8123-123456789abc	019a040a-ad9a-7815-935f-7c57c9669652	2024-10-05	30	DN-2024-0154	INV-GS-2024-0891	019a03bf-dfd4-7712-be37-71d35001732d	019a03bf-dfd7-75f7-98c9-247bd8124265	FJ-1234	First partial delivery - 30 pallets	f	2025-10-20 23:53:20.137917+00
019a040a-ae0a-7ce4-8ac0-7889cc634122	0194a8b2-1234-7123-8123-123456789abc	019a03e2-b8df-720e-864c-f7cd5f9d7ffa	2024-10-05	30	DN-2024-0154	INV-GS-2024-0891	019a03bf-dfd4-7712-be37-71d35001732d	019a03bf-dfd7-75f7-98c9-247bd8124265	FJ-1234	First partial delivery - 30 pallets	f	2025-10-20 23:53:20.137917+00
\.


--
-- Data for Name: graphs; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.graphs (id, name, config, tenant_id, branch_id, createdat, updatedat, isdeleted) FROM stdin;
1	Incidents by classification	{"x": "classification", "y": "id", "type": "bar", "table": "ohs_incidents", "groupBy": "classification", "timeUnit": "", "aggregateFunc": "count"}	\N	\N	2025-10-20 22:31:30.71261	2025-10-20 22:31:30.71261+00	f
2	Incident Trends	{"x": "date", "y": "id", "type": "groupedBar", "table": "ohs_incidents", "groupBy": "date,classification", "timeUnit": "year", "aggregateFunc": "count"}	\N	\N	2025-10-20 22:31:30.71261	2025-10-20 22:31:30.71261+00	f
\.


--
-- Data for Name: group_column_permissions; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.group_column_permissions (group_column_permission_id, group_id, table_name, column_name, access_mode, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: group_module_permissions; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.group_module_permissions (group_module_permission_id, group_id, module_id, action, isdeleted, updatedat) FROM stdin;
019a03bf-e2b5-744c-b6ee-ffb5c12eb9e3	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-8888-7123-8123-123456789ac7	allow	f	2025-10-20 22:31:38.420324+00
019a03bf-e2b5-7405-9692-d79ca23cf270	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-aaaa-7123-8123-123456789ac9	allow	f	2025-10-20 22:31:38.420324+00
019a03bf-e2b5-7b48-becb-b550d8348aed	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-bbbb-7123-8123-123456789aca	allow	f	2025-10-20 22:31:38.420324+00
019a03bf-e2e3-7513-bb55-4e3349fda440	0194a8ba-d0d0-7123-8123-123456789ad8	0194a8b2-0015-7123-8123-123456789abc	allow	f	2025-10-20 22:31:38.46703+00
019a03bf-e2e3-7a0c-a003-e60fbaef323a	0194a8ba-d0d0-7123-8123-123456789ad8	0194a8b2-0016-7123-8123-123456789abc	allow	f	2025-10-20 22:31:38.46703+00
019a03bf-e2f3-761c-942a-398b8e0b4cb4	0194a8ba-d0d0-7123-8123-123456789ad8	0194a8b2-c3f1-7123-8123-123456789ab1	allow	f	2025-10-20 22:31:38.480615+00
019a03bf-e2f3-715b-ad28-afc43554906e	0194a8ba-d0d0-7123-8123-123456789ad8	019a03bf-d3c5-7e06-a5ac-94840106d437	allow	f	2025-10-20 22:31:38.480615+00
019a03bf-e300-77cd-8673-2d59bb597bb2	0194a8ba-d0d0-7123-8123-123456789ad8	019a03bf-d3af-785b-b972-502bc6a91d99	allow	f	2025-10-20 22:31:38.495522+00
019a03bf-e30d-7014-9384-a5afca00fa2d	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-c3f1-7123-8123-123456789ab1	allow	f	2025-10-20 22:31:38.508271+00
019a03bf-e30d-7621-bbd8-c2b039c733f7	0194a8b2-eeee-7123-8123-123456789ace	019a03bf-d37b-7b5a-8cfd-246ee7631d67	allow	f	2025-10-20 22:31:38.508271+00
019a03bf-e30d-7dc7-be28-87fc22089206	0194a8b2-eeee-7123-8123-123456789ace	019a03bf-d38b-7bc5-85f2-9f5f31faf7bc	allow	f	2025-10-20 22:31:38.508271+00
019a03bf-e30d-7773-85b5-3d4806fdfb3a	0194a8b2-eeee-7123-8123-123456789ace	019a03bf-d3c5-7e06-a5ac-94840106d437	allow	f	2025-10-20 22:31:38.508271+00
019a03bf-e319-730c-97ba-5311b2ded5c4	0194a8ba-bcde-7123-8123-123456789ad7	0194a8b2-0015-7123-8123-123456789abc	allow	f	2025-10-20 22:31:38.521582+00
019a03bf-e337-79fc-868e-9c14ef3ab28e	0194a8ba-dede-7123-8123-123456789ad9	0194a8b2-0032-7123-8123-123456789abc	allow	f	2025-10-20 22:31:38.549671+00
019a03bf-e345-79b3-88c1-013ee1cf6d54	0194a8b2-eeee-7123-8123-123456789ace	01940882-1004-7123-8123-123456789004	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e345-7319-bf7a-dbc344943a4f	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-bbbb-7123-8123-123456789aca	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e345-7546-9fea-0839877eae5c	0194a8b2-eeee-7123-8123-123456789ace	01940882-1005-7123-8123-123456789005	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e345-7463-9429-ebeb8a33420c	0194a8b2-eeee-7123-8123-123456789ace	019a03bf-d3af-785b-b972-502bc6a91d99	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e345-7a86-a17a-5fa9724324c0	0194a8b2-eeee-7123-8123-123456789ace	6861955c-f882-44db-ab95-89c1a9b8e307	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e345-743a-9d36-0664dc1846e4	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-7123-7123-8123-123456789abc	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e345-7645-bb7f-e9f0092c4e69	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-0016-7123-8123-123456789abc	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e345-756c-9225-8f471c8d55de	0194a8b2-eeee-7123-8123-123456789ace	01940882-1002-7123-8123-123456789002	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e345-7d9f-906d-f4a7aade6b62	0194a8b2-eeee-7123-8123-123456789ace	c6d16f2c-4c20-42f7-a637-07f683e4e4d1	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-7533-9ad6-22de3277b306	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-8888-7123-8123-123456789ac6	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-747e-802e-26143d925ba6	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-7777-7123-8123-123456789ac6	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-7eb6-a4ee-ca6890a6bb9e	0194a8b2-eeee-7123-8123-123456789ace	01940882-1003-7123-8123-123456789003	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-704f-ae40-2e25e077c0d1	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-acd0-7123-8123-123456789acd	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-75f9-8649-521c99d774df	0194a8b2-eeee-7123-8123-123456789ace	01940882-1001-7123-8123-123456789001	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-717b-baf3-5e2e79ce7abd	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-0021-7123-8123-123456789abc	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-724e-9ff0-3ecea0152107	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-0018-7123-8123-123456789abc	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-71ca-8c96-3f5a688db544	0194a8b2-eeee-7123-8123-123456789ace	019a03bf-d3c5-7e06-a5ac-94840106d437	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-77db-a181-0876f6a1cc79	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-cccc-7123-8123-123456789acb	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-73d2-8004-06a9683e8c3f	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-7124-7123-8123-123456789abc	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-7bfa-84b5-e3e36d1cc695	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-0030-7123-8123-123456789abc	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-7b1f-a354-4d33d1a574b0	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-aaaa-7123-8123-123456789ac9	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-7ded-9b1d-396f00dfcc2d	0194a8b2-eeee-7123-8123-123456789ace	018e3f0a-12d3-7c45-b89a-2f3c4e1d5b6c	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-7606-8cde-c07592b0862d	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-0015-7123-8123-123456789abc	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-759e-936f-904fa070addc	0194a8b2-eeee-7123-8123-123456789ace	442d22f0-a2c9-4b29-a741-ce90111ccfa4	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-748f-9604-941915dfd637	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-0017-7123-8123-123456789abc	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-79d9-ab03-f0fe0ab6a732	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-1035-7123-8123-123456789abc	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-793c-bc40-23b1765f0e57	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-9999-7123-8123-123456789ac8	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-7a58-aa2f-4c177cd63d58	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-0031-7123-8123-123456789abc	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-7118-9542-47e0e1f1435e	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-0020-7123-8123-123456789abc	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-719f-8c74-c8f6125e40ce	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-c3f1-7123-8123-123456789ab1	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-7a7e-b2c7-ccfa129446b3	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-8888-7123-8123-123456789ac7	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e346-72c2-b006-329d2af28277	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-0032-7123-8123-123456789abc	allow	f	2025-10-20 22:31:38.564177+00
019a03bf-e357-7b7c-91e2-1bccbbf10478	0194a8b2-aaaa-7123-8123-123456789ac4	0194a8b2-7777-7123-8123-123456789ac6	allow	f	2025-10-20 22:31:38.583015+00
019a03bf-e363-7201-a53d-ef083b094a44	0194a8b2-aaaa-7123-8123-123456789ac4	0194a8b2-9999-7123-8123-123456789ac8	allow	f	2025-10-20 22:31:38.594976+00
019a03bf-e51c-7ca7-b9b1-d87a4862a425	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-cccc-7123-8123-123456789acb	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51c-752b-9423-f71f8c8be20f	0194a8b2-eeee-7123-8123-123456789ace	442d22f0-a2c9-4b29-a741-ce90111ccfa4	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51c-7fac-bd25-6c88f1811744	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-acd0-7123-8123-123456789acd	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51c-7df7-8a3e-b6ef300ea5d4	0194a8b2-eeee-7123-8123-123456789ace	6861955c-f882-44db-ab95-89c1a9b8e307	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51c-7e8f-974f-189abb630fed	0194a8b2-eeee-7123-8123-123456789ace	c6d16f2c-4c20-42f7-a637-07f683e4e4d1	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51c-74c9-93b9-7039d990e8ce	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-0020-7123-8123-123456789abc	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51c-74ae-9165-bd9db2ecac9c	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-0021-7123-8123-123456789abc	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51c-75ca-873c-2358a818d9c1	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-8888-7123-8123-123456789ac6	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51c-7ab5-892f-413949d9395f	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-0030-7123-8123-123456789abc	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51c-780f-bfad-5a386e461a53	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-0031-7123-8123-123456789abc	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51c-7dac-991f-8f547fbc84ab	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-0018-7123-8123-123456789abc	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51c-7166-89e8-706a8b4a70f8	0194a8b2-eeee-7123-8123-123456789ace	01940882-1001-7123-8123-123456789001	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51c-7a84-b9ca-68104e485d8d	0194a8b2-eeee-7123-8123-123456789ace	01940882-1002-7123-8123-123456789002	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51c-72ec-a2a0-72c7cc2dee19	0194a8b2-eeee-7123-8123-123456789ace	01940882-1003-7123-8123-123456789003	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51c-742e-96fe-402c0c932f9d	0194a8b2-eeee-7123-8123-123456789ace	01940882-1004-7123-8123-123456789004	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51c-72db-9e6b-da77984e6d1f	0194a8b2-eeee-7123-8123-123456789ace	01940882-1005-7123-8123-123456789005	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51c-72c6-8184-469816f7244d	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-a1b2-7123-8123-123456789abc	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51c-744b-9836-ffff8a213fdd	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-c3f1-7123-8123-123456789ab1	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51d-7d7e-a555-082a0ca148e2	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-0fff-7123-8123-123456789afe	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51d-742e-90e1-4c950d13e739	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-c3f1-7123-8123-123456789ab1	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51d-74de-9fbe-40098993d4d9	0194a8b2-eeee-7123-8123-123456789ace	019a03bf-d3c5-7e06-a5ac-94840106d437	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51d-702f-aef3-acb8f9ce2f8d	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-0015-7123-8123-123456789abc	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51d-7f71-af85-13364982e0e0	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-0016-7123-8123-123456789abc	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51d-7f26-952b-7a5ff84222c9	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-7123-7123-8123-123456789abc	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51d-7291-9b67-9e7ce2f044b2	0194a8b2-eeee-7123-8123-123456789ace	018e3f0a-12d3-7c45-b89a-2f3c4e1d5b6c	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51d-7cd3-a292-f754de28e284	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-0017-7123-8123-123456789abc	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51d-7d78-ac33-42af58dfc26d	0194a8b2-eeee-7123-8123-123456789ace	019a03bf-d37b-7b5a-8cfd-246ee7631d67	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e51d-7a51-baaf-fee52ded1f99	0194a8b2-eeee-7123-8123-123456789ace	0194a8b2-1035-7123-8123-123456789abc	allow	f	2025-10-20 22:31:39.036223+00
019a03bf-e6b6-77a8-b5da-05b90cf93217	019a03bf-e68a-7970-8888-6cb93481e388	0194a8b2-00a1-7123-8123-123456789abc	allow	f	2025-10-20 22:31:39.445584+00
\.


--
-- Data for Name: group_table_permissions; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.group_table_permissions (group_table_permission_id, group_id, table_name, access_mode, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: groups; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.groups (group_id, name, description, parent_group_id, org_id, isdeleted, updatedat) FROM stdin;
0194a8b2-aaaa-7123-8123-123456789ac4	Managers	Case Management Managers Group	\N	0194a8b2-5678-7123-8123-123456789abd	f	2025-10-20 22:31:38.385032+00
0194a8b2-eeee-7123-8123-123456789ace	Dev Team	Development Team Group	\N	0194a8b2-1234-7123-8123-123456789abc	f	2025-10-20 22:31:38.396875+00
0194a8ba-bcde-7123-8123-123456789ad7	Cashiers	Cashiers Group	\N	0194a8b2-1234-7123-8123-123456789abc	f	2025-10-20 22:31:38.408013+00
0194a8ba-d0d0-7123-8123-123456789ad8	POSManagers	Point of Sale managers group	\N	0194a8b2-1234-7123-8123-123456789abc	f	2025-10-20 22:31:38.444795+00
0194a8ba-dede-7123-8123-123456789ad9	ProcurementManagers	Procurement managers group (migrated from program)	\N	0194a8b2-1234-7123-8123-123456789abc	f	2025-10-20 22:31:38.455686+00
019a03bf-e68a-7970-8888-6cb93481e388	Vendors	Vendor portal users with access to My RFQs	\N	0194a8b2-1234-7123-8123-123456789abc	f	2025-10-20 22:31:39.402396+00
\.


--
-- Data for Name: idp_providers; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.idp_providers (provider_code, kind, name) FROM stdin;
\.


--
-- Data for Name: import_export_configs; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.import_export_configs (config_id, name, description, type, table_name, config, org_id, created_by, isdeleted, updatedat, createdat) FROM stdin;
019a03bf-cd36-77ce-bfd2-3cf272989ae6	products_catalog	Import and export product catalog including all product details	both	products	{"joins": [{"type": "left", "first": "products.category_id", "table": "product_categories", "second": "product_categories.category_id", "operator": "="}], "table": "products", "columns": ["product_id", "name", "description", "price", "quantity", "barcode", "brand", "product_number", "category_id", "tax_rates"], "filters": {"isDeleted": false}, "filename": "products_catalog", "order_by": {"name": "ASC"}, "transforms": {"price": {"type": "number", "decimals": 2}, "quantity": {"type": "number", "decimals": 0}, "category_id": {"type": "lookup", "table": "product_categories", "key_column": "name", "value_column": "category_id"}}, "primary_key": "product_id", "validations": {"name": {"required": true, "max_length": 255}, "price": {"required": false}}, "field_labels": {"name": "Name", "brand": "Brand", "price": "Price", "barcode": "Barcode", "quantity": "Quantity", "product_id": "Product ID", "description": "Description", "product_number": "Product Number"}, "unique_fields": ["barcode", "product_number"], "field_mappings": {"Name": "name", "Brand": "brand", "Price": "price", "Barcode": "barcode", "Category": "category_id", "Quantity": "quantity", "STT Rate": {"column": "tax_rates", "json_field": "stt"}, "VAT Rate": {"column": "tax_rates", "json_field": "vat"}, "Product ID": "product_id", "Description": "description", "Product Number": "product_number"}, "update_existing": true, "export_transforms": {"price": {"type": "number", "decimals": 2}, "tax_rates": {"type": "json_decode"}, "category_id": {"type": "lookup", "table": "product_categories", "key_column": "category_id", "display_column": "name"}}}	\N	\N	f	2025-10-20 22:31:32.917553+00	2025-10-20 22:31:32.917553+00
019a03bf-cd43-7d8b-ba33-ec685c2a8420	restaurant_products	Import and export restaurant products including ingredients	both	products	{"table": "products", "columns": ["product_id", "name", "description", "price", "quantity", "barcode", "brand", "product_number", "category_id", "tax_rates"], "filters": {"isDeleted": false}, "filename": "restaurant_products", "transforms": {"price": {"type": "number", "decimals": 2}, "quantity": {"type": "number", "decimals": 0}, "category_id": {"type": "lookup", "table": "product_categories", "key_column": "name", "value_column": "category_id"}}, "primary_key": "product_id", "validations": {"name": {"required": true, "max_length": 255}}, "field_labels": {"name": "Name", "brand": "Brand", "price": "Price", "barcode": "Barcode", "quantity": "Quantity", "product_id": "Product ID", "description": "Description", "product_number": "Product Number"}, "unique_fields": ["barcode"], "field_mappings": {"Name": "name", "Brand": "brand", "Price": "price", "Barcode": "barcode", "Category": "category_id", "Quantity": "quantity", "STT Rate": {"column": "tax_rates", "json_field": "stt"}, "VAT Rate": {"column": "tax_rates", "json_field": "vat"}, "Product ID": "product_id", "Description": "description", "Product Number": "product_number"}, "update_existing": true, "export_transforms": {"price": {"type": "number", "decimals": 2}, "category_id": {"type": "lookup", "table": "product_categories", "key_column": "category_id", "display_column": "name"}}}	\N	\N	f	2025-10-20 22:31:32.9309+00	2025-10-20 22:31:32.9309+00
019a03bf-e1bb-75c1-a2bd-fc18acdded85	pos_transactions_complete	Import/Export complete POS transaction data including all line items and payments (advanced format)	both	sales_receipts	{"joins": [{"type": "left", "first": "sales_receipts.sales_receipt_id", "table": "lineitems_payments", "second": "lineitems_payments.sales_receipt_id", "operator": "="}], "table": "sales_receipts", "columns": ["sales_receipt_id", "org_id", "type", "invoiceNumber", "requestedBy", "sdcDateTime", "invoiceCounter", "invoiceCounterExtension", "taxItems", "verificationUrl", "verificationQRCode", "journal", "messages", "signedBy", "encryptedInternalData", "signature", "totalCounter", "transactionTypeCounter", "totalAmount", "taxGroupRevision", "businessName", "tin", "locationName", "address", "district", "mrc", "transactiontype", "createdAt"], "primary_key": "sales_receipt_id", "field_labels": {"mrc": "MRC", "tin": "TIN", "type": "Type", "org_id": "Organization ID", "address": "Address", "journal": "Journal", "district": "District", "messages": "Messages", "payments": "Payments (JSON)", "signedBy": "Signed By", "taxItems": "Tax Items (JSON)", "createdAt": "Created At", "signature": "Signature", "line_items": "Line Items (JSON)", "requestedBy": "Requested By", "sdcDateTime": "SDC Date/Time", "totalAmount": "Total Amount", "businessName": "Business Name", "locationName": "Location Name", "totalCounter": "Total Counter", "invoiceNumber": "Invoice Number", "invoiceCounter": "Invoice Counter", "transactiontype": "Transaction Type", "verificationUrl": "Verification URL", "sales_receipt_id": "Receipt ID", "taxGroupRevision": "Tax Group Revision", "verificationQRCode": "Verification QR Code", "encryptedInternalData": "Encrypted Internal Data", "transactionTypeCounter": "Transaction Type Counter", "invoiceCounterExtension": "Invoice Counter Extension"}, "unique_fields": ["invoiceNumber", "org_id"], "export_options": {"pretty_print_json": true, "include_json_fields": true, "include_verification_data": true}, "import_options": {"update_existing": true, "parse_json_fields": true, "create_lineitems_record": true, "validate_product_references": true}, "required_columns": ["invoiceNumber", "type", "totalAmount", "org_id"], "validation_rules": {"type": {"type": "string", "required": true}, "line_items": {"type": "json_array", "min_items": 1, "item_validation": {"quantity": {"min": 0, "type": "numeric", "required": true}, "product_id": {"type": "uuid", "required": true}, "unit_price": {"min": 0, "type": "numeric", "required": true}}}, "totalAmount": {"min": 0, "type": "numeric", "required": true}, "invoiceNumber": {"type": "string", "required": true, "max_length": 255}}, "export_transforms": {"payments": {"type": "json_decode", "pretty_print": true}, "taxItems": {"type": "json_decode", "pretty_print": true}, "createdAt": {"type": "date", "format": "Y-m-d H:i:s"}, "line_items": {"type": "json_decode", "pretty_print": true}, "sdcDateTime": {"type": "date", "format": "Y-m-d H:i:s"}}, "import_transforms": {"payments": {"type": "json", "validate_structure": {"array_structure": true, "required_fields": ["method", "amount"]}}, "taxItems": {"type": "json", "allow_null": true}, "createdAt": {"type": "datetime", "format": "Y-m-d H:i:s", "allow_null": true}, "line_items": {"type": "json", "validate_structure": {"array_structure": true, "required_fields": ["product_id", "quantity", "unit_price"]}}, "sdcDateTime": {"type": "datetime", "format": "Y-m-d H:i:s", "allow_null": true}, "totalAmount": {"type": "decimal"}, "totalCounter": {"type": "integer", "allow_null": true}, "taxGroupRevision": {"type": "integer", "allow_null": true}, "transactionTypeCounter": {"type": "integer", "allow_null": true}}, "additional_columns": [{"name": "line_items", "type": "jsonb", "source": "lineitems_payments.line_items"}, {"name": "payments", "type": "jsonb", "source": "lineitems_payments.payments"}]}	\N	\N	f	2025-10-20 22:31:38.169854+00	2025-10-20 22:31:38.169854+00
019a03bf-e1c6-76b2-9022-5fb8a8beed92	pos_line_items	Import/Export only POS line items and payments linked to existing receipts	both	lineitems_payments	{"joins": [{"type": "left", "first": "lineitems_payments.sales_receipt_id", "table": "sales_receipts", "second": "sales_receipts.sales_receipt_id", "operator": "="}], "table": "lineitems_payments", "columns": ["sales_receipt_id", "org_id", "line_items", "payments"], "primary_key": "sales_receipt_id", "field_labels": {"org_id": "Organization ID", "payments": "Payments (JSON)", "line_items": "Line Items (JSON)", "totalAmount": "Total Amount", "invoiceNumber": "Invoice Number", "sales_receipt_id": "Receipt ID"}, "unique_fields": ["sales_receipt_id"], "required_columns": ["sales_receipt_id"], "validation_rules": {"line_items": {"type": "json_array", "min_items": 1}, "sales_receipt_id": {"type": "exists", "table": "sales_receipts", "column": "sales_receipt_id", "error_message": "Receipt ID must exist in sales_receipts table"}}, "export_transforms": {"payments": {"type": "json_decode", "pretty_print": true}, "line_items": {"type": "json_decode", "pretty_print": true}}, "import_transforms": {"payments": {"type": "json", "validate_structure": {"array_structure": true, "required_fields": ["method", "amount"]}}, "line_items": {"type": "json", "validate_structure": {"array_structure": true, "required_fields": ["product_id", "quantity", "unit_price"]}}}, "additional_columns": [{"name": "invoiceNumber", "type": "text", "source": "sales_receipts.invoiceNumber"}, {"name": "totalAmount", "type": "numeric", "source": "sales_receipts.totalAmount"}]}	\N	\N	f	2025-10-20 22:31:38.182633+00	2025-10-20 22:31:38.182633+00
\.


--
-- Data for Name: incident_alert_rules; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.incident_alert_rules (id, incident_type_id, severity, location_id, send_alert_to, email, send_email, phone, send_sms, send_push, tenant_id, branch_id, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: ingredients; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.ingredients (ingredients_id, name, description, quantity, units, price, org_id, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: ingredients_to_products; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.ingredients_to_products (ingredients_to_products_id, ingredients_id, product_id, org_id, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: inspection_assignment_rules; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.inspection_assignment_rules (id, district_id, email, send_email, phone, send_sms, send_push, inspector_id, tenant_id, branch_id, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: inspection_requests; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.inspection_requests (id, workplace_id, description, preferred_date, status, requested_by, created_at, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: interview_logs; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.interview_logs (id, case_id, person, notes, logged_at, tenant_id, branch_id, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: interviewers; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.interviewers (interviewer_id, interview_id, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: interviews; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.interviews (interview_id, application_id, interview_date, status, notes, feedback, interview_number, rating, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: inventory; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.inventory (inventory_id, product_batch_number_id, branch_id, warehouse_id, reference_id, reference_table, current_qty, unit_type, org_id, isdeleted, updatedat) FROM stdin;
019a03bf-e498-7d06-ad02-68e4c9550baa	019a03bf-e48e-7cce-8d9b-0790a3c7cf66	\N	\N	\N	\N	100	PIECE	0194a8b2-1234-7123-8123-123456789abc	f	2025-10-20 22:31:38.904213+00
019a03bf-e499-7c7c-8d01-98964922f7a7	019a03bf-e48e-7ae5-bdbf-077859adbd62	\N	\N	\N	\N	50	PIECE	0194a8b2-1234-7123-8123-123456789abc	f	2025-10-20 22:31:38.904213+00
019a03bf-e499-7615-8ce0-63cf40bb764d	019a03bf-e48e-7dc4-b391-138ed128028f	\N	\N	\N	\N	200	PIECE	0194a8b2-1234-7123-8123-123456789abc	f	2025-10-20 22:31:38.904213+00
019a040a-ae4c-7efb-9ce8-66d35cfa0b26	019a03bf-e48e-7ae5-bdbf-077859adbd62	019a03bf-dfd7-75f7-98c9-247bd8124265	\N	019a03bf-e0a3-7780-a5fb-41c84e6e5c27	goods_receipts	30	PALLET	0194a8b2-1234-7123-8123-123456789abc	f	2025-10-20 23:53:20.203866+00
019a040a-ae59-716c-848d-18d33e25abb2	019a03bf-e48e-7cce-8d9b-0790a3c7cf66	019a03bf-dfd7-75f7-98c9-247bd8124265	\N	\N	\N	25	PALLET	0194a8b2-1234-7123-8123-123456789abc	f	2025-10-20 23:53:20.21682+00
019a040a-ae66-766e-811a-50d36e15857e	019a03bf-e48e-7dc4-b391-138ed128028f	019a03bf-dfd7-75f7-98c9-247bd8124265	\N	\N	\N	15	PALLET	0194a8b2-1234-7123-8123-123456789abc	f	2025-10-20 23:53:20.229314+00
\.


--
-- Data for Name: inventory_breaks; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.inventory_breaks (inventory_break_id, org_id, product_id, branch_id, break_date, from_unit, to_unit, quantity_broken, quantity_produced, batch_number, broken_by, txn_remove_id, txn_add_id, notes, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: inventory_receive; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.inventory_receive (inventory_receive_id, truck, branch_id, vendor_id, org_id, user_id, date, delivery_note_number, lpo_id, lpo_number, invoice_number, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: inventory_txn; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.inventory_txn (inventory_txn_id, product_id, change, branch_id, user_id, reference_id, org_id, reference_table, reason, data, unit_type, quantity_in_base_units, processed_at, isdeleted, updatedat) FROM stdin;
019a03bf-e4a3-7d7d-ae06-3bfb9e84a7da	019a03bf-dff1-731d-bfda-a45427dac159	20	\N	\N	\N	0194a8b2-1234-7123-8123-123456789abc	\N	Initial stock	\N	PIECE	\N	\N	f	2025-10-20 22:31:38.914532+00
019a03bf-e4a3-78ea-86ed-3d5dbb09ac66	019a03bf-dffd-7ce7-81ac-f14244f73838	-10	\N	\N	\N	0194a8b2-5678-7123-8123-123456789abd	\N	Stock adjustment	\N	PIECE	\N	\N	f	2025-10-20 22:31:38.914532+00
019a03bf-e4a3-77de-aaab-279197eb4a97	019a03bf-e008-7bb3-908d-fa7fbf72bd1b	50	\N	\N	\N	0194a8b2-9abc-7123-8123-123456789abe	\N	Restock	\N	PIECE	\N	\N	f	2025-10-20 22:31:38.914532+00
019a040a-ae75-7c44-bf1e-405570052965	019a03bf-dffd-7ce7-81ac-f14244f73838	30	019a03bf-dfd7-75f7-98c9-247bd8124265	019a03bf-dfd4-7712-be37-71d35001732d	019a03bf-e0a3-7780-a5fb-41c84e6e5c27	0194a8b2-1234-7123-8123-123456789abc	goods_receipts	goods_receipt	{"invoice_number": "INV-GS-2024-0891", "vehicle_number": "FJ-1234", "delivery_note_number": "DN-2024-0154"}	PALLET	30000	\N	f	2025-10-20 23:53:20.243922+00
\.


--
-- Data for Name: invitations; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.invitations (invitation_id, inviter_user_id, email, root_org_id, org_id, role, message, expires_at, accepted_at, revoked_at) FROM stdin;
\.


--
-- Data for Name: invoice_payments; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.invoice_payments (id, invoice_id, request_id, amount, paymenttype, tenant_id, branch_id, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: invoice_settings; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.invoice_settings (id, tenant_id, template_id, case_template_id, logo_document_id, name, instructions, disclaimer, bank_details, number_format, starting_number, rollover_date, isdeleted, updatedat) FROM stdin;
1	\N	1	1	\N	\N	\N	\N	\N	\N	\N	\N	f	2025-10-20 22:31:30.318739+00
\.


--
-- Data for Name: invoice_templates; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.invoice_templates (invoice_template_id, name, file_path, tenant_id, isdeleted, updatedat) FROM stdin;
019a03bf-c2e8-7655-8696-3bc27ff6a05c	Basic	templates/invoices/basic.php	\N	f	2025-10-20 22:31:30.280361+00
019a03bf-c2e9-7d4d-b6c9-b1d0d4de21d7	Detailed	templates/invoices/detailed.php	\N	f	2025-10-20 22:31:30.280361+00
019a03bf-c2e9-76bc-a605-6d77954a5efb	Modern	templates/invoices/modern.php	\N	f	2025-10-20 22:31:30.280361+00
019a03bf-c2e9-7469-b409-c4772a56c6c0	Notice of Certain Workplaces	templates/invoices/workplace_notice.php	\N	f	2025-10-20 22:31:30.280361+00
019a03bf-c2e9-729f-9176-76da45aeb08b	Jagath Case	templates/invoices/jagath_template.php	\N	f	2025-10-20 22:31:30.280361+00
019a03bf-c31b-7352-8a8a-26598fcfa384	Notice of Certain Workplaces	templates/invoices/workplace_notice.php	4	f	2025-10-20 22:31:30.331126+00
019a03bf-c326-7efd-9746-ee3807daaabc	Jagath Case	templates/invoices/jagath_template.php	4	f	2025-10-20 22:31:30.342589+00
\.


--
-- Data for Name: invoice_types; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.invoice_types (invoice_type_id, name, description, org_id, isdeleted, updatedat) FROM stdin;
019a03bf-c933-7f1c-b697-caf54a7fcd56	case	\N	\N	f	2025-10-20 22:31:31.890724+00
019a03bf-c93f-704f-aa0e-ecaa2e28291f	workplace	\N	\N	f	2025-10-20 22:31:31.903578+00
019a03bf-c94b-7eab-9f05-3f4417a09a85	schedule_of_costs	\N	\N	f	2025-10-20 22:31:31.915393+00
\.


--
-- Data for Name: invoices; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.invoices (invoice_id, type_id, name, reference_table, reference_id, customer_id, invoice_template_id, invoice_date, number_format, starting_number, details, tax, invoice_number, amount, amount_paid, status, sent_at, line_items, taxcore_submission_id, taxcore_submission_id_fk, taxcore_receipt_data, taxcore_submitted_at, taxcore_verification_url, taxcore_qr_code, is_proforma, is_advance_payment, advance_payment_for_invoice_id, is_refund, refund_for_invoice_id, org_id, updated_by, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: items; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.items (item_id, org_id, itemname, price, vatpercent, vatincluded, isdeleted, updatedat) FROM stdin;
019a03bf-e7d2-7177-85db-986a69052270	\N	Enterprise Laptop	2450.00	15	No	f	2025-10-20 22:31:39.729096+00
019a03bf-e7d3-7338-9941-f1f356aca67a	\N	Ergonomic Office Chair	390.00	15	No	f	2025-10-20 22:31:39.729096+00
019a03bf-e7d3-736e-b317-f4154e0bee73	\N	Software License - Security Suite	14800.00	0	Yes	f	2025-10-20 22:31:39.729096+00
019a03bf-e7d3-7c68-8d9e-4c6b903346a6	\N	Conference Room Display	2875.00	15	No	f	2025-10-20 22:31:39.729096+00
019a03bf-e7d3-743f-a3c0-bd95ded1b381	\N	Medical First Aid Kit	32.80	15	Yes	f	2025-10-20 22:31:39.729096+00
019a03bf-e7d3-77f7-928b-85d530c73084	\N	Professional Training Course	1187.50	0	Yes	f	2025-10-20 22:31:39.729096+00
019a03bf-e7d3-7078-b795-b90fa38d7f96	\N	Cloud Storage Subscription	3500.00	0	Yes	f	2025-10-20 22:31:39.729096+00
019a03bf-e7d3-7bfe-bb3e-33bcdf84d1e2	\N	HVAC Unit - Industrial	17250.00	15	No	f	2025-10-20 22:31:39.729096+00
019a03bf-e7d3-7399-8891-45029e78f260	\N	Marketing Brochures (1000 units)	840.00	15	Yes	f	2025-10-20 22:31:39.729096+00
019a03bf-e7d3-74e3-a901-7a2ca91f5955	\N	Legal Consultation (per hour)	250.00	0	Yes	f	2025-10-20 22:31:39.729096+00
019a03bf-e7d3-7efe-a673-b4afe8e3dd69	\N	Vehicle Maintenance Kit	125.00	15	Yes	f	2025-10-20 22:31:39.729096+00
019a03bf-e7d3-7288-9d83-ed131aa19e1f	\N	IDE Software License	1166.67	0	Yes	f	2025-10-20 22:31:39.729096+00
019a03bf-e7d3-76e2-b717-710048a751a3	\N	Cleaning Supplies Monthly Pack	96.00	15	Yes	f	2025-10-20 22:31:39.729096+00
019a03bf-e7d3-7104-8fa7-28399e64124f	\N	Network Security Appliance	5800.00	15	No	f	2025-10-20 22:31:39.729096+00
019a03bf-e7d3-7ca4-9b7c-2a552d729175	\N	Project Management Software	450.00	0	Yes	f	2025-10-20 22:31:39.729096+00
\.


--
-- Data for Name: job_opening_templates; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.job_opening_templates (id, tenant_id, name, description, form_fields, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: kanban_boards; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.kanban_boards (id, project_id, tenant_id, branch_id, calendar_category_id, name, description, isdeleted, updatedat) FROM stdin;
1	1	\N	\N	1	WorkCOM Inspections	\N	f	2025-10-20 22:31:29.620984+00
2	1	\N	\N	2	OHS Inspections	\N	f	2025-10-20 22:31:29.620984+00
3	1	\N	\N	3	OHS Incidents	\N	f	2025-10-20 22:31:29.620984+00
4	1	\N	\N	4	Safety Incidents	\N	f	2025-10-20 22:31:29.620984+00
\.


--
-- Data for Name: kanban_columns; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.kanban_columns (id, board_id, tenant_id, branch_id, title, "position", isdeleted, updatedat) FROM stdin;
1	1	\N	\N	Pending	1	f	2025-10-20 22:31:29.651763+00
2	1	\N	\N	In Progress	2	f	2025-10-20 22:31:29.651763+00
3	1	\N	\N	Completed	3	f	2025-10-20 22:31:29.651763+00
4	2	\N	\N	Pending	1	f	2025-10-20 22:31:29.651763+00
5	2	\N	\N	In Progress	2	f	2025-10-20 22:31:29.651763+00
6	2	\N	\N	Completed	3	f	2025-10-20 22:31:29.651763+00
7	3	\N	\N	Pending	1	f	2025-10-20 22:31:29.651763+00
8	3	\N	\N	In Progress	2	f	2025-10-20 22:31:29.651763+00
9	3	\N	\N	Completed	3	f	2025-10-20 22:31:29.651763+00
10	4	\N	\N	Pending	1	f	2025-10-20 22:31:29.651763+00
11	4	\N	\N	In Progress	2	f	2025-10-20 22:31:29.651763+00
12	4	\N	\N	Completed	3	f	2025-10-20 22:31:29.651763+00
13	1	\N	\N	Pending	1	f	2025-10-20 22:31:30.685927+00
14	1	\N	\N	In Progress	2	f	2025-10-20 22:31:30.685927+00
15	1	\N	\N	Completed	3	f	2025-10-20 22:31:30.685927+00
\.


--
-- Data for Name: kanban_comments; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.kanban_comments (id, task_id, user_id, comment, tenant_id, branch_id, created_at, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: kanban_tasks; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.kanban_tasks (id, column_id, tenant_id, branch_id, title, description, assignee_id, due_date, record_table, record_id, status, isdeleted, updatedat) FROM stdin;
1	1	\N	\N	Schedule initial inspection	Arrange inspection date with site manager	1	2025-07-01	\N	\N	pending	f	2025-10-20 22:31:29.677915+00
2	2	\N	\N	Conduct site inspection	Review compliance checklist on-site	1	2025-07-10	\N	\N	in_progress	f	2025-10-20 22:31:29.677915+00
3	3	\N	\N	Submit inspection report	Compile results and upload to system	1	2025-07-15	\N	\N	pending	f	2025-10-20 22:31:29.677915+00
\.


--
-- Data for Name: leave_balances; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.leave_balances (leave_balance_id, user_id, org_id, leave_type_id, balance, "isDeleted", "updatedAt") FROM stdin;
\.


--
-- Data for Name: leave_requests; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.leave_requests (leave_request_id, user_id, org_id, leavetype, startdate, enddate, reason, status, approvedat, approvedby, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: leave_types; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.leave_types (leave_type_id, name, code, org_id, description, daysperyear, accrualtype, carryforward, maxcarry, approvalrequired, paid, active, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: legacy_resources; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.legacy_resources (id, name, description, isdeleted, updatedat) FROM stdin;
1	SystemSettings	Legacy module from Dashboard.php	f	2025-10-20 22:31:32.123526+00
2	CountryHolidays	Legacy module from Dashboard.php	f	2025-10-20 22:31:32.123526+00
3	Calendar	Legacy module from Dashboard.php	f	2025-10-20 22:31:32.123526+00
4	Logout	Legacy module from Dashboard.php	f	2025-10-20 22:31:32.123526+00
5	WorkflowInstances	Legacy module from Dashboard.php	f	2025-10-20 22:31:32.123526+00
6	KanbanBoard	Legacy module from Dashboard.php	f	2025-10-20 22:31:32.123526+00
7	CustomizeDashboard	Legacy module from Dashboard.php	f	2025-10-20 22:31:32.123526+00
8	FormBuilder	Legacy module from Dashboard.php	f	2025-10-20 22:31:32.123526+00
9	DetailViewBuilder	Legacy module from Dashboard.php	f	2025-10-20 22:31:32.123526+00
10	PageCustomizer	Legacy module from Dashboard.php	f	2025-10-20 22:31:32.123526+00
11	PageConfigBuilder	Legacy module from Dashboard.php	f	2025-10-20 22:31:32.123526+00
12	ModuleBuilder	Legacy module from Dashboard.php	f	2025-10-20 22:31:32.123526+00
13	WorkflowBuilder	Legacy module from Dashboard.php	f	2025-10-20 22:31:32.123526+00
14	TableBuilder	Legacy module from Dashboard.php	f	2025-10-20 22:31:32.123526+00
15	TableManager	Legacy module from Dashboard.php	f	2025-10-20 22:31:32.123526+00
16	ModuleManager	Legacy module from Dashboard.php	f	2025-10-20 22:31:32.123526+00
17	PermissionsManager	Legacy module from Dashboard.php	f	2025-10-20 22:31:32.123526+00
18	Employees	Employee management module	f	2025-10-20 22:31:32.123526+00
19	AutoOrders	Manage Auto Orders for Products	f	2025-10-20 22:31:32.123526+00
\.


--
-- Data for Name: line_items; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.line_items (id, invoice_id, request_id, name, quantity, unitprice, labels, totalamount, tenant_id, branch_id, product_id, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: lineitems_payments; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.lineitems_payments (sales_receipt_id, org_id, line_items, payments, customer, customer_id, case_id, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: locations; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.locations (id, name, latitude, longitude, radius_m, tenant_id, branch_id, isdeleted, updatedat) FROM stdin;
1	Suva Headquarters	-18.139796	178.426563	50	1	1	f	2025-10-20 22:31:38.826371+00
2	Nadi Office	-17.753300	177.443500	50	1	1	f	2025-10-20 22:31:38.826371+00
3	Lautoka Office	-17.616700	177.466700	50	1	1	f	2025-10-20 22:31:38.826371+00
\.


--
-- Data for Name: meeting_links; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.meeting_links (id, event_id, url, created_at, tenant_id, branch_id, isdeleted, updatedat) FROM stdin;
\.


--
-- Data for Name: models; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.models (model_id, model_name, table_name, primary_key, fields, joins, calculated_fields, metadata, updatedat, isdeleted) FROM stdin;
\.


--
-- Data for Name: modules; Type: TABLE DATA; Schema: public; Owner: taf
--

COPY public.modules (module_id, parent_module_id, name, config, org_id, icon, branch_id, aria_label, description, updatedat, isdeleted) FROM stdin;
019a03bf-9600-71a6-87e6-f8d9994e63d0	\N	tenant_table_manager	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "tenant_tables", "showGlobalSearch": false}}], "title": "Tenant Table Manager", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	ic_table_list	\N	Tenant Table Manager	Tenant Table Manager	2025-10-20 22:31:18.78406+00	f
019a03bf-960d-7ad3-8669-b3b6b1f39713	\N	Supervisor Types	{"body": [{"type": "table", "options": {"tableName": "supervisor_types", "showGlobalSearch": false}}], "title": "Supervisor Types", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	\N	\N	\N	\N	2025-10-20 22:31:18.796944+00	f
442d22f0-a2c9-4b29-a741-ce90111ccfa4	\N	leave_management	{"body": [{"id": "leaveRequestsTable", "type": "table", "options": {"tableName": "leave_requests", "rowActions": [{"label": "Apply", "onClick": "leaveManagementApply"}, {"label": "Approve", "onClick": "leaveManagementApprove"}], "columnLabels": {"reason": "Reason", "status": "Status", "enddate": "End Date", "leavetype": "Type", "startdate": "Start Date"}, "showGlobalSearch": true}}], "title": "Leave Management", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Apply for Leave", "formId": 1}, {"type": "filter-select", "options": {"options": [{"label": "All", "value": ""}, {"label": "Pending", "value": "Pending"}, {"label": "Approved", "value": "Approved"}, {"label": "Rejected", "value": "Rejected"}], "data_column": "status"}}, {"type": "filter-date-range", "options": {"data_column": "startdate"}}], "modulePath": "modules/leave/leaveManagement"}	\N	fa-calendar-check	\N	Leave Management	Leave Requests	2025-10-20 22:31:33.008836+00	f
c6d16f2c-4c20-42f7-a637-07f683e4e4d1	\N	RfqApprovalLevels	{"title": "RFQ Approval Levels", "modulePath": "modules/rfqapprovallevels"}	\N	fa-scale-balanced	\N	RFQ Approval Levels	Configure approval thresholds for RFQ approvers	2025-10-20 22:31:33.020377+00	f
019a03bf-cda8-7baf-9b4a-174cd3facd9c	\N	Vehicles	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "vehicles", "editFormId": 29, "showGlobalSearch": false}}], "title": "Vehicles", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Vehicle", "formName": "Vehicle Registration"}]}	\N	fa-car	\N	Vehicles	Vehicles	2025-10-20 22:31:33.031828+00	f
019a03bf-cdb3-72cc-8a10-008e1a7b858f	\N	Attendance	{"body": [{"type": "table", "options": {"tableName": "attendance", "columnsToShow": ["employee", "date", "timeIn", "timeOut", "hoursWorked", "overtime"], "searchInputTypes": {"date": "date", "timeIn": "time", "timeOut": "time", "employee": "text", "timeInLat": "number", "timeInLng": "number", "timeOutLat": "number", "timeOutLng": "number"}}}], "title": "Attendance", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-user-check	\N	Attendance	Attendance	2025-10-20 22:31:33.043423+00	f
019a03bf-cdbe-7b3c-8ac2-71133e2b8b69	\N	Attendance Dashboard	{"body": [{"id": "attendanceDash", "html": "<div class=\\"grid grid-cols-2 gap-4\\"><div class=\\"bg-base-100 rounded-lg shadow p-4 text-center\\"><h3 class=\\"text-sm font-medium\\">Clocked In</h3><p id=\\"adClockIn\\" class=\\"text-2xl font-bold\\">0</p></div><div class=\\"bg-base-100 rounded-lg shadow p-4 text-center\\"><h3 class=\\"text-sm font-medium\\">Clocked Out</h3><p id=\\"adClockOut\\" class=\\"text-2xl font-bold\\">0</p></div></div>", "type": "html"}], "title": "Attendance Dashboard", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-chart-pie	\N	Attendance Dashboard	Attendance Dashboard	2025-10-20 22:31:33.054516+00	f
0194a8b2-7123-7123-8123-123456789abc	\N	Time Clocks	{"body": [{"type": "table", "options": {"tableName": "time_clocks", "columnsToShow": ["name", "clock_type", "clocked_at"]}}], "title": "Time Clocks", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-clipboard-user	\N	Time Clocks	Time Clocks	2025-10-20 22:31:33.066917+00	f
018e3f0a-12d3-7c45-b89a-2f3c4e1d5b6c	\N	Payroll	{"body": [{"tabs": [{"label": "Worked Hours", "elements": [{"type": "table", "options": {"tableName": "time_clock_aggregates", "columnsToShow": ["name", "start_date", "end_date", "total_net_minutes", "total_overtime_minutes", "total_regular_minutes", "total_payable_minutes", "total_days_worked"]}}]}, {"label": "Payslips", "elements": [{"type": "table", "options": {"tableName": "generated_payslips", "columnsToShow": ["user_name", "org_name", "gross_pay", "net_pay", "start_date", "end_date"]}}]}], "type": "tabs"}], "title": "Payroll", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Generate Pay", "onClick": "generatePayForEmployees"}]}	\N	fa-clipboard-user	\N	Hours worked	Hours worked	2025-10-20 22:31:33.079325+00	f
019a03bf-cde4-704f-8d61-544dba8595a2	\N	Time Clock Locations	{"body": [{"type": "table", "options": {"tableName": "time_clock_locations", "columnsToShow": ["name", "shape", "radius_m", "assigned_to_type"], "searchInputTypes": {"name": "text", "shape": "text", "radius_m": "number", "assigned_to_type": "text"}}}], "title": "Time Clock Locations", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "mapLibraries": {"provider": "google", "libraries": "drawing"}}	\N	fa-map-location-dot	\N	Time Clock Locations	Time Clock Locations	2025-10-20 22:31:33.09191+00	f
019a03bf-cdf0-7fb5-b985-78d3b79e413a	\N	Timesheet Approval	{"body": [{"type": "table", "options": {"tableUrl": "../api/timesheets/pending", "tableName": "pending_timesheets", "apiRowActions": [{"apiUrl": "../api/timesheets/approve/{id}", "buttonText": "Approve"}], "columnsToShow": ["id", "user_id", "date", "standard_hours", "overtime_hours", "break_hours"]}}], "title": "Timesheet Approval", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-clipboard-check	\N	Timesheet Approval	Timesheet Approval	2025-10-20 22:31:33.104263+00	f
019a03bf-cdfd-7b32-b790-0d26f065f0fd	\N	Clock Adjustment	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "time_clocks", "columnsToShow": ["user_id", "clock_type", "clocked_at", "approval_comment"], "searchInputTypes": {"clocked_at": "datetime-local", "approval_comment": "text"}}}], "title": "Clock Adjustment", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-clock	\N	Clock Adjustment	Clock Adjustment	2025-10-20 22:31:33.117172+00	f
019a03bf-ce08-7c62-bc7e-a139934b72ac	\N	Timesheet Summary	{"body": [{"type": "table", "options": {"tableUrl": "../api/timesheets/summary", "addButton": false, "tableName": "timesheet_summary", "columnsToShow": ["user_id", "approved_hours", "rejected_hours", "comments"]}}], "title": "Timesheet Summary", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-list-check	\N	Timesheet Summary	Timesheet Summary	2025-10-20 22:31:33.128751+00	f
0194a8b2-8888-7123-8123-123456789ac7	\N	Case Management	{"body": [{"tabs": [{"label": "Cases", "elements": [{"type": "table", "options": {"addButton": false, "tableName": "cases", "rowActions": [{"label": "Select", "onClick": "selectCaseForManagement"}], "filterField": "client_name", "listenColumn": "client_name", "columnsToShow": ["client_name", "case_number", "title", "lead_rep_name", "status", "added_by"], "primaryKeyField": "case_id", "showGlobalSearch": false}}]}, {"label": "Details", "elements": [{"type": "detail-view", "viewId": 2, "tableName": "cases", "filterField": "case_id"}]}, {"label": "Instructions", "elements": [{"type": "button", "label": "Add Instruction", "formName": "Case Instruction", "prefillFilter": "case_id"}, {"type": "table", "options": {"addButton": false, "tableName": "case_instructions", "inlineEdit": true, "filterField": "case_id", "showGlobalSearch": false}}]}, {"label": "Documents", "elements": [{"type": "documents", "options": {"filterField": "case_id", "listenColumn": "case_id", "metadataFields": {"status": "status", "client_id": "client_id", "case_title": "title", "case_number": "case_number", "client_name": "client_name", "matter_type": "matter_type"}}}]}, {"label": "Hours", "elements": [{"type": "table", "options": {"tableUrl": "../api/time_entries", "addButton": false, "tableName": "time_entries", "editFormId": 38, "inlineEdit": true, "filterField": "reference_id", "listenColumn": "case_id", "columnsToShow": ["Counsel", "date", "hours", "total", "work_type", "description"], "ownerEditOnly": true, "multipleSelect": true, "showGlobalSearch": false}}]}, {"label": "Expenses", "elements": [{"type": "table", "options": {"addButton": false, "tableName": "expenses", "editFormId": 48, "inlineEdit": true, "filterField": "reference_id", "listenColumn": "case_id", "columnsToShow": ["date", "counsel", "amount", "description", "billable"], "ownerEditOnly": true, "multipleSelect": true, "showGlobalSearch": false}}]}, {"label": "One Time Costs", "elements": [{"type": "button", "label": "Add One Time Cost", "formName": "One Time Cost", "prefillFilter": "case_id"}, {"type": "table", "options": {"addButton": false, "tableName": "one_time_service_costs", "editFormId": 58, "inlineEdit": true, "filterField": "reference_id", "listenColumn": "case_id", "columnsToShow": ["date", "counsel", "amount", "description", "billable"], "ownerEditOnly": true, "multipleSelect": true, "showGlobalSearch": false}}]}, {"label": "Invoices", "elements": [{"type": "table", "options": {"filters": {"reference_table": "cases"}, "addButton": false, "tableName": "invoices", "inlineEdit": true, "rowActions": [{"label": "Edit", "onClick": "openCaseInvoiceEditForm"}, {"label": "Record Payment", "onClick": "recordInvoicePayment"}, {"icon": "fa-paper-plane", "label": "Submit to TaxCore", "onClick": "submitInvoiceToTaxCore", "condition": "status == 'approved'"}, {"label": "Download", "onClick": "downloadCaseInvoice"}, {"label": "Preview", "onClick": "previewCaseInvoice"}], "filterField": "reference_id", "listenColumn": "case_id", "columnsToShow": ["invoice_date", "sent_at", "invoice_number", "amount", "amount_paid", "balance"], "showGlobalSearch": false}}]}, {"label": "Payments", "elements": [{"type": "table", "options": {"filters": {"reference_table": "cases"}, "addButton": false, "tableName": "payments", "inlineEdit": true, "filterField": "reference_id", "listenColumn": "case_id", "columnsToShow": ["payment_date", "total_amount", "payment_method", "status", "notes"], "showGlobalSearch": false}}]}], "type": "tabs"}], "title": "Case Management", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "filter-select", "options": {"data_column": "client_name", "debounce_ms": 250, "max_results": 25, "placeholder": "Search by client name...", "populateMode": "immediate", "source_table": "clients", "search_fields": ["name"], "source_column": "client_id", "data_column_id": "selected_client_id", "display_column": "name"}}, {"type": "button", "label": "Add Client", "formName": "Client"}, {"type": "button", "label": "Edit Client", "onClick": "openEditForm"}, {"type": "button", "label": "Add Case", "formName": "Case"}, {"type": "button", "label": "Edit Case", "onClick": "openEditForm"}, {"type": "button", "label": "Add Hour", "formName": "Time Entries", "prefillFilter": "case_id", "source_column": "case_id"}, {"type": "button", "label": "Add Expense", "formName": "Case Expense", "prefillFilter": "case_id"}, {"type": "button", "label": "Add One Time Cost", "formName": "One Time Cost", "prefillFilter": "case_id"}, {"type": "button", "label": "Create Cost Schedule", "onClick": "createCostSchedule"}, {"type": "button", "label": "Create Invoice", "onClick": "createCostSchedule"}, {"type": "button", "label": "Record Payment", "onClick": "recordGeneralPayment"}, {"type": "button", "label": "TaxCore Settings", "onClick": "openTaxCoreSettings"}, {"type": "button", "label": "Transactions", "onClick": "showCaseTransactions"}, {"type": "button", "label": "Back", "onClick": "backToCases"}]}	\N	fa-briefcase	\N	Case Management	Case Management	2025-10-20 22:31:33.296564+00	f
019a03bf-ce15-716f-9711-b6ba49849f1e	\N	User Groups	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "groups", "showGlobalSearch": true}}], "title": "User Groups", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Group", "formName": "User Group"}]}	\N	fa-users	\N	User Groups	User Groups	2025-10-20 22:31:33.140719+00	f
019a03bf-ce21-7393-a3bf-11d156051498	\N	Group Members	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "user_group_memberships", "showGlobalSearch": true}}], "title": "Group Members", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Member", "formName": "Group Member"}]}	\N	fa-user-group	\N	Group Members	Group Members	2025-10-20 22:31:33.153372+00	f
019a03bf-ce2c-7e66-978e-8d63cb7b10c3	\N	form_group_manager	{"body": [{"type": "table", "options": {"tableName": "form_categories", "editFormId": 68}}], "title": "Form Categories", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-layer-group	\N	Form Categories	Manage form categories	2025-10-20 22:31:33.164058+00	f
019a03bf-ce37-7be6-8f8a-3db08eb4ed71	\N	Users	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "users", "showGlobalSearch": true}}], "title": "Users", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add User", "formName": "User"}]}	\N	fa-users-gear	\N	Manage Users	Manage Users	2025-10-20 22:31:33.175085+00	f
019a03bf-ce42-77b8-b4a2-0c067b5b3d16	\N	dashboard_card_permissions	{"body": [{"html": "<select id=\\"dcpTenantSelect\\"><option value=\\"\\">All</option></select><div class=\\"tabs mb-2\\" id=\\"dcp-tabs\\"><a class=\\"tab tab-bordered tab-active\\" data-tab=\\"groups\\">Groups</a><a class=\\"tab tab-bordered\\" data-tab=\\"users\\">Users</a></div>", "type": "html"}, {"id": "dcpGroups", "type": "table", "options": {"addButton": false, "tableName": "groups", "actionsHeader": "Allow", "showGlobalSearch": false}}, {"id": "dcpUsers", "type": "table", "options": {"addButton": false, "tableName": "users", "actionsHeader": "Allow", "showGlobalSearch": false}}], "title": "Dashboard Card Permissions", "footer": [{"type": "button", "label": "Save", "onClick": "saveDashboardCardPerms"}, {"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-id-badge	\N	Card Permissions	Card Permissions	2025-10-20 22:31:33.186305+00	f
019a03bf-ce4d-7d81-95a8-ff677396b95e	\N	dashboard_card_permissions_manager	{"body": [{"html": "<select id=\\"dcpTenantSelect\\"></select><select id=\\"dcpmGroupSelect\\"></select><select id=\\"dcpmUserSelect\\"></select>", "type": "html"}, {"id": "dcpmCards", "html": "", "type": "html"}, {"html": "<div id=\\"dcpm-detail\\" class=\\"hidden\\"></div>", "type": "html"}], "title": "Card Permissions Manager", "footer": [{"type": "button", "label": "Save", "onClick": "saveCardPermissions"}, {"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-id-badge	\N	Card Permissions Manager	Card Permissions Manager	2025-10-20 22:31:33.197286+00	f
019a03bf-ce58-7383-8640-4215ec283edf	\N	workflow_builder	{"body": [{"id": "wfBuilderContainer", "html": "", "type": "html"}], "title": "Workflow Builder", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-sitemap	\N	Workflow Builder	Workflow Builder	2025-10-20 22:31:33.208185+00	f
019a03bf-ce62-7ced-8481-7653bfed720a	\N	Trip Logs	{"body": [{"type": "table", "options": {"rowClick": "selectRecord", "addButton": false, "tableName": "vehicle_trips", "showGlobalSearch": true}}], "title": "Trip Logs", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Map View", "onClick": "openTripMapView"}]}	\N	fa-road	\N	Trip Logs	Trip Logs	2025-10-20 22:31:33.218781+00	f
019a03bf-ce6e-7875-b0e7-976f6c5b7fce	\N	Vehicle Reports	{"body": [{"id": "vehicleReports", "type": "table", "options": {"filters": {"status": "open"}, "rowClick": "selectRecord", "addButton": false, "tableName": "vehicle_reports", "apiRowActions": [{"apiUrl": "../api/vehicle_reports/{id}/assign", "buttonText": "Accept"}, {"apiUrl": "../api/vehicle_reports/{id}/confirm", "buttonText": "Confirm"}], "showGlobalSearch": false}}], "title": "Vehicle Reports", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Report", "formName": "Vehicle Issue Report"}, {"type": "button", "label": "Detail View", "onClick": "openSelectedDetail"}]}	\N	fa-clipboard-list	\N	Vehicle Reports	Vehicle Reports	2025-10-20 22:31:33.230046+00	f
019a03bf-ce7a-7467-b6f7-b8bda4232a1e	\N	Fleet Analytics	{"body": [{"id": "fleetAnalyticsRoot", "html": "<div id=\\"fleetAnalytics\\"></div>", "type": "html"}], "title": "Fleet Analytics", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-truck-fast	\N	Fleet Analytics	Fleet Analytics	2025-10-20 22:31:33.241892+00	f
019a03bf-ce88-7032-8d30-b9e98811b8ad	\N	Vehicle Downtime	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "vehicle_downtime", "showGlobalSearch": false}}], "title": "Vehicle Downtime", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Downtime", "formName": "Vehicle Downtime"}]}	\N	fa-clock	\N	Vehicle Downtime	Vehicle Downtime	2025-10-20 22:31:33.255891+00	f
0194a8b2-aaaa-7123-8123-123456789ac9	\N	Clients	{"body": [{"type": "table", "options": {"rowClick": "selectRecord", "addButton": false, "tableName": "clients", "filterField": "name", "listenColumn": "name", "columnsToShow": ["name", "counsel", "phone", "email"], "showGlobalSearch": false}}], "title": "Clients", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "filter-select", "options": {"data_column": "name", "debounce_ms": 250, "max_results": 25, "placeholder": "Search clients by name...", "populateMode": "immediate", "source_table": "clients", "search_fields": ["name"], "source_column": "client_id", "data_column_id": "selected_client_id", "display_column": "name"}}, {"type": "button", "label": "Add Client", "formName": "Client"}, {"type": "button", "label": "Detail View", "onClick": "openSelectedDetail"}]}	\N	fa-users	\N	Clients	Clients	2025-10-20 22:31:33.268987+00	f
0194a8b2-bbbb-7123-8123-123456789aca	\N	Cases	{"body": [{"type": "table", "options": {"rowClick": "selectRecord", "addButton": false, "tableName": "cases", "filterField": "title", "listenColumn": "title", "columnsToShow": ["client_name", "case_number", "title", "lead_rep_name", "added_by"], "showGlobalSearch": false}}], "title": "Cases", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "filter-select", "options": {"data_column": "title", "debounce_ms": 250, "max_results": 25, "placeholder": "Search cases by client, number, or title...", "populateMode": "immediate", "source_table": "cases", "search_fields": ["client_name", "case_number", "title"], "source_column": "case_id", "data_column_id": "selected_case_id", "display_column": "title"}}, {"type": "button", "label": "Add Case", "formName": "Case"}, {"type": "button", "label": "Detail View", "onClick": "openSelectedDetail"}]}	\N	fa-folder-open	\N	Cases	Cases	2025-10-20 22:31:33.282375+00	f
0194a8b2-9999-7123-8123-123456789ac8	\N	time_entries_expenses	{"body": [{"tabs": [{"label": "Time Entries", "elements": [{"type": "table", "options": {"filters": {"approved": false}, "addButton": false, "tableName": "time_entries", "editFormId": 38, "inlineEdit": true, "filterField": ["user_id", "approved", "date"], "columnButtons": {"approved": {"buttonMap": {"true": {"text": "✓ Approved", "title": "Click to disapprove", "dataset": {"field": "approved", "tableName": "time_entries", "entityName": "entry", "primaryKey": "time_entry_id", "confirmTrue": "Approve this entry?", "confirmFalse": "Disapprove this entry?"}, "onClick": "genericToggle", "className": "badge badge-success badge-sm cursor-pointer"}, "false": {"text": "⏳ Pending", "title": "Click to approve", "dataset": {"field": "approved", "tableName": "time_entries", "entityName": "entry", "primaryKey": "time_entry_id", "confirmTrue": "Approve this entry?", "confirmFalse": "Disapprove this entry?"}, "onClick": "genericToggle", "className": "badge badge-warning badge-sm cursor-pointer"}}, "showValue": false}, "billable": {"buttonMap": {"true": {"text": "✓ Billable", "title": "Click to mark as non-billable", "dataset": {"field": "billable", "tableName": "time_entries", "entityName": "entry", "primaryKey": "time_entry_id", "confirmTrue": "Mark as billable?", "confirmFalse": "Mark as non-billable?"}, "onClick": "genericToggle", "className": "badge badge-success badge-sm cursor-pointer"}, "false": {"text": "✗ Non-Billable", "title": "Click to mark as billable", "dataset": {"field": "billable", "tableName": "time_entries", "entityName": "entry", "primaryKey": "time_entry_id", "confirmTrue": "Mark as billable?", "confirmFalse": "Mark as non-billable?"}, "onClick": "genericToggle", "className": "badge badge-ghost badge-sm cursor-pointer"}}, "showValue": false}}, "columnsToShow": ["date", "counsel", "client_name", "case_name", "hours", "total", "description", "billable", "approved", "approval_comment"], "showGlobalSearch": false}}]}, {"label": "Expenses", "elements": [{"type": "table", "options": {"filters": {"approved": false}, "addButton": false, "tableName": "expenses", "editFormId": 48, "inlineEdit": true, "filterField": ["user_id", "approved", "date"], "columnButtons": {"approved": {"buttonMap": {"true": {"text": "✓ Approved", "title": "Click to disapprove", "dataset": {"field": "approved", "tableName": "expenses", "entityName": "expense", "primaryKey": "expense_id", "confirmTrue": "Approve this expense?", "confirmFalse": "Disapprove this expense?"}, "onClick": "genericToggle", "className": "badge badge-success badge-sm cursor-pointer"}, "false": {"text": "⏳ Pending", "title": "Click to approve", "dataset": {"field": "approved", "tableName": "expenses", "entityName": "expense", "primaryKey": "expense_id", "confirmTrue": "Approve this expense?", "confirmFalse": "Disapprove this expense?"}, "onClick": "genericToggle", "className": "badge badge-warning badge-sm cursor-pointer"}}, "showValue": false}, "billable": {"buttonMap": {"true": {"text": "✓ Billable", "title": "Click to mark as non-billable", "dataset": {"field": "billable", "tableName": "expenses", "entityName": "expense", "primaryKey": "expense_id", "confirmTrue": "Mark as billable?", "confirmFalse": "Mark as non-billable?"}, "onClick": "genericToggle", "className": "badge badge-success badge-sm cursor-pointer"}, "false": {"text": "✗ Non-Billable", "title": "Click to mark as billable", "dataset": {"field": "billable", "tableName": "expenses", "entityName": "expense", "primaryKey": "expense_id", "confirmTrue": "Mark as billable?", "confirmFalse": "Mark as non-billable?"}, "onClick": "genericToggle", "className": "badge badge-ghost badge-sm cursor-pointer"}}, "showValue": false}}, "columnsToShow": ["date", "counsel", "client_name", "case_name", "amount", "description", "billable", "approved", "approval_comment"], "showGlobalSearch": false}}]}, {"label": "One Time Costs", "elements": [{"type": "table", "options": {"filters": {"approved": false}, "tableName": "one_time_service_costs", "editFormId": 58, "inlineEdit": true, "filterField": ["user_id", "approved", "date"], "columnButtons": {"approved": {"buttonMap": {"true": {"text": "✓ Approved", "title": "Click to disapprove", "dataset": {"field": "approved", "tableName": "one_time_service_costs", "entityName": "cost", "primaryKey": "one_time_service_cost_id", "confirmTrue": "Approve this cost?", "confirmFalse": "Disapprove this cost?"}, "onClick": "genericToggle", "className": "badge badge-success badge-sm cursor-pointer"}, "false": {"text": "⏳ Pending", "title": "Click to approve", "dataset": {"field": "approved", "tableName": "one_time_service_costs", "entityName": "cost", "primaryKey": "one_time_service_cost_id", "confirmTrue": "Approve this cost?", "confirmFalse": "Disapprove this cost?"}, "onClick": "genericToggle", "className": "badge badge-warning badge-sm cursor-pointer"}}, "showValue": false}, "billable": {"buttonMap": {"true": {"text": "✓ Billable", "title": "Click to mark as non-billable", "dataset": {"field": "billable", "tableName": "one_time_service_costs", "entityName": "cost", "primaryKey": "one_time_service_cost_id", "confirmTrue": "Mark as billable?", "confirmFalse": "Mark as non-billable?"}, "onClick": "genericToggle", "className": "badge badge-success badge-sm cursor-pointer"}, "false": {"text": "✗ Non-Billable", "title": "Click to mark as billable", "dataset": {"field": "billable", "tableName": "one_time_service_costs", "entityName": "cost", "primaryKey": "one_time_service_cost_id", "confirmTrue": "Mark as billable?", "confirmFalse": "Mark as non-billable?"}, "onClick": "genericToggle", "className": "badge badge-ghost badge-sm cursor-pointer"}}, "showValue": false}}, "columnsToShow": ["date", "counsel", "client_name", "case_name", "amount", "description", "billable", "approved", "comments"]}}]}], "type": "tabs"}], "title": "Time Entries & Expenses", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "filter-select", "options": {"data_column": "user_id", "placeholder": "Search users...", "source_table": "users", "default_label": "All", "search_fields": ["full_name", "email"], "source_column": "user_id", "display_column": "full_name"}}, {"type": "filter-select", "options": {"value": false, "options": [{"label": "All", "value": ""}, {"label": "Approved", "value": true}, {"label": "Pending", "value": false}], "data_column": "approved"}}, {"type": "filter-date-range", "options": {"data_column": "date"}}]}	\N	fa-clock	\N	Time Entries & Expenses	Time Entries & Expenses	2025-10-20 22:31:33.311694+00	f
019a03bf-cecd-7131-a21b-54c44ba51e92	\N	Tenants	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "tenants", "showGlobalSearch": false}}], "title": "Tenants", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Tenant", "formName": "Tenant"}]}	\N	fa-users-gear	\N	Tenant Admin	Tenant Admin	2025-10-20 22:31:33.324748+00	f
019a03bf-ced9-7797-8458-9ce83fbd44db	\N	Admins	{"body": [{"type": "table", "options": {"filters": {"is_admin": "1"}, "addButton": false, "tableName": "users", "showGlobalSearch": false}}], "title": "Admins", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Admin", "formName": "Admin"}]}	\N	fa-user-shield	\N	Admins	Admins	2025-10-20 22:31:33.336978+00	f
019a03bf-cee5-7496-888b-8fcbbff94579	\N	Table Builder	{"body": [{"html": "<div class=\\"mb-2\\"><label class=\\"label\\">Table Name</label><input id=\\"tbTableName\\" class=\\"input input-bordered w-full\\"/></div>", "type": "html"}, {"html": "<div class=\\"mt-4\\"><button id=\\"addColumnBtn\\" type=\\"button\\" class=\\"btn btn-sm mb-2\\">Add Column</button><table id=\\"tbColumns\\" class=\\"table table-sm w-full\\"><thead><tr><th>Name</th><th>Type</th><th>Default</th><th>Required</th><th></th></tr></thead><tbody></tbody></table></div>", "type": "html"}, {"html": "<div class=\\"mt-4\\"><button id=\\"addRelationBtn\\" type=\\"button\\" class=\\"btn btn-sm mb-2\\">Add Relationship</button><table id=\\"tbRelations\\" class=\\"table table-sm w-full\\"><thead><tr><th>Column</th><th>References Table</th><th>References Column</th><th></th></tr></thead><tbody></tbody></table></div>", "type": "html"}], "title": "Table Builder", "footer": [{"type": "button", "label": "Save", "onClick": "submitTableDefinition"}, {"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-table	\N	Table Builder	Table Builder	2025-10-20 22:31:33.348867+00	f
019a03bf-cef0-79bb-b352-028a37b97f0e	\N	Graph Builder	{"body": [{"id": "graphBuilderMount", "html": "<div id=\\"graphBuilderMount\\"></div>", "type": "html"}], "title": "Graph Builder", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-chart-line	\N	Graph Builder	Graph Builder	2025-10-20 22:31:33.359796+00	f
019a03bf-cefb-7a96-b3cc-e3f15eacb937	\N	tenant_table_manager	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "tenant_tables", "showGlobalSearch": false}}], "title": "Tenant Table Manager", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-table-list	\N	Tenant Table Manager	Tenant Table Manager	2025-10-20 22:31:33.371268+00	f
019a03bf-cf07-76b8-b66c-51d159a976c5	\N	module_manager	{"body": [{"id": "moduleManagerContainer", "html": "", "type": "html"}], "title": "Module Manager", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-cubes	\N	Module Manager	Module Manager	2025-10-20 22:31:33.38334+00	f
019a03bf-cf13-7c72-b78b-938b7db5ec46	\N	permissions_manager	{"body": [{"id": "permissionsContainer", "html": "", "type": "html"}], "title": "Permissions Manager", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-user-shield	\N	Permissions Manager	Permissions Manager	2025-10-20 22:31:33.394725+00	f
019a03bf-cf1e-75e8-9e21-a150e97d91f5	\N	Vendor Quotes	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "vendor_quotes", "showGlobalSearch": false}}], "title": "Vendor Quotes", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Quote", "formName": "Vendor Quote"}]}	\N	fa-file-lines	\N	Vendor Quotes	Vendor Quotes	2025-10-20 22:31:33.406451+00	f
0194a8b2-00a1-7123-8123-123456789abc	\N	Vendor RFQs	{"body": [{"tabs": [{"label": "My RFQs", "elements": [{"html": "<div class='alert alert-info mb-2'>Select an invite then click Respond to start your quote.</div>", "type": "html"}, {"id": "vendorInvites", "type": "table", "options": {"scope": "user", "addButton": false, "tableName": "rfq_invites", "userField": "vendor_user_id", "rowActions": [{"label": "Respond", "onClick": "openVendorResponse"}], "columnsToShow": ["rfq_id", "status", "sent_at", "opened_at", "responded_at"]}}]}, {"label": "Response", "elements": [{"type": "detail-view", "tableName": "rfq_headers", "filterField": "rfq_id"}, {"id": "vendorQuotes", "type": "table", "options": {"addButton": false, "tableName": "vendor_quotes", "inlineEdit": true, "rowActions": [{"label": "Select", "onClick": "selectRecord"}, {"label": "Submit", "onClick": "submitVendorQuote"}], "filterField": ["rfq_id", "vendor_id"], "columnsToShow": ["status", "currency", "total_amount", "delivery_days", "valid_thru", "notes"]}}, {"type": "table", "options": {"addButton": true, "tableName": "vendor_quote_items", "inlineEdit": true, "filterField": "quote_id", "columnsToShow": ["rfq_item_id", "is_alternate", "alt_label", "unit_price", "tax", "lead_time_days", "notes"]}}]}], "type": "tabs"}], "title": "Vendor RFQs", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-clipboard-list	\N	Vendor RFQs	Respond to RFQs and submit quotes	2025-10-20 22:31:33.417947+00	f
019a03bf-cf35-7901-94a9-fbb0c6748829	\N	Time Entries Entry	{"body": [{"type": "table", "options": {"tableUrl": "../api/time_entries", "addButton": false, "tableName": "time_entries", "editFormId": 38, "showGlobalSearch": false}}], "title": "Time Entries Entry", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Hour", "formName": "Time Entries"}]}	\N	fa-user-clock	\N	Time Entries Entry	Time Entries Entry	2025-10-20 22:31:33.429083+00	f
019a03bf-cf41-7a7c-bea4-2ca409374bb9	\N	Drivers	{"body": [{"type": "table", "options": {"tableName": "users", "filterField": "groups.name", "filterValue": "Drivers", "showGlobalSearch": false}}], "title": "Drivers", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Driver", "formName": "Driver"}]}	\N	fa-id-card	\N	Drivers	Drivers	2025-10-20 22:31:33.440635+00	f
019a03bf-cf4e-7732-bf28-a7a2e18faab6	\N	Lawyers	{"body": [{"type": "table", "options": {"tableName": "users", "filterField": "groups.name", "filterValue": "Lawyers", "showGlobalSearch": false}}], "title": "Lawyers", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Lawyer", "formName": "Lawyer"}]}	\N	fa-gavel	\N	Lawyers	Lawyers	2025-10-20 22:31:33.454228+00	f
0194a8b2-7777-7123-8123-123456789ac6	\N	Employees	{"body": [{"type": "custom", "module": "Employees", "modulePath": "employees"}], "title": "Employee Management"}	\N	fa-users	\N	Employees	Manage employees, rates, and types	2025-10-20 22:31:33.466968+00	f
0194a8b2-8888-7123-8123-123456789ac6	\N	User Profile	{"body": [{"type": "custom", "module": "UserProfile", "modulePath": "profile/userprofile"}], "title": "User Profile"}	\N	fa-user-gear	\N	User Profile	Manage MFA or PassKey	2025-10-20 22:31:33.47994+00	f
019a03bf-cf76-7cbd-8bcd-4d405ef57b8f	\N	Investigators	{"body": [{"type": "table", "options": {"tableName": "users", "filterField": "groups.name", "filterValue": "Investigators", "showGlobalSearch": false}}], "title": "Investigators", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Investigator", "formName": "Investigator"}]}	\N	fa-user-secret	\N	Investigators	Investigators	2025-10-20 22:31:33.493368+00	f
019a03bf-cf84-7118-a873-47105140089d	\N	Case Detail	{"body": [{"tabs": [{"label": "Hours", "elements": [{"type": "button", "label": "Add Hour", "onClick": "openCaseHourForm"}, {"type": "table-view", "viewId": 100, "recordMap": "formatCaseHourRow"}]}, {"label": "Documents", "elements": [{"type": "button", "label": "Upload Document", "onClick": "uploadCaseDocument"}, {"id": "caseDocsTbl", "type": "table", "options": {"addButton": false, "tableName": "documents", "showGlobalSearch": false}}]}, {"label": "Invoices", "elements": [{"type": "button", "label": "Create Invoice", "onClick": "openCaseInvoiceForm"}, {"id": "caseInvoicesTbl", "type": "table", "options": {"addButton": false, "tableName": "invoices", "rowActions": [{"label": "Download", "onClick": "downloadCaseInvoice"}, {"label": "Preview", "onClick": "previewCaseInvoice"}], "showGlobalSearch": false}}]}, {"label": "Payments", "elements": [{"type": "button", "label": "Record Payment", "onClick": "openCasePaymentForm"}, {"id": "casePaymentsTbl", "type": "table", "options": {"addButton": false, "tableName": "payments", "showGlobalSearch": false}}]}], "type": "tabs"}], "title": "Case Detail", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	\N	\N	\N	\N	2025-10-20 22:31:33.507088+00	f
019a03bf-cf92-7da1-849d-40768af03d83	\N	Case Invoice Preview	{"body": [{"id": "ciPreview", "html": "", "type": "html"}, {"type": "form", "formName": "Case Invoice"}], "title": "Case Invoice", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	\N	\N	\N	\N	2025-10-20 22:31:33.521536+00	f
019a03bf-cfa0-768a-90ec-c518f57f2fa9	\N	Workplace Invoice Preview	{"body": [{"id": "invoicePreview", "html": "", "type": "html"}, {"html": "<button id=\\"payNowBtn\\" class=\\"btn\\">Pay Now</button>", "type": "html"}], "title": "Workplace Invoice Preview", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	\N	\N	\N	\N	2025-10-20 22:31:33.534591+00	f
019a03bf-cfad-7e4b-a4fe-b30225081ede	\N	DMS Showcase	{"body": [{"type": "documents"}], "title": "DMS Showcase", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-folder-open	\N	DMS Showcase	DMS Showcase	2025-10-20 22:31:33.548472+00	f
019a03bf-cfb9-7dec-b8c1-b9bab79497ec	\N	Training Documents	{"body": [{"type": "documents", "options": {"scope": "tenant", "category_id": 1}}], "title": "Training Documents", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-folder-open	\N	Training Documents	Training Documents	2025-10-20 22:31:33.560795+00	f
019a03bf-cfc5-7642-9cda-7d44cda2a765	\N	Compliance Documents	{"body": [{"type": "documents", "options": {"scope": "tenant", "showExpiry": true, "category_id": 2}}], "title": "Compliance Documents", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-folder-open	\N	Compliance Documents	Compliance Documents	2025-10-20 22:31:33.572964+00	f
019a03bf-cfd0-797d-b0b5-7572a94feb35	\N	Sample Detail Modal	{"body": [{"type": "detail-view", "viewId": 1}], "title": "Sample Detail", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-address-card	\N	Sample Detail View	Sample Detail View	2025-10-20 22:31:33.583865+00	f
019a03bf-cfdb-7daf-a0b6-4fb2d1e7cbfa	\N	Invoice Configuration	{"body": [{"type": "form", "formId": 44}], "title": "Invoice Configuration", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	\N	\N	\N	\N	2025-10-20 22:31:33.594738+00	f
019a03bf-cfe6-7235-bd2f-e2bc99761c66	\N	Compliance Dashboard	{"body": [{"id": "complianceDash", "html": "<div id=\\"complianceDashboard\\"></div>", "type": "html"}], "title": "Compliance Dashboard", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-gauge	\N	Compliance Dashboard	Compliance Dashboard	2025-10-20 22:31:33.605981+00	f
019a03bf-cff1-7130-ba33-fa1676598bd1	\N	Drill Down Dashboard	{"body": [{"type": "table", "options": {"tableName": "ohs_incidents"}}], "title": "Drill Down Dashboard", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-filter	\N	Drill Down Dashboard	Drill Down Dashboard	2025-10-20 22:31:33.617358+00	f
019a03bf-cffe-71fc-9a61-05d8b6856a97	\N	Emergency Preparedness	{"body": [{"type": "table", "options": {"tableName": "ohs_emergency_drills"}}, {"type": "table", "options": {"tableName": "ohs_emergency_contacts"}}], "title": "Emergency Preparedness", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-phone	\N	Emergency Preparedness	Emergency Preparedness	2025-10-20 22:31:33.629664+00	f
019a03bf-d180-736b-993d-1aee2fd42b3a	\N	Root Cause Dashboard	{"body": [{"html": "<div id=\\"rootCauseDashboard\\"></div>", "type": "html"}], "title": "Root Cause Dashboard", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-magnifying-glass-chart	\N	Root Cause Dashboard	Root Cause Dashboard	2025-10-20 22:31:34.016136+00	f
019a03bf-d024-7846-874c-61b3208fea76	\N	Incident Heatmap	{"body": [{"type": "graph-map", "options": {"dataPath": "rows", "endpoint": "../api/ohs_dashboard/heatmap"}}, {"type": "graph-chart", "options": {"type": "bar", "dataPath": "chart", "endpoint": "../api/ohs_dashboard/heatmap"}}], "title": "Incident Heatmap", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-map	\N	Incident Heatmap	Incident Heatmap	2025-10-20 22:31:33.66817+00	f
019a03bf-d030-744a-82e1-aac1fd0c6d21	\N	Incident Summary Dashboard	{"body": [{"type": "graph-chart", "options": {"type": "pie", "endpoint": "../api/ohs_dashboard/summary"}}, {"type": "graph-chart", "options": {"type": "line", "endpoint": "../api/ohs_dashboard/monthly_trend"}}], "title": "Incident Summary", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-chart-pie	\N	Incident Summary Dashboard	Incident Summary Dashboard	2025-10-20 22:31:33.680456+00	f
019a03bf-d03d-7a79-971e-586d682fe2f6	\N	Inspection Audit	{"body": [{"type": "table", "options": {"tableName": "ohs_inspection_audits"}}], "title": "Inspection Audit", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-list-check	\N	Inspection Audit	Inspection Audit	2025-10-20 22:31:33.69296+00	f
019a03bf-d04a-7c2c-9e6b-1eacffa5e80a	\N	JSA Training Status	{"body": [{"type": "table", "options": {"tableName": "ohs_jsas"}}], "title": "JSA Training Status", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-user-graduate	\N	JSA Training Status	JSA Training Status	2025-10-20 22:31:33.706372+00	f
019a03bf-d056-7bf9-a215-0b0ff58c6a69	\N	Near Miss Dashboard	{"body": [{"id": "nearMissDash", "html": "<canvas id=\\"nearMissTrend\\"></canvas><table class=\\"near-miss-table\\"></table>", "type": "html"}], "title": "Near Miss Dashboard", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-chart-line	\N	Near Miss Dashboard	Near Miss Dashboard	2025-10-20 22:31:33.718337+00	f
019a03bf-d087-79f4-8b94-a02a90323a75	\N	OHS Incident Types	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "ohs_incident_types", "editFormId": 57, "showGlobalSearch": false}}], "title": "OHS Incident Types", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Incident Type", "formName": "Incident Type"}]}	\N	fa-clipboard-list	\N	OHS Incident Types	OHS Incident Types	2025-10-20 22:31:33.766769+00	f
019a03bf-d093-7cbc-bea2-70126d4f57a5	\N	OHS Inspection Types	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "ohs_inspection_types", "editFormId": 68, "showGlobalSearch": false}}], "title": "OHS Inspection Types", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Inspection Type", "formName": "Inspection Type"}]}	\N	fa-clipboard-list	\N	OHS Inspection Types	OHS Inspection Types	2025-10-20 22:31:33.778868+00	f
019a03bf-d09e-7cfe-8eb6-6b7a6c436252	\N	OHS Inspection Templates	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "ohs_inspection_templates", "editFormId": 74, "showGlobalSearch": false}}], "title": "OHS Inspection Templates", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Template", "formName": "Inspection Template"}]}	\N	fa-clipboard-list	\N	OHS Inspection Templates	OHS Inspection Templates	2025-10-20 22:31:33.790382+00	f
019a03bf-d0aa-7786-b637-99a004120a57	\N	WorkCOM Inspection Types	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "workcom_inspection_types", "editFormId": 104, "showGlobalSearch": false}}], "title": "WorkCOM Inspection Types", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Inspection Type", "formName": "WorkCOM Inspection Type"}]}	\N	fa-clipboard-list	\N	WorkCOM Inspection Types	WorkCOM Inspection Types	2025-10-20 22:31:33.801886+00	f
019a03bf-d0b4-7075-8381-2a54f43e79b6	\N	OHS Incident Wizard	{"body": [{"id": "incidentWizard", "html": "<div id=\\"incidentWizard\\"></div>", "type": "html"}], "title": "OHS Incident Wizard", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-wand-magic-sparkles	\N	OHS Incident Wizard	OHS Incident Wizard	2025-10-20 22:31:33.812686+00	f
019a03bf-d0cd-762c-b31d-a333abec3cf5	\N	OHS Field Incident	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "ohs_incidents", "filterField": "classification", "filterValue": "Field Incident", "editFormLookup": {"field": "classification", "table": "ohs_incident_types", "formColumn": "form_id", "valueColumn": "name"}, "showGlobalSearch": false}}], "title": "OHS Field Incident", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Field Incident", "wizardId": 1}]}	\N	fa-exclamation-triangle	\N	OHS Field Incident	OHS Field Incident	2025-10-20 22:31:33.836542+00	f
019a03bf-d016-7542-b47b-bb5cb8cfea2d	\N	Hazard Types	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "ohs_hazard_types", "editFormId": 56, "showGlobalSearch": false}}], "title": "Hazard Types", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Hazard Type", "formName": "Hazard Type"}]}	\N	fa-layer-group	\N	Hazard Types	Hazard Types	2025-10-20 22:31:34.798346+00	f
019a03bf-d063-7187-a5ef-089beb2488c9	\N	OHS Assignment Rules	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "ohs_assignment_rules", "editFormId": 58}}], "title": "OHS Assignment Rules", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Rule", "formId": 58}]}	\N	fa-route	\N	OHS Assignment Rules	OHS Assignment Rules	2025-10-20 22:31:34.822602+00	f
019a03bf-d070-7ccb-b08d-1570a19bafc5	\N	Inspection Assignment Rules	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "inspection_assignment_rules", "editFormId": 84}}], "title": "Inspection Assignment Rules", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Rule", "formId": 84}]}	\N	fa-route	\N	Inspection Assignment Rules	Inspection Assignment Rules	2025-10-20 22:31:34.834775+00	f
019a03bf-d0e7-73cd-ab92-e6ebc87500fd	\N	My Inspections	{"body": [{"type": "table", "options": {"scope": "user", "tableName": "ohs_inspections", "userField": "inspector_id", "editFormLookup": {"field": "inspection_type_id", "table": "ohs_inspection_types", "formColumn": "form_id", "valueColumn": "id"}}}], "title": "My Inspections", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Inspection", "wizardId": 3}]}	\N	fa-clipboard-check	\N	My Inspections	My Inspections	2025-10-20 22:31:33.862862+00	f
019a03bf-d0f3-7cd8-986c-0fe7e1ab4a95	\N	WorkCOM Inspections	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "workcom_inspections", "editFormLookup": {"field": "inspection_type_id", "table": "workcom_inspection_types", "formColumn": "form_id", "valueColumn": "id"}, "showGlobalSearch": false}}], "title": "WorkCOM Inspections", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Inspection", "wizardId": 5}]}	\N	fa-clipboard-check	\N	WorkCOM Inspections	WorkCOM Inspections	2025-10-20 22:31:33.875381+00	f
019a03bf-d101-73dc-818f-3ac18e01adff	\N	OHS Investigation Dashboard	{"body": [{"type": "table", "options": {"rowClick": "selectRecord", "tableName": "ohs_incidents", "editFormId": 4}}], "title": "Investigation Dashboard", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Incident", "wizardId": 1}]}	\N	fa-clipboard-question	\N	OHS Investigation Dashboard	OHS Investigation Dashboard	2025-10-20 22:31:33.888331+00	f
019a03bf-d10d-7027-8e47-391243fc6b41	\N	WorkCOM Inspection Dashboard	{"body": [{"type": "table", "options": {"tableName": "workcom_inspections", "searchInputTypes": {"status": {"type": "select", "options": ["Pending", "Complete"]}}, "calculatedColumns": {"status": "inspector_id ? 'Complete' : 'Pending'"}}}], "title": "WorkCOM Inspection Dashboard", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-chart-bar	\N	WorkCOM Inspection Dashboard	WorkCOM Inspection Dashboard	2025-10-20 22:31:33.90123+00	f
019a03bf-d11a-780e-ae24-d8c732705b32	\N	Inspector Workload	{"body": [{"type": "table", "options": {"scope": "user", "tableName": "workcom_inspections", "userField": "inspector_id", "calculatedColumns": {"pending_count": "inspector_id ? 0 : 1", "completed_count": "inspector_id ? 1 : 0"}}}], "title": "Inspector Workload", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-tasks	\N	Inspector Workload	Inspector Workload	2025-10-20 22:31:33.914001+00	f
019a03bf-d127-7540-9286-2f1702a339ff	\N	WorkCOM Inspection Kanban	{"body": [{"html": "<div id=\\"workcomKanban\\"></div>", "type": "html"}], "title": "WorkCOM Inspection Kanban", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-table-columns	\N	WorkCOM Inspection Kanban	WorkCOM Inspection Kanban	2025-10-20 22:31:33.92762+00	f
019a03bf-d133-7a87-b8a8-7c5e77d8898d	\N	Investigation Form	{"body": [{"html": "<div id=\\"whyList\\"></div><button id=\\"addWhyBtn\\" type=\\"button\\">Add Why</button><button id=\\"saveInvBtn\\" type=\\"button\\">Save</button>", "type": "html"}], "title": "Investigation Form", "footer": []}	\N	fa-question	\N	Investigation Form	Investigation Form	2025-10-20 22:31:33.939392+00	f
019a03bf-d149-7f53-aa15-e7a6ed2a900a	\N	Safety Documents	{"body": [{"type": "table", "options": {"tableName": "safety_documents"}}], "title": "Safety Documents", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-file-lines	\N	Safety Documents	Safety Documents	2025-10-20 22:31:33.961574+00	f
019a03bf-d155-7ebd-9068-a8214d00dbea	\N	Safety Incidents	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "safety_incidents", "columnLabels": {"document_ids": "Documents"}, "editFormLookup": {"field": "incident_type", "table": "safety_incident_types", "formColumn": "form_id", "valueColumn": "id"}, "showGlobalSearch": false}}], "title": "Safety Incidents", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Incident", "wizardId": 6}]}	\N	fa-helmet-safety	\N	Safety Incidents	Safety Incidents	2025-10-20 22:31:33.972586+00	f
019a03bf-d160-7df9-ba1a-58f8f01cf0a8	\N	Safety Field Incident	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "safety_incidents", "filterField": "incident_type", "filterValue": 6, "editFormLookup": {"field": "incident_type", "table": "safety_incident_types", "formColumn": "form_id", "valueColumn": "id"}, "showGlobalSearch": false}}], "title": "Safety Field Incident", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Field Incident", "wizardId": 6}]}	\N	fa-helmet-safety	\N	Safety Field Incident	Safety Field Incident	2025-10-20 22:31:33.983988+00	f
019a03bf-d16b-7026-8e41-55807e409b33	\N	Ohs Reports	{"body": [{"type": "graph-chart", "options": {"type": "line", "endpoint": "../api/ohs_reports/trendsByDepartment"}}, {"type": "graph-chart", "options": {"type": "bar", "endpoint": "../api/ohs_reports/locationBenchmark"}}], "title": "OHS Reports", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"html": "<button class=\\"btn btn-sm\\" onclick=\\"location.href='../api/ohs_reports/export/excel'\\">Export Excel</button><button class=\\"btn btn-sm ml-2\\" onclick=\\"location.href='../api/ohs_reports/export/pdf'\\">Export PDF</button>", "type": "html"}]}	\N	fa-chart-bar	\N	OHS Reports	OHS Reports	2025-10-20 22:31:33.994908+00	f
019a03bf-d175-71e3-bcde-a4cee6a2ba9d	\N	Risk Matrix Dashboard	{"body": [{"id": "riskMatrixHeatmap", "type": "heatmap", "options": {"endpoint": "../api/ohs_risk_matrices"}}], "title": "Risk Matrix Dashboard", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-table-cells	\N	Risk Matrix Dashboard	Risk Matrix Dashboard	2025-10-20 22:31:34.005504+00	f
019a03bf-d13f-7940-811f-fa0eaedde4ef	\N	OHS JSA	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "ohs_jsas", "editFormId": 6, "showGlobalSearch": false}}], "title": "OHS JSA", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Create JSA", "formName": "Job Safety Analysis"}]}	\N	fa-helmet-safety	\N	OHS JSA	OHS JSA	2025-10-20 22:31:34.810545+00	f
019a03bf-d18a-74dd-965b-8e95b605d324	\N	Fishbone Example	{"body": [{"type": "fishbone-diagram", "options": {"diagramId": 1}}], "title": "Fishbone Example", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	\N	\N	\N	\N	2025-10-20 22:31:34.026734+00	f
019a03bf-d197-7ddc-aae0-650edcf74827	\N	Graph Demo	{"body": [{"type": "graph-d3", "graphId": 1}], "title": "Graph Demo", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	\N	\N	\N	\N	2025-10-20 22:31:34.03925+00	f
019a03bf-d1a3-7dcf-b08e-3d64eba785aa	\N	Fishbone Diagram Manager	{"body": [{"id": "fishboneList", "type": "table", "options": {"addButton": false, "tableName": "fishbone_diagrams", "rowActions": [{"label": "Edit", "onClick": "editFishboneDiagram"}], "showGlobalSearch": false}}], "title": "Fishbone Diagram Manager", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Diagram", "onClick": "addFishboneDiagram"}]}	\N	\N	\N	\N	\N	2025-10-20 22:31:34.051516+00	f
019a03bf-d1b1-74cd-a9b7-91c622699017	\N	Fault Tree Manager	{"body": [{"id": "ftList", "type": "table", "options": {"addButton": false, "tableName": "ohs_fault_trees", "rowActions": [{"label": "Edit", "onClick": "editFaultTreeDiagram"}], "showGlobalSearch": false}}], "title": "Fault Tree Manager", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Diagram", "onClick": "addFaultTreeDiagram"}]}	\N	\N	\N	\N	\N	2025-10-20 22:31:34.063756+00	f
019a03bf-d1be-7560-a795-20a15d26cfd5	\N	Five Whys Manager	{"body": [{"type": "table", "options": {"tableName": "ohs_five_whys", "editFormId": 83, "rowActions": [{"label": "Edit", "onClick": "editFiveWhys"}], "showGlobalSearch": false}}], "title": "Five Whys Manager", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Whys", "onClick": "addFiveWhys"}]}	\N	fa-question	\N	Five Whys Manager	Five Whys Manager	2025-10-20 22:31:34.07757+00	f
019a03bf-d1cb-731c-a279-7390817e67b9	\N	Severity Dashboard	{"body": [{"id": "severityDash", "html": "<canvas id=\\"sevChart\\"></canvas><table class=\\"treat-outcomes\\"></table>", "type": "html"}], "title": "Severity Dashboard", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-notes-medical	\N	Severity Dashboard	Severity Dashboard	2025-10-20 22:31:34.090684+00	f
019a03bf-d1d9-7eea-a1da-d76d5846c295	\N	OHS Actions	{"body": [{"type": "table", "options": {"rowClick": "selectRecord", "tableName": "ohs_actions", "showGlobalSearch": false}}], "title": "OHS Actions", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Action", "formName": "OHS Action"}]}	\N	fa-list-check	\N	OHS Actions	OHS Actions	2025-10-20 22:31:34.10447+00	f
019a03bf-d1e6-7521-be3a-20ff62a06dc6	\N	OHS Regulations	{"body": [{"type": "table", "options": {"rowClick": "selectRecord", "tableName": "ohs_regulations", "showGlobalSearch": false}}], "title": "OHS Regulations", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Regulation", "formName": "OHS Regulation"}]}	\N	fa-book	\N	OHS Regulations	OHS Regulations	2025-10-20 22:31:34.117676+00	f
019a03bf-d1f2-732d-977d-92f6860b125c	\N	OHS Compliance Tasks	{"body": [{"type": "table", "options": {"rowClick": "selectRecord", "tableName": "ohs_compliance_tasks", "showGlobalSearch": false}}], "title": "OHS Compliance Tasks", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Task", "formName": "OHS Compliance Task"}]}	\N	fa-list-check	\N	OHS Compliance Tasks	OHS Compliance Tasks	2025-10-20 22:31:34.13009+00	f
019a03bf-d1fd-7f75-a56b-6bb488038927	\N	Safety Inductions	{"body": [{"type": "table", "options": {"rowClick": "selectRecord", "tableName": "safety_inductions", "editFormId": 10, "showGlobalSearch": false}}], "title": "Safety Inductions", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Induction", "formName": "Safety Induction"}]}	\N	fa-helmet-safety	\N	Safety Inductions	Safety Inductions	2025-10-20 22:31:34.140963+00	f
019a03bf-d208-775f-9e65-dec671a9b3cb	\N	Issues Log	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "ohs_issues", "editFormId": 66, "showGlobalSearch": false}}], "title": "Issues Log", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Issue", "formName": "Issues Log"}]}	\N	fa-bug	\N	Issues Log	Issues Log	2025-10-20 22:31:34.152011+00	f
019a03bf-d214-7746-9840-d6bdde7b6fbc	\N	Employee Licenses	{"body": [{"type": "table", "options": {"tableName": "employee_licenses", "editFormId": 11, "showGlobalSearch": false}}], "title": "Employee Licenses", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add License", "formId": 11}]}	\N	fa-id-card	\N	Employee Licenses	Employee Licenses	2025-10-20 22:31:34.163594+00	f
019a03bf-d21f-7d70-9f48-a8fa4c177b9d	\N	Permits	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "permit_applications", "editFormId": 15, "showGlobalSearch": false, "nestedTableConfig": {"linkField": "permit_application_id", "editFormId": 55, "columnsToShow": ["inspector_id", "scheduled_for", "result", "notes", "hours_logged"], "childTableName": "permit_inspections"}}}], "title": "Permits", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Application", "formId": 15}]}	\N	fa-passport	\N	Permits	Permits	2025-10-20 22:31:34.175123+00	f
019a03bf-d22a-7ab7-ae67-69f17bb8cb0a	\N	Certification Tracking	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "training_certificates", "showGlobalSearch": false}}], "title": "Certification Tracking", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add New", "formName": "Training Certificate"}]}	\N	fa-certificate	\N	Certification Tracking	Certification Tracking	2025-10-20 22:31:34.186227+00	f
019a03bf-d235-7762-9f04-98b6fd275c13	\N	Needs & Expectations	{"body": [{"type": "table", "options": {"rowClick": "selectRecord", "tableName": "ohs_needs_expectations", "showGlobalSearch": false}}], "title": "Needs & Expectations", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Assessment", "formName": "Needs & Expectations Assessment"}]}	\N	fa-hands-helping	\N	Needs & Expectations	Needs & Expectations	2025-10-20 22:31:34.197107+00	f
019a03bf-d240-704e-b9ba-b2b71ce49d62	\N	Incident Alert Rules	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "incident_alert_rules", "editFormId": 98, "showGlobalSearch": false}}], "title": "Incident Alert Rules", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Rule", "formName": "Incident Alert Rule"}]}	\N	fa-bell	\N	Incident Alert Rules	Incident Alert Rules	2025-10-20 22:31:34.208355+00	f
019a03bf-d24c-7f4a-81d9-1fb14582c5cb	\N	Risk Assessment Types	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "risk_assessment_types", "editFormId": 74, "showGlobalSearch": false}}], "title": "Risk Assessment Types", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Type", "formName": "Risk Assessment Type"}]}	\N	fa-layer-group	\N	Risk Assessment Types	Risk Assessment Types	2025-10-20 22:31:34.220004+00	f
019a03bf-d25c-7fb8-99d8-ad66d703a814	\N	Risk Assessments	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "risk_assessments", "editFormLookup": {"field": "risk_assessment_type_id", "table": "risk_assessment_types", "formColumn": "form_id", "valueColumn": "id"}, "showGlobalSearch": false}}], "title": "Risk Assessments", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Assessment", "wizardId": 4}]}	\N	fa-clipboard-list	\N	Risk Assessments	Risk Assessments	2025-10-20 22:31:34.235424+00	f
019a03bf-d269-7a0a-be69-ad1df1b1b356	\N	Risk Categories Manager	{"body": [{"type": "table", "options": {"rowClick": "selectRecord", "addButton": false, "tableName": "risk_categories", "editFormId": 74, "showGlobalSearch": false}}], "title": "Risk Categories Manager", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Category", "formName": "Risk Category"}]}	\N	fa-tags	\N	Risk Categories Manager	Risk Categories Manager	2025-10-20 22:31:34.248997+00	f
019a03bf-d277-798b-9ea0-5d9bceb26ce1	\N	Risk Identification Manager	{"body": [{"type": "table", "options": {"rowClick": "selectRecord", "addButton": false, "tableName": "risk_identifications", "editFormId": 75, "showGlobalSearch": false}}], "title": "Risk Identification Manager", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Risk", "formName": "Risk Identification"}]}	\N	fa-exclamation-triangle	\N	Risk Identification Manager	Risk Identification Manager	2025-10-20 22:31:34.262021+00	f
019a03bf-d285-772d-8008-b2e4ae0b678f	\N	Calendar Categories	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "calendar_categories", "editFormId": 74, "showGlobalSearch": false}}], "title": "Calendar Categories", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Category", "formName": "Calendar Category"}]}	\N	fa-tags	\N	Calendar Categories	Calendar Categories	2025-10-20 22:31:34.276918+00	f
019a03bf-d291-71e4-bba3-6b067a1e3e38	\N	Inspection Templates	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "inspection_templates", "editFormId": 70, "showGlobalSearch": false}}], "title": "Inspection Templates", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Template", "formName": "Inspection Template"}]}	\N	fa-clipboard-list	\N	Inspection Templates	Inspection Templates	2025-10-20 22:31:34.288765+00	f
019a03bf-d29e-784a-85b4-7db77ee2563c	\N	OHS Incident Statuses	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "ohs_incident_statuses", "editFormId": 72, "showGlobalSearch": false}}], "title": "OHS Incident Statuses", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Incident Status", "formName": "Incident Status"}]}	\N	fa-clipboard-check	\N	OHS Incident Statuses	OHS Incident Statuses	2025-10-20 22:31:34.301687+00	f
019a03bf-d2aa-7356-81f3-297b5aba5761	\N	Corrective Action Tracking	{"body": [{"type": "table", "options": {"tableName": "corrective_actions", "columnsToShow": ["incident_id", "name", "description", "steps", "responsible_user_id", "status"], "showGlobalSearch": false}}], "title": "Corrective Action Tracking", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Corrective Action", "formName": "Corrective Action"}]}	\N	fa-list-check	\N	Corrective Action Tracking	Corrective Action Tracking	2025-10-20 22:31:34.313945+00	f
019a03bf-d2b8-735b-b356-f4af0a9f2097	\N	Incidents by classification	{"body": [{"type": "graph-d3", "graphId": 1}], "title": "Incidents by classification", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-chart-line	\N	Incidents by classification	Incidents by classification	2025-10-20 22:31:34.327638+00	f
019a03bf-d2c3-7101-9e8d-838983d9feb9	\N	Incident Trends	{"body": [{"type": "graph-d3", "graphId": 2, "options": {"timeUnits": ["day", "week", "month", "year"]}}], "title": "Incident Trends", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-chart-bar	\N	Incident Trends	Incident Trends	2025-10-20 22:31:34.339723+00	f
019a03bf-d2cf-7801-aeb7-f98c218e43b9	\N	Workplace Registration	{"body": [{"type": "table", "options": {"rowClick": "selectRecord", "tableName": "workplace_registrations", "editFormId": 98, "inlineEdit": true, "rowActions": [{"label": "Detail", "onClick": "openSelectedDetail"}, {"label": "Invoice", "onClick": "openWorkplaceInvoiceForm"}, {"label": "Review", "onClick": "openWorkplaceReview"}]}}], "title": "Workplace Registration", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "New Registration", "formName": "Workplace Registration"}]}	\N	fa-building	\N	Workplace Registration	Workplace Registration	2025-10-20 22:31:34.350708+00	f
019a03bf-d2db-7362-ac27-a56ad49662bb	\N	Inspection Request	{"body": [{"type": "table", "options": {"rowClick": "selectRecord", "tableName": "inspection_requests", "editFormId": 99, "inlineEdit": true, "rowActions": [{"label": "Detail", "onClick": "openSelectedDetail"}]}}], "title": "Inspection Request", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Request", "formName": "Inspection Request"}]}	\N	fa-clipboard-list	\N	Inspection Request	Inspection Request	2025-10-20 22:31:34.362772+00	f
019a03bf-d2e8-7e1f-b2bb-d9a87a5a05a4	\N	WorkCOM Inspection Assignment	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "workplace_inspections", "editFormId": 100, "showGlobalSearch": false}}], "title": "Assign Inspector", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Assignment", "formName": "WorkCOM Inspection Assignment"}]}	\N	fa-user-check	\N	WorkCOM Inspection Assignment	WorkCOM Inspection Assignment	2025-10-20 22:31:34.376124+00	f
019a03bf-d2fe-7afc-99a7-8e4aff387fab	\N	Workplace Notice	{"body": [{"type": "form", "formName": "Workplace Notice"}], "title": "Workplace Notice", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-file-invoice	\N	Workplace Notice	Workplace Notice	2025-10-20 22:31:34.398098+00	f
019a03bf-d30a-72ff-b974-395e05020be8	\N	Safety Incident Types	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "safety_incident_types", "editFormId": 105, "showGlobalSearch": false}}], "title": "Safety Incident Types", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Type", "formName": "Safety Incident Type"}]}	\N	fa-list	\N	Safety Incident Types	Safety Incident Types	2025-10-20 22:31:34.409303+00	f
019a03bf-d315-79df-817e-881ae6379ac7	\N	Workplace Registration	{"body": [{"type": "table", "options": {"rowClick": "selectRecord", "tableName": "workplace_registrations", "editFormId": 106, "inlineEdit": true, "rowActions": [{"label": "Detail", "onClick": "openSelectedDetail"}, {"label": "Invoice", "onClick": "openWorkplaceInvoiceForm"}, {"label": "Review", "onClick": "openWorkplaceReview"}]}}], "title": "Workplace Registration", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "New Registration", "formName": "Workplace Registration"}]}	\N	fa-building	\N	Workplace Registration	Workplace Registration	2025-10-20 22:31:34.420855+00	f
019a03bf-d321-77d7-949a-a35d62a1dc86	\N	Form Submission Review	{"body": [{"id": "formReviewMount", "html": "<div id=\\"formReviewMount\\" data-submission-id=\\"{{submissionId}}\\"></div>", "type": "html"}], "title": "Form Submission Review", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-clipboard-check	\N	Form Submission Review	Form Submission Review	2025-10-20 22:31:34.432837+00	f
019a03bf-d32c-7f7f-b1f8-0e2f8bea7f3d	\N	Certificates	{"body": [{"html": "<div id=\\"certificatePreview\\"></div><div id=\\"certificatesMount\\"></div>", "type": "html"}], "title": "Certificates", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-certificate	\N	Certificates	Certificates	2025-10-20 22:31:34.444624+00	f
0194a8b2-0017-7123-8123-123456789abc	\N	Vendor Management	{"body": [{"html": "<div class=\\"alert alert-info mb-4\\"><span class=\\"font-semibold\\">Tip:</span> Pick a vendor from the dropdown to focus every tab. Use the lifecycle filter to narrow the vendor list before diving into contacts, documents, or performance.</div>", "type": "html"}, {"tabs": [{"label": "Vendors", "elements": [{"html": "<p class=\\"text-sm text-gray-600 mb-3\\">Use the filters above to focus on a lifecycle stage or specific vendor. Row actions open the profile or start editing without leaving this modal.</p>", "type": "html"}, {"type": "table", "options": {"addButton": false, "tableName": "vendors", "editFormId": 110, "rowActions": [{"label": "Edit", "formName": "Vendor"}, {"label": "Open Detail", "onClick": "openVendorDetail"}], "filterField": ["vendor_id", "lifecycle_status"], "columnsToShow": ["vendorname", "businessRegNumber", "lifecycle_status", "avg_rating", "last_reviewed_at"], "showGlobalSearch": true}}]}, {"label": "Contacts", "elements": [{"html": "<p class=\\"text-sm text-gray-600 mb-3\\">Select a vendor to see their contact roster. Mark one primary so reminders and workflows know who to reach out to.</p>", "type": "html"}, {"type": "button", "class": "btn btn-primary btn-sm mb-3", "label": "Add Contact", "formName": "Vendor Contact", "prefillFilter": "vendor_id"}, {"type": "table", "options": {"addButton": false, "tableName": "vendor_contacts", "editFormId": 610, "filterField": "vendor_id", "filterValue": {"vendor_id": "__none__"}, "columnsToShow": ["contact_name", "contact_role", "email", "phone_number", "is_primary"], "showGlobalSearch": false}}]}, {"label": "Addresses", "elements": [{"html": "<p class=\\"text-sm text-gray-600 mb-3\\">Track billing, shipping, and registered addresses so logistics and compliance teams stay aligned.</p>", "type": "html"}, {"type": "button", "class": "btn btn-primary btn-sm mb-3", "label": "Add Address", "formName": "Vendor Address", "prefillFilter": "vendor_id"}, {"type": "table", "options": {"addButton": false, "tableName": "vendor_addresses", "editFormId": 611, "filterField": "vendor_id", "filterValue": {"vendor_id": "__none__"}, "columnsToShow": ["address_type", "line1", "city", "state_region", "country_code", "is_primary"], "showGlobalSearch": false}}]}, {"label": "Capabilities", "elements": [{"html": "<p class=\\"text-sm text-gray-600 mb-3\\">Log competencies, certifications, and experience to drive better RFQ shortlists.</p>", "type": "html"}, {"type": "button", "class": "btn btn-primary btn-sm mb-3", "label": "Add Capability", "formName": "Vendor Capability", "prefillFilter": "vendor_id"}, {"type": "table", "options": {"addButton": false, "tableName": "vendor_capabilities", "editFormId": 612, "filterField": "vendor_id", "filterValue": {"vendor_id": "__none__"}, "columnsToShow": ["capability_category", "experience_years", "competency_score", "capacity_notes"], "showGlobalSearch": false}}]}, {"label": "Documents", "elements": [{"html": "<p class=\\"text-sm text-gray-600 mb-3\\">Keep compliance documents current. Expiring records appear here first so you can chase renewals.</p>", "type": "html"}, {"type": "button", "class": "btn btn-primary btn-sm mb-3", "label": "Add Document", "formName": "Vendor Document", "prefillFilter": "vendor_id"}, {"type": "table", "options": {"addButton": false, "tableName": "vendor_documents", "editFormId": 613, "filterField": "vendor_id", "filterValue": {"vendor_id": "__none__"}, "columnsToShow": ["doc_type", "filetype", "validity"], "showGlobalSearch": false}}]}, {"label": "Certificates", "elements": [{"html": "<p class=\\"text-sm text-gray-600 mb-3\\">Track certification renewals and attach evidence for compliance reviews.</p>", "type": "html"}, {"type": "button", "class": "btn btn-primary btn-sm mb-3", "label": "Add Certificate", "formName": "Vendor Certificate", "prefillFilter": "vendor_id"}, {"type": "table", "options": {"addButton": false, "tableName": "vendor_certificates", "editFormId": 616, "filterField": "vendor_id", "filterValue": {"vendor_id": "__none__"}, "columnsToShow": ["certificate_name", "issued_at", "expiry_date"], "showGlobalSearch": false}}]}, {"label": "Supporting Docs", "elements": [{"html": "<p class=\\"text-sm text-gray-600 mb-3\\">Store questionnaires, insurance, and policy artefacts so onboarding evidence is one click away.</p>", "type": "html"}, {"type": "button", "class": "btn btn-primary btn-sm mb-3", "label": "Add Supporting Doc", "formName": "Vendor Supporting Document", "prefillFilter": "vendor_id"}, {"type": "table", "options": {"addButton": false, "tableName": "vendor_supporting_docs", "editFormId": 614, "filterField": "vendor_id", "filterValue": {"vendor_id": "__none__"}, "columnsToShow": ["type", "filetype", "validity"], "showGlobalSearch": false}}]}, {"label": "Performance", "elements": [{"html": "<p class=\\"text-sm text-gray-600 mb-3\\">Log periodic KPI reviews to monitor delivery trends and trigger requalification when scores fall.</p>", "type": "html"}, {"type": "button", "class": "btn btn-primary btn-sm mb-3", "label": "Log Metric", "formName": "Vendor Performance Metric", "prefillFilter": "vendor_id"}, {"type": "table", "options": {"addButton": false, "tableName": "vendor_performance_metrics", "editFormId": 615, "filterField": "vendor_id", "filterValue": {"vendor_id": "__none__"}, "columnsToShow": ["kpi_name", "rating", "period_start", "period_end", "reviewer_id"], "showGlobalSearch": false}}]}], "type": "tabs"}], "title": "Vendor Management", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Vendor", "formName": "Vendor"}, {"id": "vendorFilter", "type": "filter-select", "options": {"data_column": "vendor_id", "placeholder": "Search vendors...", "source_table": "vendors", "default_label": "All Vendors", "source_column": "vendor_id", "display_column": "vendorname"}}, {"id": "vendorStatusFilter", "type": "filter-select", "options": {"options": [{"label": "Pending", "value": "pending"}, {"label": "Onboarding", "value": "onboarding"}, {"label": "Active", "value": "active"}, {"label": "Suspended", "value": "suspended"}, {"label": "Offboarded", "value": "offboarded"}], "data_column": "lifecycle_status", "default_label": "All Statuses"}}]}	\N	fa-store	\N	Vendor Management	Vendor Management	2025-10-20 22:31:34.456865+00	f
0194a8b2-0020-7123-8123-123456789abc	\N	RFQ Templates	{"body": [{"html": "<div class=\\"alert alert-info mb-4\\"><span class=\\"font-semibold\\">Tip:</span> Define reusable sections once and reuse them across every RFQ. Use the template filter to scope sections, preview content, and manage attachments before issuing a request.</div>", "type": "html"}, {"tabs": [{"label": "Overview", "elements": [{"type": "table", "options": {"addButton": false, "tableName": "rfq_templates", "editFormId": 620, "filterField": "rfq_template_id", "columnsToShow": ["name", "category", "is_default", "valid_from", "valid_until"], "showGlobalSearch": true}}]}, {"label": "Sections", "elements": [{"html": "<p class=\\"text-sm text-gray-600 mb-3\\">Break the RFQ into modular sections (scope, schedule, evaluation) so teams can tailor content per category.</p>", "type": "html"}, {"type": "button", "class": "btn btn-primary btn-sm mb-3", "label": "Add Section", "formName": "RFQ Template Section", "prefillFilter": "rfq_template_id"}, {"type": "table", "options": {"addButton": false, "tableName": "rfq_template_sections", "editFormId": 621, "filterField": "rfq_template_id", "columnsToShow": ["heading", "section_key", "sort_order", "is_required", "include_in_print"], "showGlobalSearch": false}}]}, {"label": "Preview", "elements": [{"html": "<p class=\\"text-sm text-gray-600 mb-3\\">Sections render below in sort order so you can review the narrative before publishing the template.</p>", "type": "html"}, {"type": "table", "options": {"addButton": false, "tableName": "rfq_template_sections", "editFormId": 621, "filterField": "rfq_template_id", "columnsToShow": ["sort_order", "heading", "body_markdown", "body_html"], "showGlobalSearch": false}}]}, {"label": "Attachments", "elements": [{"html": "<p class=\\"text-sm text-gray-600 mb-3\\">Attach boilerplate documents like NDAs or compliance packs that should accompany the RFQ.</p>", "type": "html"}, {"type": "button", "class": "btn btn-primary btn-sm mb-3", "label": "Add Attachment", "formName": "RFQ Template Attachment", "prefillFilter": "rfq_template_id"}, {"type": "table", "options": {"addButton": false, "tableName": "rfq_template_attachments", "editFormId": 622, "filterField": "rfq_template_id", "columnsToShow": ["label", "filetype", "include_when", "sort_order"], "showGlobalSearch": false}}]}], "type": "tabs"}], "title": "RFQ Templates", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Template", "formName": "RFQ Template"}, {"id": "templateFilter", "type": "filter-select", "options": {"data_column": "rfq_template_id", "placeholder": "Select template...", "source_table": "rfq_templates", "default_label": "All Templates", "source_column": "rfq_template_id", "display_column": "name"}}]}	\N	fa-file-contract	\N	RFQ Templates	Manage RFQ templates	2025-10-20 22:31:34.470599+00	f
0194a8b2-0fff-7123-8123-123456789afe	\N	Customer Management	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "customers", "editFormId": 109, "rowActions": [{"label": "Pay", "onClick": "payCustomer"}], "showGlobalSearch": false}}], "title": "Customer Management", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Customer", "formName": "Customer"}]}	\N	fa-users	\N	Customer Management	Customer Management	2025-10-20 22:31:34.48265+00	f
0194a8b2-0018-7123-8123-123456789abc	\N	Departments	{"body": [{"type": "table", "options": {"rowClick": "selectRecord", "addButton": false, "tableName": "departments", "editFormId": 121, "rowActions": [{"label": "Detail", "onClick": "openSelectedDetail"}], "showGlobalSearch": false}}], "title": "Departments", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Department", "formName": "Department"}]}	\N	fa-building	\N	Departments	Manage organizational departments	2025-10-20 22:31:34.494726+00	f
0194a8b2-c3f1-7123-8123-123456789ab1	\N	Products	{"body": [{"tabs": [{"label": "Products", "elements": [{"type": "table", "options": {"columns": [{"field": "name", "label": "Name"}, {"field": "price", "label": "Price"}, {"field": "brand", "label": "Brand"}, {"field": "tax_rates", "label": "Tax Rates", "renderer": "json", "rendererOptions": {"maxInlineItems": 3}}], "addButton": false, "tableName": "products", "editFormId": 111, "rowActions": [{"icon": "fa-tags", "class": "btn-sm btn-info", "label": "Discount", "formId": 150}], "showGlobalSearch": false}}]}, {"label": "Auto Orders", "elements": [{"type": "table", "options": {"addButton": false, "tableName": "auto_orders", "editFormId": 131, "columnsToShow": ["product_name", "minimum_stock_qty", "order_qty"], "showGlobalSearch": false}}]}], "type": "tabs"}], "title": "Products", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Product", "formName": "Product"}, {"type": "button", "label": "Auto Orders", "formName": "Auto Order"}, {"type": "button", "class": "btn-outline btn-info", "label": "Import Products", "onClick": "importProducts"}, {"type": "button", "class": "btn-outline btn-success", "label": "Export Products", "onClick": "exportProducts"}]}	\N	fa-box	\N	Products	Products	2025-10-20 22:31:34.508985+00	f
019a03bf-d3dd-7b5d-9eb3-f4be42ac1308	\N	Employee Profile	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "Employees", "editFormId": 113, "showGlobalSearch": true}}], "title": "Employee Profile", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Employee", "formName": "Employee Form"}]}	\N	\N	\N	\N	\N	2025-10-20 22:31:34.620654+00	f
019a03bf-d00a-7f8c-95a8-27169ff4c426	\N	Hazard Management	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "ohs_hazards", "editFormId": 7, "showGlobalSearch": false}}], "title": "Hazard Management", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Hazard", "formName": "OHS Hazard"}]}	\N	fa-shield-halved	\N	Hazard Management	Hazard Management	2025-10-20 22:31:34.786232+00	f
019a03bf-d37b-7b5a-8cfd-246ee7631d67	\N	Quotations	{"body": [{"id": "quotationsTable", "type": "table", "options": {"rowClick": "selectRecord", "tableName": "quotations", "rowActions": [{"icon": "fa-eye", "class": "btn btn-info btn-xs", "label": "View", "action": "openSelectedDetail", "ariaLabel": "View quotation details"}, {"icon": "fa-paper-plane", "class": "btn btn-primary btn-xs", "label": "Send", "action": "quotations:send", "confirm": "Send this quotation to the customer?", "ariaLabel": "Send quotation to customer", "condition": "status == \\"draft\\""}, {"icon": "fa-file-invoice", "class": "btn btn-success btn-xs", "label": "Convert", "action": "quotations:convert", "confirm": "Convert this quotation to an invoice?", "ariaLabel": "Convert quotation to invoice", "condition": "status == \\"sent\\" || status == \\"accepted\\""}, {"icon": "fa-check", "class": "btn btn-success btn-xs", "label": "Accept", "action": "quotations:accept", "confirm": "Accept this quotation?", "ariaLabel": "Accept quotation", "condition": "status == \\"sent\\""}, {"icon": "fa-times", "class": "btn btn-error btn-xs", "label": "Reject", "action": "quotations:reject", "confirm": "Reject this quotation?", "ariaLabel": "Reject quotation", "condition": "status == \\"sent\\""}, {"icon": "fa-copy", "class": "btn btn-ghost btn-xs", "label": "Duplicate", "action": "quotations:duplicate", "ariaLabel": "Duplicate quotation"}, {"icon": "fa-file-pdf", "class": "btn btn-secondary btn-xs", "label": "PDF", "action": "quotations:pdf", "ariaLabel": "Download quotation PDF"}, {"icon": "fa-trash", "class": "btn btn-error btn-xs btn-outline", "label": "Delete", "action": "records:delete", "confirm": "Are you sure you want to delete this quotation?", "ariaLabel": "Delete quotation", "condition": "status == \\"draft\\" || status == \\"expired\\""}], "columnLabels": {"date": "Date", "status": "Status", "sent_at": "Sent", "expires_at": "Expires", "tax_amount": "Tax", "customer_id": "Customer", "total_amount": "Amount", "quotation_number": "Quote #"}, "columnsToShow": ["quotation_number", "date", "customer_id", "total_amount", "tax_amount", "status", "sent_at", "expires_at"], "primaryKeyField": "quotation_id", "showGlobalSearch": true}}], "title": "Quotations Management", "footer": [{"type": "button", "class": "btn btn-ghost", "label": "Close", "action": "close", "ariaLabel": "Close quotations module"}], "header": [{"icon": "fa-plus", "type": "button", "class": "btn btn-primary", "label": "New Quotation", "action": {"handler": "openQuotationForm"}, "ariaLabel": "Create new quotation"}, {"type": "filter-select", "options": {"label": "Status", "options": [{"label": "All", "value": ""}, {"label": "Draft", "value": "draft"}, {"label": "Sent", "value": "sent"}, {"label": "Accepted", "value": "accepted"}, {"label": "Rejected", "value": "rejected"}, {"label": "Expired", "value": "expired"}, {"label": "Converted", "value": "converted"}], "data_column": "status"}}, {"type": "filter-date-range", "options": {"label": "Date Range", "data_column": "date"}}, {"icon": "fa-sync", "type": "button", "class": "btn btn-ghost", "label": "Refresh", "action": "refresh", "ariaLabel": "Refresh quotations list"}], "modulePath": "quotations", "dataSources": {"quotations": {"table": "quotations", "syncPolicy": "default", "autoRefresh": true, "refreshInterval": 30000}}}	\N	fa-file-alt	\N	Quotations Management	Create, send, and manage quotations. Convert quotations to invoices.	2025-10-20 22:31:34.522547+00	f
019a03bf-d38b-7bc5-85f2-9f5f31faf7bc	\N	Invoices	{"body": [{"id": "invoicesTable", "type": "table", "options": {"rowClick": "selectRecord", "tableName": "invoices", "rowActions": [{"icon": "fa-eye", "class": "btn btn-info btn-xs", "label": "View", "action": "openSelectedDetail", "ariaLabel": "View invoice details"}, {"icon": "fa-upload", "class": "btn btn-primary btn-xs", "label": "Submit to TaxCore", "action": "invoices:submit-taxcore", "confirm": "Submit this invoice to the tax authority?", "ariaLabel": "Submit invoice to tax authority", "condition": "status == \\"draft\\" && taxcore_submission_id == null"}, {"icon": "fa-receipt", "class": "btn btn-success btn-xs", "label": "TaxCore Receipt", "action": "invoices:taxcore-receipt", "ariaLabel": "View TaxCore receipt", "condition": "taxcore_submission_id != null"}, {"icon": "fa-credit-card", "class": "btn btn-success btn-xs", "label": "Record Payment", "action": "payments:initiate", "ariaLabel": "Record payment for invoice", "condition": "status != \\"paid\\" && status != \\"cancelled\\""}, {"icon": "fa-file-pdf", "class": "btn btn-secondary btn-xs", "label": "PDF", "action": "invoices:pdf", "ariaLabel": "Download invoice PDF"}, {"icon": "fa-ban", "class": "btn btn-error btn-xs btn-outline", "label": "Cancel", "action": "records:cancel", "confirm": "Are you sure you want to cancel this invoice?", "ariaLabel": "Cancel invoice", "condition": "status != \\"paid\\" && status != \\"cancelled\\""}], "columnLabels": {"name": "Customer", "amount": "Amount", "status": "Status", "sent_at": "Sent", "amount_paid": "Paid", "is_proforma": "Proforma", "invoice_date": "Date", "invoice_number": "Invoice #", "taxcore_submission_id": "TaxCore ID"}, "columnsToShow": ["invoice_number", "invoice_date", "name", "amount", "amount_paid", "status", "is_proforma", "taxcore_submission_id", "sent_at"], "primaryKeyField": "invoice_id", "showGlobalSearch": true}}], "title": "Invoices Management", "footer": [{"type": "button", "class": "btn btn-ghost", "label": "Close", "action": "close", "ariaLabel": "Close invoices module"}], "header": [{"icon": "fa-plus", "type": "button", "class": "btn btn-primary", "label": "New Invoice", "action": {"handler": "openInvoiceForm"}, "ariaLabel": "Create new invoice"}, {"type": "filter-select", "options": {"label": "Status", "options": [{"label": "All", "value": ""}, {"label": "Draft", "value": "draft"}, {"label": "Pending", "value": "pending"}, {"label": "Submitted", "value": "submitted"}, {"label": "Paid", "value": "paid"}, {"label": "Overdue", "value": "overdue"}, {"label": "Cancelled", "value": "cancelled"}], "data_column": "status"}}, {"type": "filter-select", "options": {"label": "Type", "options": [{"label": "All", "value": ""}, {"label": "Standard", "value": "false"}, {"label": "Proforma", "value": "true"}, {"label": "Advance Payment", "value": "advance"}, {"label": "Refund", "value": "refund"}], "data_column": "is_proforma"}}, {"type": "filter-date-range", "options": {"label": "Date Range", "data_column": "invoice_date"}}, {"icon": "fa-sync", "type": "button", "class": "btn btn-ghost", "label": "Refresh", "action": "refresh", "ariaLabel": "Refresh invoices list"}], "modulePath": "invoices", "dataSources": {"invoices": {"table": "invoices", "syncPolicy": "default", "autoRefresh": true, "refreshInterval": 30000}}}	\N	fa-file-invoice	\N	Invoices Management	Create, submit, and manage invoices. Integrate with TaxCore for tax submissions.	2025-10-20 22:31:34.53915+00	f
0194a8b2-a1b2-7123-8123-123456789abc	\N	Auto Orders	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "auto_orders", "editFormId": 131, "showGlobalSearch": false}}], "title": "Auto Orders", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Auto Order", "formName": "Auto Order"}]}	\N	fa-shopping-cart	\N	Auto Orders	Manage Auto Orders for Products	2025-10-20 22:31:34.552107+00	f
019a03bf-d3a4-7141-9261-cc3894efcdb0	\N	Software Info	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "software_info", "editFormId": 112, "showGlobalSearch": false}}], "title": "Software Info", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Software Info", "formName": "Software Info"}]}	\N	fa-info-circle	\N	Software Info	Software Info	2025-10-20 22:31:34.563571+00	f
019a03bf-d3af-785b-b972-502bc6a91d99	\N	POS Settings	{"body": [{"tabs": [{"label": "Settings", "elements": [{"type": "table", "options": {"addButton": false, "tableName": "pos_settings", "editFormId": 113, "showGlobalSearch": false}}]}, {"label": "Sales Receipts", "elements": [{"type": "table", "options": {"addButton": false, "tableName": "sales_receipts", "columnsToShow": ["invoiceNumber", "type", "transactiontype", "totalAmount", "sdcDateTime", "businessName"], "showGlobalSearch": true}}]}, {"label": "Transactions", "elements": [{"type": "table", "options": {"addButton": false, "tableName": "lineitems_payments", "showGlobalSearch": false}}]}], "type": "tabs"}], "title": "POS Settings", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Edit Settings", "formName": "POS Settings"}, {"icon": "fa-upload", "type": "button", "class": "btn-outline btn-info", "label": "Import Transactions", "onClick": "importPOSTransactions"}, {"icon": "fa-download", "type": "button", "class": "btn-outline btn-success", "label": "Export Transactions", "onClick": "exportPOSTransactions"}]}	\N	fa-cash-register	\N	POS Settings	POS Settings and transaction data management	2025-10-20 22:31:34.574867+00	f
019a03bf-d3ba-7ffc-8af4-c160045ad137	\N	Procurement	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "procurements", "editFormId": 115, "showGlobalSearch": false}}], "title": "Procurement", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Procurement", "formName": "Procurement", "onSubmit": "closeModal"}]}	\N	fa-file-invoice-dollar	\N	Procurement	Procurement Management	2025-10-20 22:31:34.586489+00	f
019a03bf-d3c5-7e06-a5ac-94840106d437	\N	Restaurant Products	{"body": [{"tabs": [{"label": "Ingredients", "elements": [{"type": "table", "options": {"tableName": "ingredients", "editFormId": 116}}]}, {"label": "Products", "elements": [{"type": "table", "options": {"tableName": "products", "editFormId": 114}}]}], "type": "tabs"}], "title": "Restaurant Products", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Ingredient", "formName": "Ingredients"}, {"type": "button", "label": "Add Product", "formName": "Restaurant Product"}]}	\N	fa-utensils	\N	Restaurant Products	Restaurant Products	2025-10-20 22:31:34.596736+00	f
0194a8b2-acd0-7123-8123-123456789acd	\N	Purchase Orders	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "purchase_orders", "editFormId": 130, "showGlobalSearch": false}}], "title": "Purchase Orders", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Purchase Order", "formId": 130}]}	\N	fa-file-invoice-dollar	\N	Purchase Orders	Manage purchase orders	2025-10-20 22:31:34.608466+00	f
6861955c-f882-44db-ab95-89c1a9b8e307	\N	Open Positions	{"body": [{"tabs": [{"label": "Positions", "elements": [{"type": "button", "label": "Add Position", "formId": 117}, {"type": "table", "options": {"tableName": "open_positions", "editFormId": 117, "showGlobalSearch": true}}]}, {"label": "Applications", "elements": [{"type": "button", "label": "Add Application", "formId": 118}, {"type": "table", "options": {"tableName": "applications", "editFormId": 118, "rowActions": [{"label": "ShortList", "onClick": "shortlistApplication"}], "multiselect": true, "showGlobalSearch": true}}]}, {"label": "Interview", "elements": [{"type": "button", "label": "Schedule Interview", "formId": 119}, {"type": "table", "options": {"tableName": "interviews", "editFormId": 119, "showGlobalSearch": true}}]}, {"label": "New Employee", "elements": [{"type": "button", "label": "Add New Employee", "formId": 140}, {"type": "table", "options": {"tableName": "users_profiles", "editFormId": 140, "showGlobalSearch": true}}]}], "type": "tabs"}], "title": "Open Positions", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-briefcase	\N	Open Positions	Manage open job positions	2025-10-20 22:31:34.635597+00	f
019a03bf-d3fb-776c-b0cf-341bdc5ebd7d	\N	Policies	{"body": [{"type": "table", "options": {"tableName": "policies", "editFormId": 1, "rowActions": [{"label": "Edit", "formId": 1}, {"label": "Delete", "action": "delete"}], "syncManager": {}, "showGlobalSearch": true}}, {"type": "form", "formId": 1, "options": {"submitText": "Save Policy"}, "elements": [{"label": "Title", "type_id": 1, "required": true, "field_name": "title", "data_column": "title", "order_index": 1}, {"label": "Content", "type_id": 7, "field_name": "content", "data_column": "content", "order_index": 2}, {"label": "Content Type", "options": ["html", "pdf"], "type_id": 9, "field_name": "content_type", "data_column": "content_type", "order_index": 3, "options_table": null}, {"label": "Policy Type", "type_id": 1, "field_name": "policy_type", "data_column": "policy_type", "order_index": 4}, {"label": "PDF URL", "type_id": 1, "field_name": "pdf_url", "data_column": "pdf_url", "order_index": 5}, {"label": "Language Code", "default": "en", "type_id": 1, "field_name": "language_code", "data_column": "language_code", "order_index": 6}, {"label": "Expiry Date", "type_id": 4, "field_name": "expiry_date", "data_column": "expiry_date", "order_index": 7}, {"label": "Renewal Status", "type_id": 1, "field_name": "renewal_status", "data_column": "renewal_status", "order_index": 8}, {"label": "Visible to Roles", "type_id": 1, "field_name": "visible_to_roles", "data_column": "visible_to_roles", "order_index": 9}, {"label": "Visible to Group", "type_id": 1, "field_name": "visible_to_group", "data_column": "visible_to_group", "order_index": 10}, {"label": "Visible to All", "type_id": 3, "field_name": "visible_to_all", "data_column": "visible_to_all", "order_index": 11}, {"label": "Version", "default": 1, "type_id": 2, "field_name": "version", "data_column": "version", "order_index": 12}]}], "title": "Policies", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}, {"api": {"url": "/api/policies", "method": "POST"}, "type": "button", "label": "Submit"}], "header": [{"html": "<h3 class=\\"text-lg font-bold\\">Policies Management</h3>", "type": "html"}]}	\N	fa-file-text	\N	Policies	Manage company policies	2025-10-20 22:31:34.650556+00	f
0194a8b2-0021-7123-8123-123456789abc	\N	RFQ Template Builder	{"body": [{"id": "rfqTplBuilderRoot", "html": "<div id=\\"rfqTplBuilderRoot\\"></div>", "type": "html"}], "title": "RFQ Template Builder", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"html": "<div class=\\"alert alert-info\\"><span class=\\"font-semibold\\">Drag & Drop:</span> Create and edit RFQ templates by arranging sections and attachments. Use Preview to sanity-check the narrative.</div>", "type": "html"}, {"type": "button", "class": "btn btn-primary btn-sm", "label": "Open Builder", "onClick": "openRfqTemplateBuilder"}]}	\N	fa-diagram-project	\N	RFQ Template Builder	RFQ Template Builder	2025-10-20 22:31:34.664302+00	f
0194a8b2-0030-7123-8123-123456789abc	\N	RFQs	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "rfq_headers", "rowActions": [{"label": "Open", "onClick": "openRfqDetail"}, {"label": "Submit For Approval", "onClick": "submitForApproval"}, {"label": "Publish", "onClick": "publishRfq"}, {"label": "Pause", "onClick": "pauseRfq"}, {"label": "Resume", "onClick": "resumeRfq"}, {"label": "Close", "onClick": "closeRfq"}, {"label": "Remind", "onClick": "remindVendors"}], "columnsToShow": ["rfq_number", "title", "type", "status", "due_at"], "showGlobalSearch": true}}], "title": "RFQs", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "class": "btn btn-primary", "label": "Create From Template", "onClick": "createRfqFromTemplate"}, {"type": "filter-select", "options": {"options": [{"label": "All", "value": ""}, {"label": "Draft", "value": "draft"}, {"label": "Open", "value": "open"}, {"label": "Paused", "value": "paused"}, {"label": "Closed", "value": "closed"}, {"label": "Awarded", "value": "awarded"}], "data_column": "status"}}, {"type": "filter-date-range", "options": {"data_column": "due_at"}}]}	\N	fa-file-contract	\N	RFQs	RFQ list	2025-10-20 22:31:34.678011+00	f
0194a8b2-0031-7123-8123-123456789abc	\N	RFQ Detail	{"body": [{"tabs": [{"label": "Overview", "elements": [{"type": "table", "options": {"addButton": false, "tableName": "rfq_headers", "filterField": "rfq_id", "columnsToShow": ["title", "type", "status", "due_at", "category", "currency", "created_by_name"]}}, {"html": "<div class='divider my-2'>Attachments</div>", "type": "html"}, {"type": "table", "options": {"addButton": false, "tableName": "rfq_attachments", "filterField": "rfq_id", "columnsToShow": ["label", "filetype", "file_url", "include_when"]}}, {"html": "<div class='divider my-2'>Invites &amp; Responses</div>", "type": "html"}, {"type": "table", "options": {"addButton": false, "tableName": "rfq_invites", "filterField": "rfq_id", "columnsToShow": ["vendor_name", "contact_name", "contact_email", "contact_phone", "status", "sent_at", "opened_at", "responded_at"]}}, {"type": "table", "options": {"addButton": false, "tableName": "vendor_quotes", "filterField": "rfq_id", "columnsToShow": ["vendor_id", "status"]}}, {"html": "<div class='divider my-2'>Recent Activity</div>", "type": "html"}, {"type": "table", "options": {"addButton": false, "tableName": "rfq_events", "filterField": "rfq_id", "columnsToShow": ["type", "actor_type", "created_at"]}}, {"html": "<div id='rfq-sections-preview' class='prose max-w-none mt-2'></div>", "type": "html"}]}, {"label": "Items", "elements": [{"type": "button", "class": "btn btn-primary btn-sm", "label": "Add Item", "onClick": "addRfqItem"}, {"type": "table", "options": {"addButton": false, "tableName": "rfq_items", "inlineEdit": true, "filterField": "rfq_id", "columnsToShow": ["description", "quantity", "uom", "delivery_terms", "delivery_location", "is_optional"]}}]}, {"label": "Shortlist", "elements": [{"type": "button", "class": "btn btn-primary btn-sm", "label": "Add Vendor", "onClick": "addInvite"}, {"type": "table", "options": {"addButton": false, "tableName": "rfq_invites", "inlineEdit": true, "filterField": "rfq_id", "columnsToShow": ["vendor_name", "contact_name", "contact_email", "contact_phone", "status", "sent_at", "opened_at", "responded_at"]}}]}, {"label": "Invitations", "elements": [{"type": "button", "class": "btn btn-sm", "label": "Remind Pending", "onClick": "remindVendors"}, {"type": "table", "options": {"addButton": false, "tableName": "rfq_invites", "filterField": "rfq_id", "columnsToShow": ["vendor_name", "contact_name", "contact_email", "contact_phone", "status", "sent_at", "opened_at", "responded_at", "reminder_count"]}}]}, {"label": "Responses", "elements": [{"html": "<div class='flex items-center gap-2 mb-2'><button class='btn btn-sm btn-warning' onclick=\\"openTenderBoxForSelected()\\">Open Tender Box</button><span class='text-xs opacity-70'>(Available after RFQ is closed)</span></div>", "type": "html"}, {"type": "table", "options": {"addButton": false, "tableName": "vendor_quotes", "rowActions": [{"label": "Open Quote", "onClick": "openVendorQuoteDetail"}], "filterField": "rfq_id", "columnsToShow": ["vendor_name", "status"]}}]}, {"label": "Compare", "elements": [{"html": "<div id='rfq-compare-matrix'></div>", "type": "html"}]}, {"label": "Contracts", "elements": [{"type": "table", "options": {"addButton": false, "tableName": "rfq_contracts", "rowActions": [{"label": "Open", "onClick": "openContractDetail"}], "filterField": "rfq_id", "columnLabels": {"created_at": "Created", "total_value": "Total", "vendor_name": "Vendor", "contract_number": "Contract #"}, "columnsToShow": ["contract_number", "vendor_name", "status", "total_value", "currency", "created_at"]}}]}, {"label": "Timeline", "elements": [{"type": "table", "options": {"addButton": false, "tableName": "rfq_events", "filterField": "rfq_id"}}]}, {"label": "Messages", "elements": [{"html": "<div class='flex gap-2 mb-4'><button class='btn btn-sm' onclick=\\"postInternalMessage()\\">New Internal</button><button class='btn btn-sm btn-primary' onclick=\\"postBroadcastMessage()\\">New Broadcast</button></div>", "type": "html"}, {"html": "<div class='tabs tabs-boxed mb-4'><a class='tab tab-active' onclick=\\"filterMessagesByType('all')\\">All</a><a class='tab' onclick=\\"filterMessagesByType('internal')\\">Internal</a><a class='tab' onclick=\\"filterMessagesByType('vendor')\\">Vendor Q&A</a><a class='tab' onclick=\\"filterMessagesByType('broadcast')\\">Broadcast</a></div>", "type": "html"}, {"html": "<div id='rfq-messages-container' class='space-y-4 max-h-96 overflow-y-auto'></div>", "type": "html"}, {"id": "rfqMsgs", "type": "table", "hidden": true, "options": {"addButton": false, "tableName": "rfq_messages", "rowActions": [{"label": "Approve", "onClick": "approvePendingMessage"}, {"label": "Reply", "onClick": "replyToMessage"}], "filterField": "rfq_id", "columnLabels": {"created_at": "Date", "body_markdown": "Messages"}, "columnsToShow": ["vendor_name", "status", "created_at", "body_markdown"]}}]}], "type": "tabs"}], "title": "RFQ Detail", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "class": "btn btn-primary btn-sm", "label": "Generate Contract Draft", "onClick": "generateRfqContract"}, {"type": "button", "class": "btn btn-ghost btn-sm", "label": "Open Latest Contract", "onClick": "openLatestRfqContract"}]}	\N	fa-diagram-project	\N	RFQ Detail	RFQ Detail	2025-10-20 22:31:34.692725+00	f
0194a8b2-0032-7123-8123-123456789abc	\N	Vendor Quote Detail	{"body": [{"tabs": [{"label": "Summary", "elements": [{"type": "detail-view", "tableName": "vendor_quotes", "filterField": "quote_id"}, {"id": "aiQuoteActions", "html": "<div class='flex justify-between items-center my-2'><div class='font-semibold'>AI Analysis</div><div><button class='btn btn-sm btn-primary' onclick='summarizeVendorQuoteWithAI()'>Summarize with AI</button></div></div>", "type": "html"}, {"id": "aiQuoteSummary", "html": "<div id='aiQuoteSummaryBody' class='prose prose-sm max-w-none whitespace-pre-wrap hidden'></div>", "type": "html"}, {"html": "<div class='divider my-2'>Line Items</div>", "type": "html"}, {"type": "table", "options": {"addButton": false, "tableName": "vendor_quote_items", "filterField": "quote_id", "columnsToShow": ["item_description", "is_alternate", "alt_label", "unit_price", "tax", "lead_time_days", "notes"]}}]}, {"label": "Attachments", "elements": [{"html": "<div id='quote-attachments'><div data-role='attachments-list' class='space-y-1'></div></div>", "type": "html"}]}], "type": "tabs"}], "title": "Vendor Quote Detail", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-file-circle-check	\N	Vendor Quote Detail	View-only summary of a vendor quote	2025-10-20 22:31:34.707297+00	f
019a03bf-d0c1-7702-b65b-e37d728f5389	\N	OHS Incidents	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "ohs_incidents", "editFormLookup": {"field": "classification", "table": "ohs_incident_types", "formColumn": "form_id", "valueColumn": "name"}, "showGlobalSearch": false}}], "title": "OHS Incidents", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Incident", "wizardId": 1}]}	\N	fa-exclamation-triangle	\N	OHS Incidents	OHS Incidents	2025-10-20 22:31:34.759544+00	f
019a03bf-d0da-7f75-bfdf-030998017ecc	\N	OHS Inspections	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "ohs_inspections", "editFormLookup": {"field": "inspection_type_id", "table": "ohs_inspection_types", "formColumn": "form_id", "valueColumn": "id"}, "showGlobalSearch": false}}], "title": "OHS Inspections", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Inspection", "wizardId": 3}]}	\N	fa-clipboard-check	\N	OHS Inspections	OHS Inspections	2025-10-20 22:31:34.773479+00	f
0194a8b2-1035-7123-8123-123456789abc	\N	Procurement Contract Detail	{"body": [{"type": "detail-view", "tableName": "rfq_contracts", "filterField": "contract_id", "columnLabels": {"status": "Status", "currency": "Currency", "updatedAt": "Updated", "created_at": "Created", "expiry_date": "Expiry", "total_value": "Total Value", "vendor_name": "Vendor", "effective_date": "Effective", "contract_number": "Contract #"}}, {"id": "aiDraftActions", "html": "<div class='flex justify-between items-center my-2'><div class='font-semibold'>AI Draft</div><div><button class='btn btn-sm btn-primary' onclick='generateContractAiDraft()'>Generate with AI</button> <button class='btn btn-sm btn-ghost' onclick='viewContractAiDraft()'>View Draft</button></div></div>", "type": "html"}, {"html": "<div class='divider my-2'>Summary</div>", "type": "html"}, {"id": "contractSummaryContainer", "html": "<div id='contractSummary' class='grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3'></div>", "type": "html"}, {"html": "<div class='divider my-2'>Line Items</div>", "type": "html"}, {"id": "contractLineItems", "html": "<div class='overflow-x-auto'><table class='table table-zebra w-full text-sm'><thead><tr><th>Description</th><th class='text-right'>Qty</th><th>UoM</th><th class='text-right'>Unit Price</th><th class='text-right'>Line Total</th></tr></thead><tbody id='contractLineItemsBody'><tr class='opacity-70'><td colspan='5'>No line items captured yet.</td></tr></tbody></table></div>", "type": "html"}], "title": "Procurement Contract Detail", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-file-contract	\N	Procurement Contract Detail	View of generated RFQ contract payload	2025-10-20 22:31:34.720839+00	f
019a03bf-d44d-7656-a471-addd48fb4707	\N	Service Types	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "service_types", "editFormId": 31, "showGlobalSearch": false}}], "title": "Service Types", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Service Type", "formName": "Service Type"}]}	\N	fa-wrench	\N	Service Types	Service Types	2025-10-20 22:31:34.732778+00	f
0194a8b2-0001-7123-8123-123456789abc	\N	SystemSettings	{"body": [{"html": "System settings content", "type": "html"}], "title": "System Settings", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-gear	\N	System Settings	System Settings	2025-10-20 22:31:34.745527+00	f
0194a8b2-0002-7123-8123-123456789abc	\N	WorkflowInstances	{"body": [{"html": "Workflow instances content", "type": "html"}], "title": "Workflow Instances", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-clock-rotate-left	\N	Workflow Instances	Workflow Instances	2025-10-20 22:31:34.745527+00	f
0194a8b2-0003-7123-8123-123456789abc	\N	CustomizeDashboard	{"body": [{"html": "Customize dashboard content", "type": "html"}], "title": "Customize Dashboard", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-pen-to-square	\N	Customize Dashboard	Customize Dashboard	2025-10-20 22:31:34.745527+00	f
0194a8b2-0004-7123-8123-123456789abc	\N	FormBuilder	{"body": [{"html": "Form builder content", "type": "html"}], "title": "Form Builder", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-wpforms	\N	Form Builder	Form Builder	2025-10-20 22:31:34.745527+00	f
0194a8b2-0005-7123-8123-123456789abc	\N	DetailViewBuilder	{"body": [{"html": "Detail view builder content", "type": "html"}], "title": "Detail View Builder", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-address-card	\N	Detail View Builder	Detail View Builder	2025-10-20 22:31:34.745527+00	f
0194a8b2-0006-7123-8123-123456789abc	\N	PageCustomizer	{"body": [{"html": "Page customizer content", "type": "html"}], "title": "Page Customizer", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-object-group	\N	Page Customizer	Page Customizer	2025-10-20 22:31:34.745527+00	f
0194a8b2-0007-7123-8123-123456789abc	\N	PageConfigBuilder	{"body": [{"html": "Page config builder content", "type": "html"}], "title": "Page Config Builder", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-layer-group	\N	Page Config Builder	Page Config Builder	2025-10-20 22:31:34.745527+00	f
0194a8b2-0008-7123-8123-123456789abc	\N	ModuleBuilder	{"body": [{"html": "Module builder content", "type": "html"}], "title": "Module Builder", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-puzzle-piece	\N	Module Builder	Module Builder	2025-10-20 22:31:34.745527+00	f
0194a8b2-0009-7123-8123-123456789abc	\N	TableBuilder	{"body": [{"html": "Table builder content", "type": "html"}], "title": "Table Builder", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-table	\N	Table Builder	Table Builder	2025-10-20 22:31:34.745527+00	f
0194a8b2-0010-7123-8123-123456789abc	\N	TableManager	{"body": [{"html": "Table manager content", "type": "html"}], "title": "Table Manager", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-table-list	\N	Table Manager	Table Manager	2025-10-20 22:31:34.745527+00	f
0194a8b2-0011-7123-8123-123456789abc	\N	ModuleManager	{"body": [{"html": "Module manager content", "type": "html"}], "title": "Module Manager", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-cubes	\N	Module Manager	Module Manager	2025-10-20 22:31:34.745527+00	f
0194a8b2-0012-7123-8123-123456789abc	\N	PermissionsManager	{"body": [{"html": "Permissions manager content", "type": "html"}], "title": "Permissions Manager", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-user-shield	\N	Permissions Manager	Permissions Manager	2025-10-20 22:31:34.745527+00	f
0194a8b2-0013-7123-8123-123456789abc	\N	CreateUser	{"body": [{"html": "Create user content", "type": "html"}], "title": "Create User", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-user-plus	\N	Create User	Create User	2025-10-20 22:31:34.745527+00	f
0194a8b2-0014-7123-8123-123456789abc	\N	Payments	{"body": [{"html": "Payments content", "type": "html"}], "title": "Payments", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-money-check-dollar	\N	Payments	Payments	2025-10-20 22:31:34.745527+00	f
0194a8b2-0015-7123-8123-123456789abc	\N	POS	{"body": [{"html": "POS content", "type": "html"}], "title": "POS", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "legacy": true}	\N	fa-cash-register	\N	POS	POS	2025-10-20 22:31:34.745527+00	f
0194a8b2-0016-7123-8123-123456789abc	\N	InventoryManagement	{"body": [{"html": "Inventory management content", "type": "html"}], "title": "Inventory Management", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "legacy": true}	\N	fa-boxes	\N	Inventory Management	Inventory Management	2025-10-20 22:31:34.745527+00	f
019a03bf-d07b-7b43-88f8-af0a9fe341cf	\N	WorkCOM Inspection Assignment Rules	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "inspection_assignment_rules", "editFormId": 101, "columnsToShow": ["location", "type", "severity", "inspector_id", "district", "assign", "email", "phone", "send_email", "send_sms", "send_push"]}}], "title": "WorkCOM Inspection Assignment Rules", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "Add Rule", "formId": 101}]}	\N	fa-route	\N	WorkCOM Inspection Assignment Rules	WorkCOM Inspection Assignment Rules	2025-10-20 22:31:34.846888+00	f
019a03bf-d2f3-7612-8aa9-804bb5af8066	\N	WorkCOM OHS Inspections	{"body": [{"type": "table", "options": {"addButton": false, "tableName": "workplace_inspections", "rowActions": [{"label": "Assign Inspector", "formName": "WorkCOM Inspection Assignment"}], "showGlobalSearch": false}}], "title": "WorkCOM OHS Inspections", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}], "header": [{"type": "button", "label": "New Inspection", "wizardId": 5}]}	\N	fa-clipboard-check	\N	WorkCOM OHS Inspections	WorkCOM OHS Inspections	2025-10-20 22:31:34.858731+00	f
019a03bf-d4db-724f-874c-d746c89b0106	\N	Quotation Settings	{"body": [{"id": "quotationSettingsForm", "type": "form", "options": {"loadRecord": {"table": "quotation_settings", "orgScope": true}}, "formName": "Quotation Settings"}], "title": "Quotation Settings", "footer": [{"type": "button", "class": "btn btn-ghost", "label": "Cancel", "action": "close"}, {"icon": "fa-save", "type": "button", "class": "btn btn-primary", "label": "Save", "action": "save", "ariaLabel": "Save quotation settings"}], "modulePath": "settings/quotations"}	\N	fa-cog	\N	Quotation Settings	Configure quotation defaults, numbering, and templates	2025-10-20 22:31:34.874734+00	f
019a03bf-d4e7-7d3e-8c65-f401c15f91ad	\N	Invoice Settings	{"body": [{"tabs": [{"icon": "fa-cog", "label": "General", "elements": [{"id": "invoiceSettingsForm", "type": "form", "options": {"loadRecord": {"table": "invoice_settings", "orgScope": true}}, "formName": "Invoice Settings"}]}, {"icon": "fa-file-invoice-dollar", "label": "TaxCore", "elements": [{"icon": "fa-info-circle", "text": "Configure TaxCore integration for automated tax submissions.", "type": "alert", "class": "alert alert-info"}, {"id": "taxcoreSettingsForm", "type": "form", "options": {"loadRecord": {"table": "taxcore_settings", "orgScope": true}}, "formName": "TaxCore Settings"}, {"type": "divider"}, {"icon": "fa-plug", "type": "button", "class": "btn btn-secondary", "label": "Test TaxCore Connection", "action": "taxcore:test-connection", "ariaLabel": "Test TaxCore API connection"}]}, {"icon": "fa-file-alt", "label": "Templates", "elements": [{"icon": "fa-plus", "type": "button", "class": "btn btn-primary mb-4", "label": "Add Template", "action": {"handler": "openTemplateForm"}}, {"id": "invoiceTemplates", "type": "table", "options": {"addButton": false, "tableName": "invoice_templates", "rowActions": [{"icon": "fa-edit", "label": "Edit", "action": {"handler": "openTemplateForm"}}, {"icon": "fa-eye", "label": "Preview", "action": "templates:preview"}, {"icon": "fa-check", "label": "Set Default", "action": "templates:set-default", "condition": "is_default != true"}, {"icon": "fa-trash", "class": "btn btn-error btn-xs", "label": "Delete", "action": "records:delete", "confirm": "Delete this template?", "condition": "is_default != true"}], "showGlobalSearch": false}}]}], "type": "tabs"}], "title": "Invoice Settings", "footer": [{"type": "button", "class": "btn btn-ghost", "label": "Close", "action": "close"}, {"icon": "fa-save", "type": "button", "class": "btn btn-primary", "label": "Save All", "action": "save", "confirm": "Save all settings?", "ariaLabel": "Save all invoice settings"}], "modulePath": "settings/invoices"}	\N	fa-cog	\N	Invoice Settings	Configure invoice defaults, TaxCore integration, and templates	2025-10-20 22:31:34.886902+00	f
019a03bf-d4f4-76c0-9c9f-bf9c6d598602	\N	Payment Methods	{"body": [{"id": "paymentMethodsTable", "type": "table", "options": {"tableName": "payment_methods", "rowActions": [{"icon": "fa-edit", "class": "btn btn-info btn-xs", "label": "Edit", "action": {"handler": "openPaymentMethodForm"}}, {"icon": "fa-check", "class": "btn btn-success btn-xs", "label": "Activate", "action": "payment-methods:activate", "condition": "is_active == false"}, {"icon": "fa-ban", "class": "btn btn-warning btn-xs", "label": "Deactivate", "action": "payment-methods:deactivate", "confirm": "Deactivate this payment method?", "condition": "is_active == true"}, {"icon": "fa-trash", "class": "btn btn-error btn-xs", "label": "Delete", "action": "records:delete", "confirm": "Delete this payment method?"}], "columnLabels": {"name": "Name", "type": "Type", "is_active": "Active", "display_order": "Order"}, "columnsToShow": ["name", "type", "is_active", "display_order"], "showGlobalSearch": false}}], "title": "Payment Methods", "footer": [{"type": "button", "class": "btn btn-ghost", "label": "Close", "action": "close"}], "header": [{"icon": "fa-plus", "type": "button", "class": "btn btn-primary", "label": "Add Payment Method", "action": {"handler": "openPaymentMethodForm"}, "ariaLabel": "Add new payment method"}], "modulePath": "settings/payment-methods"}	\N	fa-credit-card	\N	Payment Methods	Manage available payment methods for invoices and quotations	2025-10-20 22:31:34.900132+00	f
019a03bf-d500-7b64-8078-72b16e382c9d	\N	My Quotations	{"list": {"title": "My Quotations", "columns": [{"field": "quotation_number", "label": "Number", "sortable": true}, {"type": "date", "field": "date", "label": "Date", "sortable": true}, {"type": "date", "field": "expires_at", "label": "Valid Until", "sortable": true}, {"type": "currency", "field": "total_amount", "label": "Amount", "sortable": true}, {"type": "badge", "field": "status", "label": "Status", "sortable": true}], "rowActions": [{"icon": "fa-eye", "label": "View", "action": "openModal", "modalId": "quotation-detail"}, {"icon": "fa-check", "class": "btn-success btn-sm", "label": "Accept", "action": "quotations:accept", "confirm": "Accept this quotation?", "condition": "status == \\"sent\\""}, {"icon": "fa-times", "class": "btn-error btn-sm", "label": "Reject", "action": "quotations:reject", "condition": "status == \\"sent\\""}, {"icon": "fa-file-pdf", "class": "btn-ghost btn-sm", "label": "Download PDF", "action": "quotations:pdf"}], "defaultSort": {"field": "date", "direction": "desc"}}, "type": "list-detail", "table": "quotations", "detail": {"size": "large", "title": "Quotation Details", "modalId": "quotation-detail", "readonly": true, "sections": [{"title": "Quotation Information", "fields": [{"name": "quotation_number", "type": "text", "label": "Quotation #", "readonly": true}, {"name": "date", "type": "date", "label": "Date", "readonly": true}, {"name": "expires_at", "type": "date", "label": "Valid Until", "readonly": true}, {"name": "status", "type": "text", "label": "Status", "readonly": true}, {"name": "note", "type": "textarea", "label": "Notes", "readonly": true}]}, {"title": "Amount", "fields": [{"name": "total_amount", "type": "currency", "label": "Total Amount", "readonly": true}]}]}, "dataFilter": "client_id IN (SELECT client_id FROM clients WHERE user_id = {current_user_id})", "primaryKey": "quotation_id"}	\N	fa-file-invoice	\N	\N	View and manage your quotations	2025-10-20 22:31:34.912497+00	f
019a03bf-d50d-77fe-aead-30eff0939d70	\N	My Invoices	{"list": {"title": "My Invoices", "columns": [{"field": "invoice_number", "label": "Number", "sortable": true}, {"type": "date", "field": "date", "label": "Date", "sortable": true}, {"type": "date", "field": "due_date", "label": "Due Date", "sortable": true}, {"type": "currency", "field": "amount", "label": "Amount", "sortable": true}, {"type": "currency", "field": "amount_paid", "label": "Paid", "sortable": true}, {"type": "badge", "field": "status", "label": "Status", "sortable": true}], "rowActions": [{"icon": "fa-eye", "label": "View", "action": "openModal", "modalId": "invoice-detail"}, {"icon": "fa-credit-card", "class": "btn-primary btn-sm", "label": "Pay Now", "action": "payments:initiate", "condition": "amount_paid < amount"}, {"icon": "fa-file-pdf", "class": "btn-ghost btn-sm", "label": "Download PDF", "action": "invoices:pdf"}], "defaultSort": {"field": "date", "direction": "desc"}}, "type": "list-detail", "table": "invoices", "detail": {"size": "large", "title": "Invoice Details", "modalId": "invoice-detail", "readonly": true, "sections": [{"title": "Invoice Information", "fields": [{"name": "invoice_number", "type": "text", "label": "Invoice #", "readonly": true}, {"name": "date", "type": "date", "label": "Date", "readonly": true}, {"name": "due_date", "type": "date", "label": "Due Date", "readonly": true}, {"name": "status", "type": "text", "label": "Status", "readonly": true}]}, {"title": "Payment Details", "fields": [{"name": "amount", "type": "currency", "label": "Total Amount", "readonly": true}, {"name": "amount_paid", "type": "currency", "label": "Amount Paid", "readonly": true}]}]}, "dataFilter": "client_id IN (SELECT client_id FROM clients WHERE user_id = {current_user_id})", "primaryKey": "invoice_id"}	\N	fa-file-invoice-dollar	\N	\N	View and pay your invoices	2025-10-20 22:31:34.924963+00	f
019a03bf-d518-78e2-b19b-ee5990f5a00a	\N	My Account	{"type": "form", "table": "clients", "actions": {"edit": [{"class": "btn-primary", "label": "Save", "action": "save"}, {"label": "Cancel", "action": "cancel"}]}, "sections": [{"title": "Contact Information", "fields": [{"name": "name", "type": "text", "label": "Name", "required": true}, {"name": "email", "type": "email", "label": "Email", "required": true}, {"name": "phone", "type": "tel", "label": "Phone"}, {"name": "address", "rows": 3, "type": "textarea", "label": "Address"}, {"name": "city", "type": "text", "label": "City"}, {"name": "country", "type": "text", "label": "Country"}]}], "dataFilter": "user_id = {current_user_id}", "primaryKey": "client_id"}	\N	fa-user-circle	\N	\N	View and update your account information	2025-10-20 22:31:34.93662+00	f
019a03bf-d523-704b-9f4c-c0178c62470e	\N	Messages	{"list": {"columns": [{"field": "subject", "label": "Subject"}, {"field": "context", "label": "Context"}, {"field": "status", "label": "Status"}, {"type": "datetime", "field": "created_at", "label": "Created"}], "rowActions": [{"label": "View", "action": "messages:view"}, {"label": "Reply", "action": "messages:reply"}, {"label": "Close", "action": "messages:close", "condition": "status == \\"open\\""}]}, "type": "list", "table": "message_threads"}	\N	fa-comments	\N	\N	Manage message threads across all contexts	2025-10-20 22:31:34.947617+00	f
019a03bf-d626-72d8-bd5f-355e0ed3fd33	\N	TaxCoreSubmissions	{"type": "list", "columns": [{"key": "submission_id", "type": "uuid", "label": "Submission ID", "copyable": true, "sortable": true}, {"key": "status", "type": "badge", "label": "Status", "badges": {"failed": {"icon": "fa-times-circle", "class": "badge-error"}, "pending": {"icon": "fa-clock", "class": "badge-warning"}, "success": {"icon": "fa-check-circle", "class": "badge-success"}, "retrying": {"icon": "fa-sync-alt", "class": "badge-info"}}, "sortable": true}, {"key": "submission_type", "type": "text", "label": "Type", "sortable": true}, {"key": "source_id", "type": "uuid", "label": "Source ID", "copyable": true}, {"key": "taxcore_invoice_number", "type": "text", "label": "TaxCore Invoice #", "copyable": true, "sortable": true}, {"key": "total_amount", "type": "currency", "label": "Amount", "sortable": true}, {"key": "attempts", "type": "number", "label": "Attempts", "sortable": true}, {"key": "created_at", "type": "datetime", "label": "Created", "sortable": true, "defaultSort": "desc"}], "filters": [{"key": "status", "type": "select", "label": "Status", "options": [{"label": "Success", "value": "success"}, {"label": "Failed", "value": "failed"}, {"label": "Pending", "value": "pending"}, {"label": "Retrying", "value": "retrying"}]}, {"key": "submission_type", "type": "select", "label": "Type", "options": [{"label": "Invoice", "value": "invoice"}, {"label": "Sales Receipt", "value": "sales_receipt"}]}, {"key": "date_from", "type": "date", "label": "From Date"}, {"key": "date_to", "type": "date", "label": "To Date"}], "pageSize": 50, "dataSource": "/api/taxcore/submission-history/{org_id}", "exportable": true, "pagination": true, "rowActions": [{"icon": "fa-eye", "label": "View Details", "action": "taxcore:view", "openModal": true}, {"icon": "fa-redo", "label": "Retry Submission", "action": "taxcore:retry", "confirm": "Retry this submission?", "condition": "status == \\"failed\\" || status == \\"retrying\\""}, {"icon": "fa-file-pdf", "label": "View PDF", "action": "taxcore:pdf", "target": "_blank", "condition": "status == \\"success\\""}, {"icon": "fa-link", "label": "Copy TaxCore URL", "action": "taxcore:copy-url", "condition": "status == \\"success\\""}], "bulkActions": [{"icon": "fa-redo", "label": "Retry Selected", "action": "taxcore:bulk-retry", "confirm": "Retry {count} selected submission(s)?"}, {"icon": "fa-file-csv", "label": "Export to CSV", "action": "export:csv"}], "refreshInterval": 30000}	\N	fa-file-invoice	\N	\N	TaxCore submission history and monitoring	2025-10-20 22:31:35.205422+00	f
019a03bf-d634-74ba-bea8-a2c0335db261	\N	TaxCoreDashboard	{"type": "dashboard", "layout": "grid", "widgets": [{"id": "stats_overview", "col": 1, "row": 1, "type": "stats", "stats": [{"key": "total", "icon": "fa-file-invoice", "color": "primary", "label": "Total Submissions"}, {"key": "successful", "icon": "fa-check-circle", "color": "success", "label": "Successful"}, {"key": "failed", "icon": "fa-times-circle", "color": "error", "label": "Failed"}, {"key": "pending", "icon": "fa-clock", "color": "warning", "label": "Pending"}], "title": "Submission Overview", "width": 4, "height": 1, "dataSource": "/api/taxcore/stats/{org_id}"}, {"id": "success_rate", "col": 1, "max": 100, "min": 0, "row": 2, "type": "gauge", "unit": "%", "title": "Success Rate", "width": 2, "height": 1, "ranges": [{"max": 70, "min": 0, "color": "error", "label": "Critical"}, {"max": 90, "min": 70, "color": "warning", "label": "Warning"}, {"max": 100, "min": 90, "color": "success", "label": "Healthy"}], "valueKey": "success_rate", "dataSource": "/api/taxcore/stats/{org_id}"}, {"id": "total_amount", "col": 3, "row": 2, "type": "metric", "title": "Total Amount Submitted", "trend": true, "width": 2, "format": "currency", "height": 1, "trendKey": "amount_trend", "valueKey": "total_amount", "dataSource": "/api/taxcore/stats/{org_id}"}, {"id": "recent_submissions", "col": 1, "row": 3, "type": "list", "limit": 10, "title": "Recent Submissions", "width": 4, "height": 2, "actions": [{"link": "/taxcore/submissions", "label": "View All"}], "columns": [{"key": "status", "type": "badge", "label": "Status"}, {"key": "submission_type", "label": "Type"}, {"key": "taxcore_invoice_number", "label": "Invoice #"}, {"key": "total_amount", "type": "currency", "label": "Amount"}, {"key": "created_at", "type": "datetime", "label": "Time"}], "dataSource": "/api/taxcore/submission-history/{org_id}"}], "refreshInterval": 30000}	\N	fa-chart-line	\N	\N	TaxCore real-time monitoring dashboard	2025-10-20 22:31:35.219504+00	f
019a03bf-d640-7ada-8d0b-056670d5b3f0	\N	TaxCoreConfiguration	{"type": "form", "method": "POST", "actions": [{"icon": "fa-plug", "type": "button", "class": "btn-secondary", "label": "Test Connection", "action": "taxcore:test-connection"}, {"icon": "fa-save", "type": "submit", "class": "btn-primary", "label": "Save Configuration"}], "sections": [{"title": "API Configuration", "fields": [{"help": "TaxCore API endpoint URL", "name": "api_base_url", "type": "url", "label": "API Base URL", "required": true, "placeholder": "https://api.taxcore.gov"}, {"help": "9-digit Tax Identification Number", "name": "org_tin", "type": "text", "label": "Organization TIN", "pattern": "^[0-9]{9}$", "required": true, "placeholder": "123456789"}, {"name": "api_version", "type": "select", "label": "API Version", "default": "v2", "options": [{"label": "Version 1.0", "value": "v1"}, {"label": "Version 2.0 (Recommended)", "value": "v2"}], "required": true}]}, {"title": "Certificate Configuration", "fields": [{"help": "Upload your TaxCore digital certificate", "name": "certificate_file", "type": "file", "label": "Certificate File (.p12)", "accept": ".p12,.pfx", "required": true}, {"help": "Password for the certificate file", "name": "certificate_password", "type": "password", "label": "Certificate Password", "required": true}, {"help": "Automatically detected from certificate", "name": "certificate_expiry", "type": "date", "label": "Certificate Expiry Date", "readonly": true}]}, {"title": "Submission Settings", "fields": [{"help": "Automatically submit invoices when finalized", "name": "auto_submit_invoices", "type": "checkbox", "label": "Auto-submit Invoices", "default": true}, {"help": "Automatically submit POS receipts", "name": "auto_submit_receipts", "type": "checkbox", "label": "Auto-submit Sales Receipts", "default": true}, {"max": 10, "min": 1, "help": "Maximum number of retry attempts for failed submissions", "name": "retry_max_attempts", "type": "number", "label": "Max Retry Attempts", "default": 3, "required": true}, {"max": 3600, "min": 60, "help": "Initial delay before retrying", "name": "retry_base_delay", "type": "number", "label": "Base Retry Delay (seconds)", "default": 300, "required": true}]}, {"title": "Environment", "fields": [{"help": "Use sandbox environment for testing", "name": "is_sandbox", "type": "checkbox", "label": "Sandbox Mode", "default": false}, {"help": "Enable or disable TaxCore integration", "name": "is_active", "type": "checkbox", "label": "TaxCore Integration Active", "default": true}]}], "dataSource": "/api/taxcore/config/{org_id}", "validation": {"showErrors": "onSubmit", "scrollToError": true}, "submitEndpoint": "/api/taxcore/config/{org_id}"}	\N	fa-cog	\N	\N	TaxCore API configuration and settings	2025-10-20 22:31:35.232123+00	f
019a03bf-d64c-70c5-b7c3-d0101f2a24a2	\N	TaxCoreFailedAlert	{"type": "alert", "sound": {"enabled": true, "playWhen": "count > previous_count", "soundFile": "/sounds/alert.mp3"}, "actions": [{"icon": "fa-eye", "link": "/taxcore/submissions?status=failed", "label": "View Failed Submissions"}, {"icon": "fa-redo", "label": "Retry All Failed", "action": "taxcore:retry-all-failed", "confirm": "Retry all failed submissions?"}], "severity": "error", "showWhen": "count > 0", "template": "{count} TaxCore submission(s) failed and require attention", "dataSource": "/api/taxcore/failed-count/{org_id}", "persistent": true, "dismissible": true, "refreshInterval": 10000}	\N	fa-exclamation-triangle	\N	\N	Alert for failed TaxCore submissions	2025-10-20 22:31:35.243867+00	f
db4f066b-2e36-4c15-babf-41e5b90d2e46	\N	AgingReportModule	{"type": "list", "title": "Aging Report", "charts": [{"type": "pie", "xKey": "aging_bucket", "yKey": "total_outstanding", "title": "Aging Distribution", "colors": {"90+": "#991b1b", "0-30": "#f59e0b", "30-60": "#f59e0b", "60-90": "#ef4444", "current": "#10b981"}, "height": "300px", "dataSource": "summary.buckets"}, {"type": "bar", "xKey": "customer_name", "yKey": "total_outstanding", "color": "#ef4444", "title": "Top 10 Overdue Customers", "height": "400px", "dataSource": "/api/finance/aging-by-customer/{org_id}?limit=10&sort_by=total_outstanding&sort_order=DESC"}], "export": {"enabled": true, "formats": ["csv", "pdf"], "filename": "aging_report"}, "columns": [{"key": "invoice_number", "link": "/invoices/view/{invoice_id}", "label": "Invoice #", "width": "120px", "sortable": true}, {"key": "customer_name", "link": "/customers/view/{customer_id}", "label": "Customer", "width": "200px", "sortable": true}, {"key": "invoice_date", "type": "date", "label": "Invoice Date", "width": "120px", "sortable": true}, {"key": "due_date", "type": "date", "label": "Due Date", "width": "120px", "sortable": true}, {"key": "total_amount", "type": "currency", "align": "right", "label": "Total", "width": "120px", "sortable": true}, {"key": "paid_amount", "type": "currency", "align": "right", "label": "Paid", "width": "120px", "sortable": true}, {"key": "outstanding_amount", "type": "currency", "align": "right", "label": "Outstanding", "width": "130px", "sortable": true, "highlight": true}, {"key": "days_overdue", "type": "number", "align": "center", "label": "Days Overdue", "width": "120px", "sortable": true}, {"key": "aging_bucket", "type": "badge", "align": "center", "label": "Aging", "width": "100px", "badges": {"90+": {"class": "badge-error", "label": "90+ Days"}, "0-30": {"class": "badge-warning", "label": "0-30 Days"}, "30-60": {"class": "badge-warning", "label": "30-60 Days"}, "60-90": {"class": "badge-error", "label": "60-90 Days"}, "current": {"class": "badge-success", "label": "Current"}}}, {"key": "payment_status", "type": "badge", "align": "center", "label": "Status", "width": "100px", "badges": {"paid": {"class": "badge-success", "label": "Paid"}, "current": {"class": "badge-success", "label": "Current"}, "overdue": {"class": "badge-error", "label": "Overdue"}, "partial": {"class": "badge-warning", "label": "Partial"}}}], "filters": [{"key": "aging_bucket", "type": "select", "label": "Aging Bucket", "default": null, "options": [{"label": "Current", "value": "current"}, {"label": "0-30 Days", "value": "0-30"}, {"label": "30-60 Days", "value": "30-60"}, {"label": "60-90 Days", "value": "60-90"}, {"label": "90+ Days", "value": "90+"}]}, {"key": "payment_status", "type": "select", "label": "Payment Status", "default": null, "options": [{"label": "Current", "value": "current"}, {"label": "Overdue", "value": "overdue"}, {"label": "Partially Paid", "value": "partial"}, {"label": "Paid", "value": "paid"}]}, {"key": "customer_id", "type": "select", "label": "Customer", "default": null, "labelKey": "name", "valueKey": "customer_id", "dataSource": "/api/customers/list/{org_id}", "searchable": true}, {"key": "from_date", "type": "date", "label": "From Date", "default": null}, {"key": "to_date", "type": "date", "label": "To Date", "default": null}], "summary": {"widgets": [{"key": "total_outstanding", "icon": "fa-dollar-sign", "type": "stat", "color": "primary", "title": "Total Outstanding", "format": "currency"}, {"key": "current_amount", "icon": "fa-check-circle", "type": "stat", "color": "success", "title": "Current", "format": "currency"}, {"key": "overdue_0_30", "icon": "fa-clock", "type": "stat", "color": "warning", "title": "0-30 Days", "format": "currency"}, {"key": "overdue_30_60", "icon": "fa-exclamation-triangle", "type": "stat", "color": "warning", "title": "30-60 Days", "format": "currency"}, {"key": "overdue_60_90", "icon": "fa-exclamation-circle", "type": "stat", "color": "error", "title": "60-90 Days", "format": "currency"}, {"key": "overdue_90_plus", "icon": "fa-ban", "type": "stat", "color": "error", "title": "90+ Days", "format": "currency"}], "dataSource": "/api/finance/aging-summary/{org_id}"}, "dataSource": "/api/finance/aging-report/{org_id}", "pagination": {"enabled": true, "pageSize": 50, "pageSizes": [25, 50, 100, 200]}, "rowActions": [{"icon": "fa-eye", "label": "View Invoice", "action": "invoice:view", "primary": true}, {"icon": "fa-dollar-sign", "label": "Record Payment", "action": "payment:record", "confirm": false, "condition": "payment_status != \\"paid\\""}, {"icon": "fa-envelope", "label": "Send Reminder", "action": "reminder:send", "confirm": "Send payment reminder to customer?", "condition": "payment_status == \\"overdue\\""}, {"icon": "fa-user", "label": "View Customer", "action": "customer:view"}], "bulkActions": [{"icon": "fa-file-csv", "label": "Export CSV", "action": "export:csv", "method": "POST", "params": {"format": "csv"}, "endpoint": "/api/finance/aging-report/export"}, {"icon": "fa-file-pdf", "label": "Export PDF", "action": "export:pdf", "method": "POST", "params": {"format": "pdf"}, "endpoint": "/api/finance/aging-report/export"}, {"icon": "fa-paper-plane", "label": "Email Report", "action": "email:report", "inputFields": [{"key": "recipients", "type": "text", "label": "Email Recipients", "required": true, "placeholder": "email1@example.com, email2@example.com"}], "requiresInput": true}, {"icon": "fa-bell", "label": "Send Reminders", "action": "reminder:sendBulk", "confirm": "Send payment reminders to selected customers?", "condition": "aging_bucket != \\"current\\""}], "defaultSort": {"key": "days_overdue", "order": "DESC"}, "permissions": {"view": ["admin", "accountant", "finance_manager"], "email": ["admin", "finance_manager"], "export": ["admin", "accountant", "finance_manager"]}, "refreshInterval": 60000}	\N	fa-chart-bar	\N	\N	Accounts receivable aging analysis with bucket classification	2025-10-20 22:31:37.459273+00	f
0194a8b2-cccc-7123-8123-123456789acb	\N	UserAccessManager	\N	\N	\N	\N	\N	User and group access management module	2025-10-20 22:31:38.291698+00	f
0194a8b2-7124-7123-8123-123456789abc	\N	Time Clock Aggregates	\N	\N	\N	\N	\N	Time clock aggregates module	2025-10-20 22:31:38.291698+00	f
01940882-1001-7123-8123-123456789001	\N	Procurement Pulse Board	{"body": [{"html": "<div data-controller=\\"ProcurementPulseBoard\\" class=\\"space-y-6\\">\\n  <div class=\\"flex flex-wrap items-center justify-between gap-3\\">\\n    <div class=\\"flex flex-wrap gap-3\\">\\n      <label class=\\"form-control w-40\\">\\n        <span class=\\"label-text text-sm\\">Range</span>\\n        <select class=\\"select select-bordered select-sm\\" data-filter=\\"range\\">\\n          <option value=\\"30\\">Last 30 days</option>\\n          <option value=\\"60\\">Last 60 days</option>\\n          <option value=\\"90\\" selected>Last 90 days</option>\\n        </select>\\n      </label>\\n      <label class=\\"form-control w-40\\">\\n        <span class=\\"label-text text-sm\\">Status</span>\\n        <select class=\\"select select-bordered select-sm\\" data-filter=\\"status\\">\\n          <option value=\\"\\">All statuses</option>\\n          <option value=\\"pending\\">Pending</option>\\n          <option value=\\"approved\\">Approved</option>\\n          <option value=\\"ordered\\">Ordered</option>\\n          <option value=\\"completed\\">Completed</option>\\n        </select>\\n      </label>\\n    </div>\\n    <button class=\\"btn btn-sm btn-primary\\" onclick=\\"refreshProcurementPulseBoard()\\">Refresh</button>\\n  </div>\\n  <div class=\\"hidden text-sm text-error\\" data-role=\\"error-container\\"></div>\\n  <div class=\\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-4\\" data-role=\\"metric-cards\\"></div>\\n  <div class=\\"card bg-base-100 shadow-md shadow-slate-400/50\\">\\n    <div class=\\"card-body\\">\\n      <div class=\\"flex justify-between items-center\\">\\n        <h3 class=\\"card-title\\">Stage Pipeline</h3>\\n        <span class=\\"text-xs opacity-70\\" data-role=\\"funnel-range\\"></span>\\n      </div>\\n      <div class=\\"h-56\\">\\n        <canvas data-role=\\"funnel-chart\\"></canvas>\\n      </div>\\n    </div>\\n  </div>\\n  <div class=\\"grid grid-cols-1 lg:grid-cols-2 gap-6\\">\\n    <div class=\\"card bg-base-100 shadow-md shadow-slate-400/50\\">\\n      <div class=\\"card-body\\">\\n        <div class=\\"flex justify-between items-center\\">\\n          <h3 class=\\"card-title\\">Stage SLA Heatmap</h3>\\n          <span class=\\"text-xs opacity-70\\" data-role=\\"heatmap-range\\"></span>\\n        </div>\\n        <div class=\\"overflow-x-auto\\">\\n          <table class=\\"table table-sm\\" data-role=\\"heatmap-table\\">\\n            <thead></thead>\\n            <tbody></tbody>\\n          </table>\\n        </div>\\n      </div>\\n    </div>\\n    <div class=\\"card bg-base-100 shadow-md shadow-slate-400/50\\">\\n      <div class=\\"card-body\\">\\n        <div class=\\"flex justify-between items-center\\">\\n          <h3 class=\\"card-title\\">Cycle Timeline</h3>\\n          <span class=\\"text-xs opacity-70\\" data-role=\\"timeline-range\\"></span>\\n        </div>\\n        <div class=\\"h-64\\">\\n          <canvas data-role=\\"timeline-chart\\"></canvas>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n</div>", "type": "html"}], "title": "Procurement Pulse Board", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-chart-line	\N	Procurement Pulse Board	Procurement Pulse Board	2025-10-20 22:31:38.304243+00	f
01940882-1002-7123-8123-123456789002	\N	Supplier Risk Radar	{"body": [{"html": "<div data-controller=\\"SupplierRiskRadar\\" class=\\"space-y-6\\">\\n  <div class=\\"flex flex-wrap items-center justify-between gap-3\\">\\n    <label class=\\"form-control w-40\\">\\n      <span class=\\"label-text text-sm\\">Range</span>\\n      <select class=\\"select select-bordered select-sm\\" data-filter=\\"range\\">\\n        <option value=\\"30\\">Last 30 days</option>\\n        <option value=\\"60\\">Last 60 days</option>\\n        <option value=\\"90\\" selected>Last 90 days</option>\\n      </select>\\n    </label>\\n    <button class=\\"btn btn-sm btn-primary\\" onclick=\\"refreshSupplierRiskRadar()\\">Refresh</button>\\n  </div>\\n  <div class=\\"hidden text-sm text-error\\" data-role=\\"error-container\\"></div>\\n  <div class=\\"grid grid-cols-1 lg:grid-cols-3 gap-6\\">\\n    <div class=\\"card bg-base-100 shadow-md shadow-slate-400/50\\">\\n      <div class=\\"card-body space-y-2\\" data-role=\\"risk-summary\\"></div>\\n    </div>\\n    <div class=\\"card bg-base-100 shadow-md shadow-slate-400/50 lg:col-span-2\\">\\n      <div class=\\"card-body\\">\\n        <h3 class=\\"card-title\\">Risk Profile</h3>\\n        <div class=\\"h-72\\">\\n          <canvas data-role=\\"risk-radar\\"></canvas>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <div class=\\"grid grid-cols-1 lg:grid-cols-2 gap-6\\">\\n    <div class=\\"card bg-base-100 shadow-md shadow-slate-400/50\\">\\n      <div class=\\"card-body\\">\\n        <h3 class=\\"card-title\\">Spend Exposure by Region</h3>\\n        <div class=\\"h-64\\">\\n          <canvas data-role=\\"risk-exposure\\"></canvas>\\n        </div>\\n      </div>\\n    </div>\\n    <div class=\\"card bg-base-100 shadow-md shadow-slate-400/50\\">\\n      <div class=\\"card-body space-y-3\\" data-role=\\"risk-alerts\\"></div>\\n    </div>\\n  </div>\\n</div>", "type": "html"}], "title": "Supplier Risk Radar", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-shield-halved	\N	Supplier Risk Radar	Supplier Risk Radar	2025-10-20 22:31:38.304243+00	f
01940882-1003-7123-8123-123456789003	\N	Cost Optimization Lab	{"body": [{"html": "<div data-controller=\\"CostOptimizationLab\\" class=\\"space-y-6\\">\\n  <div class=\\"flex flex-wrap items-center justify-between gap-3\\">\\n    <div class=\\"flex flex-wrap gap-3\\">\\n      <label class=\\"form-control w-32\\">\\n        <span class=\\"label-text text-sm\\">Range</span>\\n        <select class=\\"select select-bordered select-sm\\" data-filter=\\"range\\">\\n          <option value=\\"30\\">Last 30 days</option>\\n          <option value=\\"60\\">Last 60 days</option>\\n          <option value=\\"90\\" selected>Last 90 days</option>\\n        </select>\\n      </label>\\n      <label class=\\"form-control w-36\\">\\n        <span class=\\"label-text text-sm\\">Volume lever</span>\\n        <input class=\\"input input-bordered input-sm\\" type=\\"number\\" step=\\"0.01\\" min=\\"0\\" data-filter=\\"volumeFactor\\" value=\\"0.08\\" />\\n      </label>\\n      <label class=\\"form-control w-36\\">\\n        <span class=\\"label-text text-sm\\">Mix shift</span>\\n        <input class=\\"input input-bordered input-sm\\" type=\\"number\\" step=\\"0.01\\" min=\\"0\\" data-filter=\\"mixShift\\" value=\\"0.12\\" />\\n      </label>\\n      <label class=\\"form-control w-36\\">\\n        <span class=\\"label-text text-sm\\">Payment term</span>\\n        <input class=\\"input input-bordered input-sm\\" type=\\"number\\" step=\\"0.01\\" min=\\"0\\" data-filter=\\"paymentTerm\\" value=\\"0.015\\" />\\n      </label>\\n    </div>\\n    <button class=\\"btn btn-sm btn-primary\\" onclick=\\"refreshCostOptimizationLab()\\">Recalculate</button>\\n  </div>\\n  <div class=\\"hidden text-sm text-error\\" data-role=\\"error-container\\"></div>\\n  <div class=\\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-4\\" data-role=\\"metric-cards\\"></div>\\n  <div class=\\"card bg-base-100 shadow-md shadow-slate-400/50\\">\\n    <div class=\\"card-body\\">\\n      <h3 class=\\"card-title\\">Value Realisation Waterfall</h3>\\n      <div class=\\"h-72\\">\\n        <canvas data-role=\\"waterfall-chart\\"></canvas>\\n      </div>\\n    </div>\\n  </div>\\n  <div class=\\"grid grid-cols-1 lg:grid-cols-2 gap-6\\">\\n    <div class=\\"card bg-base-100 shadow-md shadow-slate-400/50\\">\\n      <div class=\\"card-body space-y-3\\" data-role=\\"scenario-panel\\"></div>\\n    </div>\\n    <div class=\\"card bg-base-100 shadow-md shadow-slate-400/50\\">\\n      <div class=\\"card-body\\">\\n        <h3 class=\\"card-title\\">Variance by Category</h3>\\n        <div class=\\"overflow-x-auto\\">\\n          <table class=\\"table table-sm\\" data-role=\\"variance-table\\">\\n            <thead>\\n              <tr><th>Category</th><th>Budget</th><th>Actual</th><th>Variance</th><th>%</th></tr>\\n            </thead>\\n            <tbody></tbody>\\n          </table>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n</div>", "type": "html"}], "title": "Cost Optimization Lab", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-flask	\N	Cost Optimization Lab	Cost Optimization Lab	2025-10-20 22:31:38.304243+00	f
01940882-1004-7123-8123-123456789004	\N	Spend Intelligence Observatory	{"body": [{"html": "<div data-controller=\\"SpendIntelligenceObservatory\\" class=\\"space-y-6\\">\\n  <div class=\\"flex flex-wrap items-center justify-between gap-3\\">\\n    <label class=\\"form-control w-40\\">\\n      <span class=\\"label-text text-sm\\">Range</span>\\n      <select class=\\"select select-bordered select-sm\\" data-filter=\\"range\\">\\n        <option value=\\"30\\">Last 30 days</option>\\n        <option value=\\"60\\">Last 60 days</option>\\n        <option value=\\"90\\" selected>Last 90 days</option>\\n      </select>\\n    </label>\\n    <button class=\\"btn btn-sm btn-primary\\" onclick=\\"refreshSpendIntelligenceObservatory()\\">Refresh</button>\\n  </div>\\n  <div class=\\"hidden text-sm text-error\\" data-role=\\"error-container\\"></div>\\n  <div class=\\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-4\\" data-role=\\"metric-cards\\"></div>\\n  <div class=\\"grid grid-cols-1 lg:grid-cols-2 gap-6\\">\\n    <div class=\\"card bg-base-100 shadow-md shadow-slate-400/50\\">\\n      <div class=\\"card-body\\">\\n        <h3 class=\\"card-title\\">Spend Breakdown</h3>\\n        <div class=\\"h-64\\">\\n          <canvas data-role=\\"breakdown-chart\\"></canvas>\\n        </div>\\n      </div>\\n    </div>\\n    <div class=\\"card bg-base-100 shadow-md shadow-slate-400/50\\">\\n      <div class=\\"card-body\\">\\n        <h3 class=\\"card-title\\">Spend & Volume Trend</h3>\\n        <div class=\\"h-64\\">\\n          <canvas data-role=\\"trend-chart\\"></canvas>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <div class=\\"card bg-base-100 shadow-md shadow-slate-400/50\\">\\n    <div class=\\"card-body space-y-3\\">\\n      <h3 class=\\"card-title\\">Upcoming Sourcing Events</h3>\\n      <div data-role=\\"pipeline-list\\" class=\\"grid grid-cols-1 gap-3\\"></div>\\n    </div>\\n  </div>\\n</div>", "type": "html"}], "title": "Spend Intelligence Observatory", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-chart-pie	\N	Spend Intelligence Observatory	Spend Intelligence Observatory	2025-10-20 22:31:38.304243+00	f
01940882-1005-7123-8123-123456789005	\N	Procurement KPI Cockpit	{"body": [{"html": "<div data-controller=\\"ProcurementKpiCockpit\\" class=\\"space-y-6\\">\\n  <div class=\\"flex flex-wrap items-center justify-between gap-3\\">\\n    <label class=\\"form-control w-40\\">\\n      <span class=\\"label-text text-sm\\">Range</span>\\n      <select class=\\"select select-bordered select-sm\\" data-filter=\\"range\\">\\n        <option value=\\"30\\">Last 30 days</option>\\n        <option value=\\"60\\">Last 60 days</option>\\n        <option value=\\"90\\" selected>Last 90 days</option>\\n      </select>\\n    </label>\\n    <button class=\\"btn btn-sm btn-primary\\" onclick=\\"refreshProcurementKpiCockpit()\\">Refresh</button>\\n  </div>\\n  <div class=\\"hidden text-sm text-error\\" data-role=\\"error-container\\"></div>\\n  <div data-role=\\"kpi-grid\\" class=\\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4\\"></div>\\n  <div class=\\"card bg-base-100 shadow-md shadow-slate-400/50\\">\\n    <div class=\\"card-body space-y-3\\" data-role=\\"kpi-insights\\"></div>\\n  </div>\\n</div>", "type": "html"}], "title": "Procurement KPI Cockpit", "footer": [{"type": "button", "label": "Close", "onClick": "closeModal"}]}	\N	fa-gauge	\N	Procurement KPI Cockpit	Procurement KPI Cockpit	2025-10-20 22:31:38.304243+00	f
\.


--
