{
        "dataSource": {
            "endpoint": "/api/payment-reminders/list",
            "method": "GET",
            "params": {
                "limit": 50,
                "offset": 0
            }
        },
        "refreshInterval": 30000,
        "columns": [
            {
                "key": "reminder_id",
                "label": "Reminder ID",
                "type": "text",
                "width": "120px",
                "sortable": true,
                "formatter": "truncate",
                "formatterOptions": {
                    "length": 8
                }
            },
            {
                "key": "invoice_number",
                "label": "Invoice",
                "type": "link",
                "width": "120px",
                "sortable": true,
                "linkTemplate": "/invoices/{{invoice_id}}"
            },
            {
                "key": "customer_name",
                "label": "Customer",
                "type": "text",
                "width": "200px",
                "sortable": true
            },
            {
                "key": "amount_due",
                "label": "Amount Due",
                "type": "currency",
                "width": "120px",
                "sortable": true,
                "align": "right"
            },
            {
                "key": "reminder_stage",
                "label": "Stage",
                "type": "badge",
                "width": "140px",
                "sortable": true,
                "badgeConfig": {
                    "7_days_before": {"color": "success", "label": "7 Days Before"},
                    "due_date": {"color": "warning", "label": "Due Date"},
                    "3_days_after": {"color": "error", "label": "3 Days Overdue"},
                    "7_days_after": {"color": "error", "label": "7 Days Overdue"},
                    "30_days_after": {"color": "error", "label": "30+ Days Overdue"}
                }
            },
            {
                "key": "delivery_method",
                "label": "Method",
                "type": "badge",
                "width": "100px",
                "sortable": true,
                "badgeConfig": {
                    "email": {"color": "info", "icon": "fa-envelope"},
                    "sms": {"color": "primary", "icon": "fa-mobile"},
                    "portal": {"color": "secondary", "icon": "fa-desktop"}
                }
            },
            {
                "key": "delivery_status",
                "label": "Status",
                "type": "badge",
                "width": "120px",
                "sortable": true,
                "badgeConfig": {
                    "pending": {"color": "warning", "label": "Pending"},
                    "sent": {"color": "success", "label": "Sent"},
                    "delivered": {"color": "success", "label": "Delivered"},
                    "opened": {"color": "info", "label": "Opened"},
                    "clicked": {"color": "primary", "label": "Clicked"},
                    "failed": {"color": "error", "label": "Failed"},
                    "bounced": {"color": "error", "label": "Bounced"}
                }
            },
            {
                "key": "sent_at",
                "label": "Sent At",
                "type": "datetime",
                "width": "160px",
                "sortable": true
            },
            {
                "key": "opened_at",
                "label": "Opened",
                "type": "datetime",
                "width": "160px",
                "sortable": true
            },
            {
                "key": "attempts",
                "label": "Attempts",
                "type": "number",
                "width": "80px",
                "sortable": true,
                "align": "center"
            }
        ],
        "filters": [
            {
                "key": "reminder_stage",
                "label": "Reminder Stage",
                "type": "select",
                "options": [
                    {"value": "7_days_before", "label": "7 Days Before"},
                    {"value": "due_date", "label": "Due Date"},
                    {"value": "3_days_after", "label": "3 Days Overdue"},
                    {"value": "7_days_after", "label": "7 Days Overdue"},
                    {"value": "30_days_after", "label": "30+ Days Overdue"}
                ],
                "multiple": true
            },
            {
                "key": "delivery_status",
                "label": "Delivery Status",
                "type": "select",
                "options": [
                    {"value": "pending", "label": "Pending"},
                    {"value": "sent", "label": "Sent"},
                    {"value": "delivered", "label": "Delivered"},
                    {"value": "opened", "label": "Opened"},
                    {"value": "clicked", "label": "Clicked"},
                    {"value": "failed", "label": "Failed"},
                    {"value": "bounced", "label": "Bounced"}
                ],
                "multiple": true
            },
            {
                "key": "delivery_method",
                "label": "Delivery Method",
                "type": "select",
                "options": [
                    {"value": "email", "label": "Email"},
                    {"value": "sms", "label": "SMS"},
                    {"value": "portal", "label": "Portal Notification"}
                ],
                "multiple": true
            },
            {
                "key": "customer_id",
                "label": "Customer",
                "type": "select",
                "dataSource": "/api/customers/list-simple",
                "valueKey": "customer_id",
                "labelKey": "customer_name"
            },
            {
                "key": "date_from",
                "label": "From Date",
                "type": "date"
            },
            {
                "key": "date_to",
                "label": "To Date",
                "type": "date"
            }
        ],
        "rowActions": [
            {
                "label": "View Details",
                "icon": "fa-eye",
                "action": "payment-reminders:view-details",
                "color": "info"
            },
            {
                "label": "View Invoice",
                "icon": "fa-file-invoice",
                "action": "invoices:view",
                "color": "primary"
            },
            {
                "label": "Resend",
                "icon": "fa-paper-plane",
                "action": "payment-reminders:resend",
                "condition": "delivery_status == \"failed\" || delivery_status == \"bounced\"",
                "color": "warning",
                "confirm": "Resend this payment reminder?"
            },
            {
                "label": "Mark as Sent",
                "icon": "fa-check",
                "action": "payment-reminders:mark-sent",
                "condition": "delivery_status == \"pending\"",
                "color": "success",
                "confirm": "Mark this reminder as sent?"
            }
        ],
        "bulkActions": [
            {
                "label": "Resend Selected",
                "icon": "fa-paper-plane",
                "action": "payment-reminders:resend-bulk",
                "color": "warning",
                "confirm": "Resend {{count}} payment reminders?"
            },
            {
                "label": "Export CSV",
                "icon": "fa-download",
                "action": "payment-reminders:export-csv",
                "color": "secondary"
            },
            {
                "label": "Export PDF",
                "icon": "fa-file-pdf",
                "action": "payment-reminders:export-pdf",
                "color": "error"
            }
        ],
        "summaryWidgets": [
            {
                "type": "stat",
                "label": "Total Reminders",
                "key": "total_reminders",
                "icon": "fa-bell",
                "color": "primary",
                "format": "number"
            },
            {
                "type": "stat",
                "label": "Sent Today",
                "key": "sent_today",
                "icon": "fa-paper-plane",
                "color": "info",
                "format": "number"
            },
            {
                "type": "stat",
                "label": "Opened",
                "key": "opened_count",
                "icon": "fa-envelope-open",
                "color": "success",
                "format": "number"
            },
            {
                "type": "stat",
                "label": "Open Rate",
                "key": "open_rate",
                "icon": "fa-percentage",
                "color": "success",
                "format": "percentage"
            },
            {
                "type": "stat",
                "label": "Failed",
                "key": "failed_count",
                "icon": "fa-exclamation-triangle",
                "color": "error",
                "format": "number"
            },
            {
                "type": "stat",
                "label": "Pending",
                "key": "pending_count",
                "icon": "fa-clock",
                "color": "warning",
                "format": "number"
            }
        ],
        "charts": [
            {
                "type": "pie",
                "title": "Reminders by Stage",
                "dataKey": "reminders_by_stage",
                "labelKey": "stage_label",
                "valueKey": "count",
                "height": 300
            },
            {
                "type": "bar",
                "title": "Delivery Status",
                "dataKey": "reminders_by_status",
                "labelKey": "status_label",
                "valueKey": "count",
                "height": 300
            },
            {
                "type": "line",
                "title": "Reminders Sent (Last 7 Days)",
                "dataKey": "reminders_trend",
                "xKey": "date",
                "yKey": "count",
                "height": 300
            }
        ],
        "defaultSort": {
            "column": "sent_at",
            "direction": "desc"
        },
        "pagination": {
            "enabled": true,
            "pageSize": 50,
            "pageSizeOptions": [25, 50, 100, 200]
        },
        "search": {
            "enabled": true,
            "placeholder": "Search by invoice, customer, or reminder ID...",
            "fields": ["invoice_number", "customer_name", "reminder_id"]
        }
    }