{
  "modelSettings" : {
    "context" : "user",
    "strictModel" : false,
    "modelName" : "Product",
    "service" : "ecommerce",
    "access_roles" : {"admin": ["READ","WRITE", "ALL"], "owner": ["READ","WRITE"] , "client": ["READ"]},
    "controlAccess" : false
  },

  "modelData" : {

    "formPreflight" : {
      "preflight" : true,
      "models" : [
        {
          "name" : "ShopCategory",
          "queryParams" : []
        },

        {
          "name" : "Departments",
          "queryParams" : []
        }
      ]
    },

    "systemManagedEntities" : {

      "productDetails" : {
        "total_sales": 0,
        "average_rating": "0.00",
        "featured": false,
        "catalog_visibility": false,
        "promotion_banner": false,
        "active": false,
        "downloads": [],
        "related_ids": [],
        "upsell_ids": [],
        "cross_sell_ids": [],
        "attributes": [],
        "default_attributes": [],
        "variations": [],
        "purchasable": true
      },

      "systemInformation" : {

        "sku" : "",
        "seller" : "",
        "flagged" : false,
        "reports" : [
            {
              "reported_by_id" : "",
              "report_message" : "",
              "report_date" : "",
              "report_status" : ""
            }
        ],

        "active" : true,
        "shop_id" : ""

      }
    },

    "formFieldsEntities" : {

      "productDetails" : {
        "name" : {
          "name": "name",
          "question": "What is your product name",
          "questionShort": "Product Name",
          "answerType": "text",
          "type": "text",
          "tooltip": "Please provide the name on the card.",
          "answerOptions": [],
          "answerOptionsType": null,
          "validations": ["required"],
          "answerColumns": []
        },

        "description": {
          "name": "description",
          "question": "What is your product description",
          "questionShort": "Product description",
          "answerType": "text",
          "type": "text",
          "tooltip": "Please provide the product description.",
          "answerOptions": [],
          "answerOptionsType": null,
          "validations": ["required"],
          "answerColumns": []
        },

        "color": {
          "name": "colors",
          "question": "Available Product colors",
          "questionShort": "Product colors",
          "answerType": "text",
          "type": "tags",
          "tooltip": "Available Product colors.",
          "answerOptions": [],
          "answerOptionsType": null,
          "validations": [],
          "value" : "",
          "answerColumns": []
        },

        "sizes": {
          "name": "sizes",
          "question": "Enter Product size Tags",
          "questionShort": "Product size Tags",
          "answerType": "text",
          "type": "tags",
          "tooltip": "Product size tags eg Large, Medium, Small.",
          "answerOptions": [],
          "answerOptionsType": null,
          "validations": [],
          "value" : "",
          "answerColumns": []
        },

        "regular_price": {
          "name": "regular_price",
          "question": "What is your product price",
          "questionShort": "Product product price",
          "answerType": "text",
          "type": "text",
          "tooltip": "Please provide the product price.",
          "answerOptions": [],
          "answerOptionsType": null,
          "validations": ["required"],
          "value" : "0.00",
          "answerColumns": []
        },

        "sale_price": {
          "name": "sale_price",
          "question": "What is your product price",
          "questionShort": "Product product price",
          "answerType": "text",
          "type": "text",
          "tooltip": "Please provide the product price.",
          "answerOptions": [],
          "answerOptionsType": null,
          "validations": [],
          "value" : "0.00",
          "answerColumns": []
        },

        "date_on_sale_from": {
          "name": "date_on_sale_from",
          "question": "Date of sale from",
          "questionShort": "Date of sale from",
          "answerType": "text",
          "type": "date",
          "tooltip": "Please provide the start date of the sale.",
          "answerOptions": [],
          "answerOptionsType": null,
          "validations": [],
          "value" : null,
          "answerColumns": []
        },

        "date_on_sale_to": {
          "name": "date_on_sale_to",
          "question": "Date of sale to",
          "questionShort": "Date of sale to",
          "answerType": "text",
          "type": "date",
          "tooltip": "Please provide the end date of the sale.",
          "answerOptions": [],
          "answerOptionsType": null,
          "validations": [],
          "value" : null,
          "answerColumns": []
        },
      
        "stock_quantity": {
          "name": "stock_quantity",
          "question": "Stock Quantity",
          "questionShort": "Product Stock Quantity",
          "answerType": "text",
          "type": "text",
          "tooltip": "Stock Quantity.",
          "answerOptions": [],
          "answerOptionsType": null,
          "validations": ["required"],
          "value" : false,
          "answerColumns": []
        },  
        
        "categories": {
          "name": "categories",
          "question": "Product categories",
          "questionShort": "Product categories",
          "answerType": "text",
          "type": "dropdown",
          "tooltip": "Product categories.",
          "data_source" : {
            "model" : "ShopCategory",
            "id" : "id",
            "value_tag" : "formFieldsEntities->categoryDetails->name"
          },
          "answerOptions": [
            {
              "id": "1",
              "value": "Shoes"
            },
            {
                "id": "2",
                "value": "Clothing"
            },
            {
                "id": "3",
                "value": "Bags"
            },

            {
              "id": "4",
              "value": "Accessories"
            }

          ],
          "answerOptionsType": "text",
          "validations": ["required"],
          "value" : null,
          "answerColumns": []
        },

        "department" : {
          "name": "department",
          "question": "Catalogue Department",
          "questionShort": "Catalogue Department",
          "answerType": "text",
          "type": "dropdown",
          "tooltip": "Product Department.",
          "data_source" : {
            "model" : "Departments",
            "id" : "id",
            "value_tag" : "formFieldsEntities->departmentDetails->name"
          },
          "answerOptions": [],
          "answerOptionsType": "text",
          "validations": ["required"],
          "value" : null,
          "answerColumns": []
        },

        "images": {
          "name": "images",
          "question": "Product images",
          "questionShort": "Product images",
          "answerType": "file",
          "type": "document-upload",
          "tooltip": "Please upload your Id, proof of res, copy of bank statement",
          "answerOptions": [],
          "answerOptionsType": "image/png,image/jpeg,application/pdf",
          "validations": [],
          "answerColumns": []
        }

      },

      "ProductFlags" : {
        "downloadable": {
          "name": "downloadable",
          "question": "Product is downloadable",
          "questionShort": "Product is downloadable",
          "answerType": "text",
          "type": "check-box",
          "tooltip": "Product is downloadable.",
          "answerOptions": [],
          "answerOptionsType": null,
          "validations": ["required"],
          "value" : false,
          "answerColumns": []
        },

        "published": {
          "name": "downloadable",
          "question": "Product is downloadable",
          "questionShort": "Product is downloadable",
          "answerType": "text",
          "type": "check-box",
          "tooltip": "Product is downloadable.",
          "answerOptions": [],
          "answerOptionsType": null,
          "validations": ["required"],
          "value" : false,
          "answerColumns": []
        },

        "on_sale": {
          "name": "on_sale",
          "question": "Is the product on sale",
          "questionShort": "Is the product on sale",
          "answerType": "text",
          "type": "check-box",
          "tooltip": "Is the product on sale.",
          "answerOptions": [],
          "answerOptionsType": null,
          "validations": ["required"],
          "value" : false,
          "answerColumns": []
        },

        "shipping_required":  {
          "name": "shipping_required",
          "question": "Is shipping required",
          "questionShort": "Is shipping required",
          "answerType": "text",
          "type": "check-box",
          "tooltip": "Is shipping required.",
          "answerOptions": [],
          "answerOptionsType": null,
          "validations": ["required"],
          "value" : true,
          "answerColumns": []
        },

        "product_status":  {
          "name": "product_status",
          "question": "Product's Status On Site",
          "questionShort": "Product's Status On Site",
          "answerType": "text",
          "type": "radio-buttons",
          "tooltip": "What is the current Product's Status On Site.",
          "answerOptions": [
            {
              "id" : "active",
              "value" : "Active"
            },

            {
              "id" : "disabled",
              "value" : "Disabled"
            },

            {
              "id" : "outofstock",
              "value" : "Out Of Stock"
            }
          ],
          "answerOptionsType": null,
          "validations": ["required"],
          "value" : "active",
          "answerColumns": []
        }
      },

      "productSettings" : {

        "color": {
          "name": "color",
          "question": "Product color",
          "questionShort": "Product color",
          "answerType": "text",
          "type": "text",
          "tooltip": "Product color.",
          "answerOptions": [],
          "answerOptionsType": null,
          "validations": ["required"],
          "value" : "",
          "answerColumns": []
        },

        "size": {
          "name": "size",
          "question": "Product size",
          "questionShort": "Product size",
          "answerType": "text",
          "type": "tags",
          "tooltip": "Product size.",
          "answerOptions": [],
          "answerOptionsType": null,
          "validations": ["required"],
          "value" : "",
          "answerColumns": []
        },

        "length": {
          "name": "length",
          "question": "Product length",
          "questionShort": "Product weight",
          "answerType": "text",
          "type": "text",
          "tooltip": "Product weight.",
          "answerOptions": [],
          "answerOptionsType": null,
          "validations": ["required"],
          "value" : "0",
          "answerColumns": []
        },

        "width": {
          "name": "width",
          "question": "Product width",
          "questionShort": "Product width",
          "answerType": "text",
          "type": "text",
          "tooltip": "Product width.",
          "answerOptions": [],
          "answerOptionsType": null,
          "validations": ["required"],
          "value" : "0",
          "answerColumns": []
        },

        "height": {
          "name": "height",
          "question": "Product height",
          "questionShort": "Product height",
          "answerType": "text",
          "type": "text",
          "tooltip": "Product height.",
          "answerOptions": [],
          "answerOptionsType": null,
          "validations": ["required"],
          "value" : "0",
          "answerColumns": []
        },

        "weight": {
          "name": "weight",
          "question": "Product weight",
          "questionShort": "Product weight",
          "answerType": "text",
          "type": "text",
          "tooltip": "Product weight.",
          "answerOptions": [],
          "answerOptionsType": null,
          "validations": ["required"],
          "value" : "0",
          "answerColumns": []
        }
      }
    }
  }
}