{
  "object": "write_shape",
  "shape_key": "ipal.pr_cover_def.insert_for_product",
  "version": 1,
  "module": "configuration",
  "customer_code": "BULSTRAD",
  "operation_id": "oracle-ipal.write_a",
  "connector": "oracle-ipal",
  "template": "INSERT INTO SRD_IPROD.PR_BASIC_COVER_DEF (PRODUCT_ID, COVER_CODE, OBJECT_CODE, COVER_ORDER, DESCR_LINK) SELECT {{product_id}}, c.code, c.object_code, c.cover_order, c.descr_link FROM JSON_TABLE({{covers_json}}, '$[*]' COLUMNS (code PATH '$.code', object_code PATH '$.object', cover_order PATH '$.order', descr_link PATH '$.descr_link')) c",
  "parameters": [
    { "name": "product_id", "type": "identifier", "bound_from": "returned_id" },
    { "name": "covers_json", "type": "list", "bound_from": "specification" }
  ],
  "target_class": "working",
  "effect_class": "transactional",
  "write_class": "W1",
  "expected_counts": "covers.length",
  "assertions": [
    { "name": "every specified cover exists once", "query": "SELECT COUNT(*) FROM SRD_IPROD.PR_BASIC_COVER_DEF WHERE PRODUCT_ID = {{product_id}}", "expect": "== covers.length" },
    { "name": "no cover without a description link", "query": "SELECT COUNT(*) FROM SRD_IPROD.PR_BASIC_COVER_DEF WHERE PRODUCT_ID = {{product_id}} AND DESCR_LINK IS NULL", "expect": "== 0" }
  ],
  "teardown_template": "DELETE FROM SRD_IPROD.PR_BASIC_COVER_DEF WHERE PRODUCT_ID = {{product_id}} AND COVER_CODE IN (SELECT code FROM JSON_TABLE({{covers_json}}, '$[*]' COLUMNS (code PATH '$.code')))",
  "case_types": ["new product", "packaging change"],
  "state": "approved",
  "expires_on": "2026-12-03T00:00:00Z"
}
