{"openapi":"3.1.0","info":{"title":"POST /api/v1/inventory/products/unit-costs/preview","version":"1.0.0","description":"Preview unit cost bulk update"},"servers":[{"url":"https://api.ondayzero.com","description":"Production"}],"paths":{"/api/v1/inventory/products/unit-costs/preview":{"post":{"tags":["inventory:products"],"summary":"Preview unit cost bulk update","description":"Validate parsed CSV rows and preview cost changes before applying.","operationId":"preview_unit_cost_bulk_update_api_v1_inventory_products_unit_costs_preview_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-business-id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Business-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnitCostBulkPreviewRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnitCostBulkPreviewResponse"}}}},"400":{"description":"Bad Request - Invalid input","content":{"application/json":{"example":{"detail":"Invalid request parameters"}}}},"422":{"description":"Validation Error - Invalid data format","content":{"application/json":{"example":{"detail":[{"loc":["body","field"],"msg":"field required","type":"value_error.missing"}]}}}}}}}},"components":{"schemas":{"UnitCostBulkPreviewRequest":{"properties":{"rows":{"items":{"$ref":"#/components/schemas/UnitCostBulkUpdateRowInput"},"type":"array","maxItems":5000,"minItems":1,"title":"Rows","description":"Rows from the uploaded CSV after client-side parsing."}},"type":"object","required":["rows"],"title":"UnitCostBulkPreviewRequest","description":"Parsed CSV rows to validate before applying unit-cost updates."},"UnitCostBulkPreviewResponse":{"properties":{"total_rows":{"type":"integer","title":"Total Rows"},"to_update":{"type":"integer","title":"To Update"},"unchanged":{"type":"integer","title":"Unchanged"},"skipped":{"type":"integer","title":"Skipped"},"errors":{"type":"integer","title":"Errors"},"rows":{"items":{"$ref":"#/components/schemas/UnitCostBulkPreviewRow"},"type":"array","title":"Rows"}},"type":"object","required":["total_rows","to_update","unchanged","skipped","errors","rows"],"title":"UnitCostBulkPreviewResponse","description":"Summary and per-row preview for a unit-cost bulk upload."},"UnitCostBulkPreviewRow":{"properties":{"row_number":{"type":"integer","title":"Row Number"},"variant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Id"},"sku":{"type":"string","title":"Sku"},"product_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Name"},"variant_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Name"},"current_unit_cost_cents":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Unit Cost Cents"},"new_unit_cost_cents":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"New Unit Cost Cents"},"status":{"type":"string","title":"Status","description":"update | unchanged | skip | error"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"}},"type":"object","required":["row_number","sku","status"],"title":"UnitCostBulkPreviewRow","description":"Preview result for a single row."},"UnitCostBulkUpdateRowInput":{"properties":{"row_number":{"type":"integer","minimum":1.0,"title":"Row Number","description":"1-based row number from the spreadsheet."},"sku":{"type":"string","maxLength":100,"minLength":1,"title":"Sku","description":"Variant SKU."},"variant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Id","description":"Optional variant UUID; when set, used instead of SKU matching."},"new_unit_cost_cents":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"New Unit Cost Cents","description":"New unit cost in cents. Omit or null to skip the row."}},"type":"object","required":["row_number","sku"],"title":"UnitCostBulkUpdateRowInput","description":"One CSV row for unit-cost bulk preview/apply."}},"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Token","description":"API token authentication. Format: `Bearer dz_...`"}}},"security":[{"BearerAuth":[]}]}