VAS Costs
Per-VAS, per-tag pricing. Updates propagate to channel_value_added_service and listing_channel_value_added_service. Supports single, bulk, and CSV upload/export.
📄️ List VAS costs (paginated)
Returns a page of VAS cost rows. Default size is 20. When `vasId` is supplied, all matching rows are returned without pagination (cardinality is naturally small — one row per tag × optional variant).
📄️ Upsert VAS costs for one or more tags
Sets the (vasId, variantId?, tagName) row for every tag in `tagName`. For simple strategies (FIXED / PER_PERSON / PER_ITEM / PER_QUANTITY / PER_HOUR / PER_KM) the `price` column alone is enough. Complex strategies (BASE_PLUS_OVERAGE, TIERED, ON_ACTUALS) carry their parameters in `pricingConfig`. `tagName` is an array, so one configuration can cover several tags — `'tagName': ['GOA', 'purple']` writes two rows. A bare string is still accepted and read as a one-element array. Blank entries and an empty array are rejected; repeated tags are collapsed. The response `data` is always an array, one persisted row per tag, in the order supplied. Updates propagate to listing_channel_value_added_service via FK.
📄️ Export all VAS costs as CSV
Streams `vas_costs.csv`.
📄️ Download a CSV template
Streams `vas_costs_sample.csv`.
📄️ Get a VAS cost row by its numeric id
Get a VAS cost row by its numeric id
📄️ Delete a VAS cost row by id
Removes the row. Cascades to listing_channel_value_added_service rows that reference this vas_cost_id (their FK is ON DELETE CASCADE).
📄️ Upsert VAS costs in bulk
Upsert VAS costs in bulk
📄️ Bulk upsert from CSV upload
Multipart/form-data upload. Field name `file`. Use the `/sample` endpoint to download a template.