{
  "meta": {
    "options": {
      "linkedFile": "/views/diecast.ejs",
      "linkedForm": "formManageDiecast"
    },
    "$_POST": [
      {
        "type": "text",
        "fieldName": "diecast_id",
        "name": "diecast_id"
      },
      {
        "type": "text",
        "fieldName": "model_name",
        "options": {
          "rules": {
            "core:required": {
              "param": ""
            }
          }
        },
        "name": "model_name"
      },
      {
        "type": "number",
        "fieldName": "release_year",
        "options": {
          "rules": {
            "core:number": {},
            "core:max": {
              "param": "2100"
            },
            "core:min": {
              "param": "1950"
            }
          }
        },
        "name": "release_year"
      },
      {
        "type": "date",
        "fieldName": "purchase_date",
        "options": {
          "rules": {
            "core:required": {
              "param": ""
            },
            "core:date": {}
          }
        },
        "name": "purchase_date"
      },
      {
        "type": "text",
        "fieldName": "color",
        "name": "color"
      },
      {
        "type": "text",
        "fieldName": "casting_code",
        "name": "casting_code"
      },
      {
        "type": "file",
        "fieldName": "images",
        "multiple": true,
        "name": "images",
        "sub": [
          {
            "type": "text",
            "name": "name"
          },
          {
            "type": "text",
            "name": "type"
          },
          {
            "type": "number",
            "name": "size"
          },
          {
            "type": "text",
            "name": "error"
          }
        ],
        "outputType": "array"
      },
      {
        "type": "text",
        "fieldName": "series",
        "options": {
          "rules": {
            "core:required": {
              "param": ""
            }
          }
        },
        "name": "series"
      },
      {
        "type": "text",
        "fieldName": "brand",
        "options": {
          "rules": {
            "core:required": {
              "param": ""
            }
          }
        },
        "name": "brand"
      },
      {
        "type": "number",
        "name": "brand_id"
      },
      {
        "type": "text",
        "name": "scale"
      },
      {
        "type": "number",
        "name": "price"
      },
      {
        "type": "array",
        "name": "record",
        "sub": [
          {
            "type": "number",
            "name": "insert"
          },
          {
            "type": "text",
            "name": "upload_image"
          },
          {
            "type": "text",
            "name": "path"
          },
          {
            "type": "number",
            "name": "$_POST"
          }
        ]
      },
      {
        "type": "boolean",
        "name": "has_real_car"
      },
      {
        "type": "text",
        "name": "case"
      },
      {
        "type": "number",
        "name": "vehicle_brand_id"
      },
      {
        "type": "text",
        "name": "condition"
      }
    ]
  },
  "exec": {
    "steps": [
      {
        "name": "",
        "module": "auth",
        "action": "restrict",
        "options": {
          "provider": "security",
          "permissions": [
            "Active"
          ]
        }
      },
      {
        "name": "",
        "module": "core",
        "action": "condition",
        "options": {
          "if": "{{$_POST.diecast_id}}",
          "then": {
            "steps": [
              {
                "name": "",
                "options": {
                  "comment": "Update Diecast\n"
                }
              },
              {
                "name": "update",
                "module": "dbupdater",
                "action": "update",
                "options": {
                  "connection": "db",
                  "sql": {
                    "type": "update",
                    "values": [
                      {
                        "table": "diecast_cars",
                        "column": "brand_id",
                        "type": "number",
                        "value": "{{$_POST.brand}}"
                      },
                      {
                        "table": "diecast_cars",
                        "column": "series",
                        "type": "text",
                        "value": "{{$_POST.series}}"
                      },
                      {
                        "table": "diecast_cars",
                        "column": "model_name",
                        "type": "text",
                        "value": "{{$_POST.model_name}}"
                      },
                      {
                        "table": "diecast_cars",
                        "column": "release_year",
                        "type": "number",
                        "value": "{{$_POST.release_year}}"
                      },
                      {
                        "table": "diecast_cars",
                        "column": "scale",
                        "type": "text",
                        "value": "{{$_POST.scale}}"
                      },
                      {
                        "table": "diecast_cars",
                        "column": "purchase_date",
                        "type": "date",
                        "value": "{{$_POST.purchase_date}}"
                      },
                      {
                        "table": "diecast_cars",
                        "column": "price",
                        "type": "number",
                        "value": "{{$_POST.price}}"
                      },
                      {
                        "table": "diecast_cars",
                        "column": "case",
                        "type": "text",
                        "value": "{{$_POST.case}}"
                      },
                      {
                        "table": "diecast_cars",
                        "column": "vehicle_brand_id",
                        "type": "number",
                        "value": "{{$_POST.vehicle_brand_id}}"
                      },
                      {
                        "table": "diecast_cars",
                        "column": "condition",
                        "type": "text",
                        "value": "{{$_POST.condition}}"
                      }
                    ],
                    "table": "diecast_cars",
                    "wheres": {
                      "condition": "AND",
                      "rules": [
                        {
                          "id": "id",
                          "field": "id",
                          "type": "double",
                          "operator": "equal",
                          "value": "{{$_POST.diecast_id}}",
                          "data": {
                            "column": "id"
                          },
                          "operation": "="
                        }
                      ],
                      "conditional": null,
                      "valid": true
                    },
                    "returning": "id",
                    "query": "update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?",
                    "params": [
                      {
                        "name": ":P1",
                        "type": "expression",
                        "value": "{{$_POST.brand}}",
                        "test": ""
                      },
                      {
                        "name": ":P2",
                        "type": "expression",
                        "value": "{{$_POST.series}}",
                        "test": ""
                      },
                      {
                        "name": ":P3",
                        "type": "expression",
                        "value": "{{$_POST.model_name}}",
                        "test": ""
                      },
                      {
                        "name": ":P4",
                        "type": "expression",
                        "value": "{{$_POST.release_year}}",
                        "test": ""
                      },
                      {
                        "name": ":P5",
                        "type": "expression",
                        "value": "{{$_POST.scale}}",
                        "test": ""
                      },
                      {
                        "name": ":P6",
                        "type": "expression",
                        "value": "{{$_POST.purchase_date}}",
                        "test": ""
                      },
                      {
                        "name": ":P7",
                        "type": "expression",
                        "value": "{{$_POST.price}}",
                        "test": ""
                      },
                      {
                        "name": ":P8",
                        "type": "expression",
                        "value": "{{$_POST.case}}",
                        "test": ""
                      },
                      {
                        "name": ":P9",
                        "type": "expression",
                        "value": "{{$_POST.vehicle_brand_id}}",
                        "test": ""
                      },
                      {
                        "name": ":P10",
                        "type": "expression",
                        "value": "{{$_POST.condition}}",
                        "test": ""
                      },
                      {
                        "operator": "equal",
                        "type": "expression",
                        "name": ":P11",
                        "value": "{{$_POST.diecast_id}}",
                        "test": ""
                      }
                    ]
                  }
                },
                "meta": [
                  {
                    "name": "affected",
                    "type": "number"
                  }
                ]
              },
              {
                "name": "upload_image",
                "module": "upload",
                "action": "upload",
                "options": {
                  "path": "/public/assets/images/diecast",
                  "replaceSpace": true,
                  "template": "{name}_{guid}{ext}",
                  "fields": "{{$_POST.images}}"
                },
                "meta": [
                  {
                    "name": "name",
                    "type": "text"
                  },
                  {
                    "name": "path",
                    "type": "text"
                  },
                  {
                    "name": "url",
                    "type": "text"
                  },
                  {
                    "name": "type",
                    "type": "text"
                  },
                  {
                    "name": "size",
                    "type": "text"
                  },
                  {
                    "name": "error",
                    "type": "number"
                  }
                ],
                "outputType": "array",
                "collapsed": true
              },
              {
                "name": "repeat_images",
                "module": "core",
                "action": "repeat",
                "options": {
                  "repeat": "{{upload_image}}",
                  "outputFields": [],
                  "exec": {
                    "steps": {
                      "name": "images",
                      "module": "dbupdater",
                      "action": "insert",
                      "options": {
                        "connection": "db",
                        "sql": {
                          "type": "insert",
                          "values": [
                            {
                              "table": "diecast_images",
                              "column": "diecast_id",
                              "type": "number",
                              "value": "{{$_POST.diecast_id}}"
                            },
                            {
                              "table": "diecast_images",
                              "column": "image_url",
                              "type": "text",
                              "value": "{{path}}"
                            }
                          ],
                          "table": "diecast_images",
                          "returning": "id",
                          "query": "insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)",
                          "params": [
                            {
                              "name": ":P1",
                              "type": "expression",
                              "value": "{{$_POST.diecast_id}}",
                              "test": ""
                            },
                            {
                              "name": ":P2",
                              "type": "expression",
                              "value": "{{path}}",
                              "test": ""
                            }
                          ]
                        }
                      },
                      "meta": [
                        {
                          "name": "identity",
                          "type": "text"
                        },
                        {
                          "name": "affected",
                          "type": "number"
                        }
                      ],
                      "collapsed": true
                    }
                  }
                },
                "output": true,
                "meta": [
                  {
                    "name": "$index",
                    "type": "number"
                  },
                  {
                    "name": "$number",
                    "type": "number"
                  },
                  {
                    "name": "$name",
                    "type": "text"
                  },
                  {
                    "name": "$value",
                    "type": "object"
                  },
                  {
                    "name": "name",
                    "type": "text"
                  },
                  {
                    "name": "path",
                    "type": "text"
                  },
                  {
                    "name": "url",
                    "type": "text"
                  },
                  {
                    "name": "type",
                    "type": "text"
                  },
                  {
                    "name": "size",
                    "type": "text"
                  },
                  {
                    "name": "error",
                    "type": "number"
                  }
                ],
                "outputType": "array"
              }
            ]
          },
          "else": {
            "steps": [
              {
                "name": "insert",
                "module": "dbupdater",
                "action": "insert",
                "options": {
                  "connection": "db",
                  "sql": {
                    "type": "insert",
                    "values": [
                      {
                        "table": "diecast_cars",
                        "column": "brand_id",
                        "type": "number",
                        "value": "{{$_POST.brand}}"
                      },
                      {
                        "table": "diecast_cars",
                        "column": "series",
                        "type": "text",
                        "value": "{{$_POST.series}}"
                      },
                      {
                        "table": "diecast_cars",
                        "column": "model_name",
                        "type": "text",
                        "value": "{{$_POST.model_name}}"
                      },
                      {
                        "table": "diecast_cars",
                        "column": "release_year",
                        "type": "number",
                        "value": "{{$_POST.release_year}}"
                      },
                      {
                        "table": "diecast_cars",
                        "column": "scale",
                        "type": "text",
                        "value": "{{$_POST.scale}}"
                      },
                      {
                        "table": "diecast_cars",
                        "column": "purchase_date",
                        "type": "date",
                        "value": "{{$_POST.purchase_date}}"
                      },
                      {
                        "table": "diecast_cars",
                        "column": "price",
                        "type": "number",
                        "value": "{{$_POST.price}}"
                      },
                      {
                        "table": "diecast_cars",
                        "column": "created_at",
                        "type": "datetime",
                        "value": "{{NOW_UTC}}"
                      },
                      {
                        "table": "diecast_cars",
                        "column": "case",
                        "type": "text",
                        "value": "{{$_POST.case}}"
                      },
                      {
                        "table": "diecast_cars",
                        "column": "vehicle_brand_id",
                        "type": "number",
                        "value": "{{$_POST.vehicle_brand_id}}"
                      },
                      {
                        "table": "diecast_cars",
                        "column": "condition",
                        "type": "text",
                        "value": "{{$_POST.condition}}"
                      }
                    ],
                    "table": "diecast_cars",
                    "returning": "id",
                    "query": "insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
                    "params": [
                      {
                        "name": ":P1",
                        "type": "expression",
                        "value": "{{$_POST.brand}}",
                        "test": ""
                      },
                      {
                        "name": ":P2",
                        "type": "expression",
                        "value": "{{$_POST.series}}",
                        "test": ""
                      },
                      {
                        "name": ":P3",
                        "type": "expression",
                        "value": "{{$_POST.model_name}}",
                        "test": ""
                      },
                      {
                        "name": ":P4",
                        "type": "expression",
                        "value": "{{$_POST.release_year}}",
                        "test": ""
                      },
                      {
                        "name": ":P5",
                        "type": "expression",
                        "value": "{{$_POST.scale}}",
                        "test": ""
                      },
                      {
                        "name": ":P6",
                        "type": "expression",
                        "value": "{{$_POST.purchase_date}}",
                        "test": ""
                      },
                      {
                        "name": ":P7",
                        "type": "expression",
                        "value": "{{$_POST.price}}",
                        "test": ""
                      },
                      {
                        "name": ":P8",
                        "type": "expression",
                        "value": "{{NOW_UTC}}",
                        "test": ""
                      },
                      {
                        "name": ":P9",
                        "type": "expression",
                        "value": "{{$_POST.case}}",
                        "test": ""
                      },
                      {
                        "name": ":P10",
                        "type": "expression",
                        "value": "{{$_POST.vehicle_brand_id}}",
                        "test": ""
                      },
                      {
                        "name": ":P11",
                        "type": "expression",
                        "value": "{{$_POST.condition}}",
                        "test": ""
                      }
                    ]
                  }
                },
                "meta": [
                  {
                    "name": "identity",
                    "type": "text"
                  },
                  {
                    "name": "affected",
                    "type": "number"
                  }
                ],
                "collapsed": true
              },
              {
                "name": "",
                "module": "core",
                "action": "condition",
                "options": {
                  "if": "{{insert.identity}}",
                  "then": {
                    "steps": [
                      {
                        "name": "upload_image",
                        "module": "upload",
                        "action": "upload",
                        "options": {
                          "path": "/public/assets/images/diecast",
                          "replaceSpace": true,
                          "template": "{name}_{guid}{ext}",
                          "fields": "{{$_POST.images}}"
                        },
                        "meta": [
                          {
                            "name": "name",
                            "type": "text"
                          },
                          {
                            "name": "path",
                            "type": "text"
                          },
                          {
                            "name": "url",
                            "type": "text"
                          },
                          {
                            "name": "type",
                            "type": "text"
                          },
                          {
                            "name": "size",
                            "type": "text"
                          },
                          {
                            "name": "error",
                            "type": "number"
                          }
                        ],
                        "outputType": "array"
                      },
                      {
                        "name": "repeat_images",
                        "module": "core",
                        "action": "repeat",
                        "options": {
                          "repeat": "{{upload_image}}",
                          "outputFields": [],
                          "exec": {
                            "steps": {
                              "name": "images",
                              "module": "dbupdater",
                              "action": "insert",
                              "options": {
                                "connection": "db",
                                "sql": {
                                  "type": "insert",
                                  "values": [
                                    {
                                      "table": "diecast_images",
                                      "column": "diecast_id",
                                      "type": "number",
                                      "value": "{{insert.identity}}"
                                    },
                                    {
                                      "table": "diecast_images",
                                      "column": "image_url",
                                      "type": "text",
                                      "value": "{{path}}"
                                    }
                                  ],
                                  "table": "diecast_images",
                                  "returning": "id",
                                  "query": "insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)",
                                  "params": [
                                    {
                                      "name": ":P1",
                                      "type": "expression",
                                      "value": "{{insert.identity}}",
                                      "test": ""
                                    },
                                    {
                                      "name": ":P2",
                                      "type": "expression",
                                      "value": "{{path}}",
                                      "test": ""
                                    }
                                  ]
                                }
                              },
                              "meta": [
                                {
                                  "name": "identity",
                                  "type": "text"
                                },
                                {
                                  "name": "affected",
                                  "type": "number"
                                }
                              ]
                            }
                          }
                        },
                        "output": true,
                        "meta": [
                          {
                            "name": "$index",
                            "type": "number"
                          },
                          {
                            "name": "$number",
                            "type": "number"
                          },
                          {
                            "name": "$name",
                            "type": "text"
                          },
                          {
                            "name": "$value",
                            "type": "object"
                          },
                          {
                            "name": "name",
                            "type": "text"
                          },
                          {
                            "name": "path",
                            "type": "text"
                          },
                          {
                            "name": "url",
                            "type": "text"
                          },
                          {
                            "name": "type",
                            "type": "text"
                          },
                          {
                            "name": "size",
                            "type": "text"
                          },
                          {
                            "name": "error",
                            "type": "number"
                          }
                        ],
                        "outputType": "array"
                      }
                    ]
                  }
                },
                "outputType": "boolean"
              }
            ]
          }
        },
        "outputType": "boolean"
      }
    ]
  }
}