{
  "meta": {
    "$_POST": [
      {
        "type": "number",
        "name": "target_id"
      },
      {
        "type": "number",
        "name": "amount"
      },
      {
        "type": "text",
        "name": "type"
      }
    ]
  },
  "exec": {
    "steps": [
      {
        "name": "",
        "module": "auth",
        "action": "restrict",
        "options": {
          "provider": "security",
          "permissions": [
            "Active"
          ]
        }
      },
      {
        "name": "insert",
        "module": "dbupdater",
        "action": "insert",
        "options": {
          "connection": "db",
          "sql": {
            "type": "insert",
            "values": [
              {
                "table": "target_transaction",
                "column": "target_id",
                "type": "number",
                "value": "{{$_POST.target_id}}"
              },
              {
                "table": "target_transaction",
                "column": "credit",
                "type": "number",
                "value": "{{$_POST.amount}}",
                "condition": "{{$_POST.type=='credit'}}"
              },
              {
                "table": "target_transaction",
                "column": "debit",
                "type": "number",
                "value": "{{$_POST.amount}}",
                "condition": "{{$_POST.type == 'debit'}}"
              },
              {
                "table": "target_transaction",
                "column": "created_on",
                "type": "datetime",
                "value": "{{NOW}}"
              }
            ],
            "table": "target_transaction",
            "returning": "id",
            "query": "insert into `target_transaction` (`created_on`, `credit`, `debit`, `target_id`) values (?, ?, ?, ?)",
            "params": [
              {
                "name": ":P1",
                "type": "expression",
                "value": "{{$_POST.target_id}}",
                "test": ""
              },
              {
                "name": ":P2",
                "type": "expression",
                "value": "{{$_POST.amount}}",
                "test": ""
              },
              {
                "name": ":P3",
                "type": "expression",
                "value": "{{$_POST.amount}}",
                "test": ""
              },
              {
                "name": ":P4",
                "type": "expression",
                "value": "{{NOW}}",
                "test": ""
              }
            ]
          }
        },
        "meta": [
          {
            "name": "identity",
            "type": "text"
          },
          {
            "name": "affected",
            "type": "number"
          }
        ]
      }
    ]
  }
}