{
  "meta": {
    "$_GET": [
      {
        "type": "text",
        "name": "sort"
      },
      {
        "type": "text",
        "name": "dir"
      }
    ]
  },
  "exec": {
    "steps": [
      {
        "name": "",
        "module": "auth",
        "action": "restrict",
        "options": {
          "provider": "security",
          "permissions": [
            "Active"
          ]
        }
      },
      {
        "name": "list",
        "module": "dbupdater",
        "action": "custom",
        "options": {
          "connection": "db",
          "sql": {
            "query": "SELECT \n    tm.*,\n\n    -- Total saved per goal\n    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n\n    -- Last transaction date\n    MAX(tt.created_on) AS last_transaction_date,\n\n    -- % achieved per goal\n    ROUND(\n        CASE \n            WHEN tm.amount > 0 \n            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n            ELSE 0\n        END,\n    2) AS percentage_achieved,\n\n    -- 🔥 Grand total saved (all goals)\n    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n\n    -- 🔥 Grand total target (all goals)\n    SUM(tm.amount) OVER () AS grand_total_target\n\nFROM target_master tm\nLEFT JOIN target_transaction tt \n    ON tm.id = tt.target_id\n\nWHERE tm.status != 'Completed'\n\nGROUP BY tm.id\nORDER BY tm.created_on DESC;",
            "params": [
              {
                "name": ":P1",
                "value": "{{identity}}",
                "test": ""
              }
            ]
          }
        },
        "output": true,
        "meta": [
          {
            "name": "id",
            "type": "number"
          },
          {
            "name": "name",
            "type": "text"
          },
          {
            "name": "amount",
            "type": "number"
          },
          {
            "name": "description",
            "type": "file"
          },
          {
            "name": "userid",
            "type": "number"
          },
          {
            "name": "created_on",
            "type": "datetime"
          },
          {
            "name": "status",
            "type": "text"
          },
          {
            "name": "category",
            "type": "text"
          },
          {
            "name": "icon",
            "type": "file"
          },
          {
            "name": "total_saved",
            "type": "text"
          },
          {
            "name": "last_transaction_date",
            "type": "datetime"
          },
          {
            "name": "percentage_achieved",
            "type": "text"
          }
        ],
        "outputType": "array",
        "type": "dbcustom_query",
        "collapsed": true
      }
    ]
  }
}