[
    {
      "actionKey": "CANCEL",
      "label": "Cancel",
      "type": "secondary",
      "icon": "close",
      "apiKey": null,
      "permissions": [
        {
          "roles": ["ROLE_ADMIN", "ROLE_FINANCE_MANAGER", "ROLE_RELATIONAL_MANAGER", "ROLE_VIEWER"],
          "condition": null
        }
      ],
      "onSuccess": [
        {
          "roles": ["ROLE_VIEWER"],
          "showToast": false,
          "showSuccessScreen": false
        }
      ]
    },
    {
      "actionKey": "MAKE_PAYMENT",
      "label": "submit",
      "type": "primary",
      "icon": null,
      "apiKey": "MAKE_PAYMENT",
      "permissions": [
        {
          "roles": ["ROLE_VIEWER"],
          "condition": {
            "operator": "AND",
            "conditions": [
              {"field": "requiresPayment", "operator": "EQUALS", "value": true},
              {"field": "approvalStatus", "operator": "EQUALS", "value": "approved"},
              {"field": "isFreeSeat", "operator": "EQUALS", "value": false},
              {
                "operator": "OR",
                "conditions": [
                  {"field": "paymentStatus", "operator": "IN", "value": ["failed", "online_pending"]},
                  {"field": "paymentStatus", "operator": "IS_NULL"},
                  {
                    "operator": "AND",
                    "conditions": [
                      {"field": "paymentStatus", "operator": "EQUALS", "value": "offline_pending"},
                      {"field": "editRequestStatus", "operator": "EQUALS", "value": "requested"}
                    ]
                  }
                ]
              }
            ]
          }
        }
      ],
      "onSuccess": [
        {
          "roles": ["ROLE_VIEWER"],
          "showToast": false,
          "showSuccessScreen": true,
          "successScreenConfig": {
            "scenarios": [
              {
                "scenarioKey": "PAYMENT_EDIT_REQUESTED",
                "condition": {
                  "operator": "AND",
                  "conditions": [
                    {"field": "paymentMode", "operator": "EQUALS", "value": "offline"},
                    {"field": "paymentStatus", "operator": "EQUALS", "value": "offline_pending"},
                    {"field": "editRequestStatus", "operator": "EQUALS", "value": "requested"}
                  ]
                },
                "screen": {
                  "title": "{{programName}}",
                  "message": "Dear infinitheist {{seekerName}},\n\nYour payment edit request for {{programName}} has been submitted.\n\nYou can edit your payment details once the request is approved.",
                  "variant": "info",
                  "showLogo": true,
                  "showBanner": true,
                  "logoUrl": "{{logoUrl}}",
                  "bannerImageUrl": "{{bannerImageUrl}}",
                  "actions": [
                    {
                      "actionKey": "HOME",
                      "label": "home",
                      "type": "secondary",
                      "apiKey": null
                    },
                    {
                      "actionKey": "UPDATE_PAYMENT",
                      "label": "update payment",
                      "type": "secondary",
                      "apiKey": "UPDATE_PAYMENT_DETAILS"
                    }
                  ]
                }
              },
              {
                "scenarioKey": "ONLINE_PAYMENT_SUCCESS",
                "condition": {
                  "operator": "AND",
                  "conditions": [
                    {"field": "paymentMode", "operator": "EQUALS", "value": "online"},
                    {"field": "paymentStatus", "operator": "IN", "value": ["online_completed", "completed"]}
                  ]
                },
                "screen": {
                  "title": "{{programName}}",
                  "message": "Dear infinitheist {{seekerName}},\n\nPayment towards {{programName}} - {{programStartDate}} to {{programEndDate}} is successful.",
                  "variant": "success",
                  "showLogo": true,
                  "showBanner": true,
                  "logoUrl": "{{logoUrl}}",
                  "bannerImageUrl": "{{bannerImageUrl}}",
                  "actions": [
                    {
                      "actionKey": "DOWNLOAD_INVOICE",
                      "label": "download invoice",
                      "type": "secondary",
                      "apiKey": "DOWNLOAD_INVOICE"
                    },
                    {
                      "actionKey": "HOME",
                      "label": "home",
                      "type": "secondary",
                      "apiKey": null
                    }
                  ]
                }
              },
              {
                "scenarioKey": "OFFLINE_PAYMENT_CHEQUE",
                "condition": {
                  "operator": "AND",
                  "conditions": [
                    {"field": "paymentMode", "operator": "EQUALS", "value": "offline"},
                    {"field": "offlinePaymentMethod", "operator": "EQUALS", "value": "Cheque"}
                  ]
                },
                "screen": {
                  "title": "{{programName}}",
                  "message": "Dear infinitheist {{seekerName}},\n\nWe acknowledge your payment towards {{programName}} - {{programStartDate}} to {{programEndDate}}.\n\nNote: Cheques are subject to realization.",
                  "variant": "info",
                  "showLogo": true,
                  "showBanner": true,
                  "logoUrl": "{{logoUrl}}",
                  "bannerImageUrl": "{{bannerImageUrl}}",
                  "actions": [
                    {
                      "actionKey": "HOME",
                      "label": "home",
                      "type": "secondary",
                      "apiKey": null
                    }
                  ]
                }
              },
              {
                "scenarioKey": "OFFLINE_PAYMENT_OTHER",
                "condition": {
                  "operator": "AND",
                  "conditions": [
                    {"field": "paymentMode", "operator": "EQUALS", "value": "offline"},
                    {"field": "offlinePaymentMethod", "operator": "NOT_EQUALS", "value": "Cheque"}
                  ]
                },
                "screen": {
                  "title": "{{programName}}",
                  "message": "Dear infinitheist {{seekerName}},\n\nWe acknowledge your payment towards {{programName}} - {{programStartDate}} to {{programEndDate}}.",
                  "variant": "info",
                  "showLogo": true,
                  "showBanner": true,
                  "logoUrl": "{{logoUrl}}",
                  "bannerImageUrl": "{{bannerImageUrl}}",
                  "actions": [
                    {
                      "actionKey": "HOME",
                      "label": "home",
                      "type": "secondary",
                      "apiKey": null
                    }
                  ]
                }
              },
              {
                "scenarioKey": "FREE_SEAT_REGISTRATION",
                "condition": {
                  "operator": "AND",
                  "conditions": [
                    {"field": "isFreeSeat", "operator": "EQUALS", "value": true},
                    {"field": "registrationStatus", "operator": "NOT_EQUALS", "value": "cancelled"}
                  ]
                },
                "screen": {
                  "title": "Registration Successful!",
                  "message": "Dear infinitheist {{seekerName}},\n\nYour registration for {{programName}} is successful.\n\nRegistration Number: {{registrationNumber}}\nProgram Date: {{programStartDate}} to {{programEndDate}}",
                  "variant": "success",
                  "showLogo": true,
                  "showBanner": true,
                  "logoUrl": "{{logoUrl}}",
                  "bannerImageUrl": "{{bannerImageUrl}}",
                  "actions": [
                    {
                      "actionKey": "HOME",
                      "label": "home",
                      "type": "secondary",
                      "apiKey": null
                    },
                    {
                      "actionKey": "VIEW_SUMMARY",
                      "label": "summary",
                      "type": "secondary",
                      "apiKey": "VIEW_REGISTRATION_SUMMARY"
                    }
                  ]
                }
              }
            ],
            "defaultScreen": {
              "title": "Payment Submitted!",
              "message": "Dear infinitheist {{seekerName}},\n\nYour payment for {{programName}} has been submitted successfully.\n\nRegistration Number: {{registrationNumber}}",
              "variant": "success",
              "showLogo": true,
              "showBanner": true,
              "logoUrl": "{{logoUrl}}",
              "bannerImageUrl": "{{bannerImageUrl}}",
              "actions": [
                {
                  "actionKey": "HOME",
                  "label": "home",
                  "type": "secondary",
                  "apiKey": null
                }
              ]
            }
          }
        }
      ]
    }
  ]