Files
sub2api/backend/migrations/228_channel_pricing_multipliers.sql
T

57 lines
3.7 KiB
SQL
Raw Normal View History

ALTER TABLE channel_model_pricing
ADD COLUMN IF NOT EXISTS fast_multiplier NUMERIC(12,6),
ADD COLUMN IF NOT EXISTS flex_multiplier NUMERIC(12,6);
ALTER TABLE channel_pricing_intervals
ADD COLUMN IF NOT EXISTS input_multiplier NUMERIC(12,6),
ADD COLUMN IF NOT EXISTS output_multiplier NUMERIC(12,6),
ADD COLUMN IF NOT EXISTS cache_write_multiplier NUMERIC(12,6),
ADD COLUMN IF NOT EXISTS cache_read_multiplier NUMERIC(12,6);
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'channel_model_pricing_fast_multiplier_positive' AND conrelid = 'channel_model_pricing'::regclass) THEN
ALTER TABLE channel_model_pricing
ADD CONSTRAINT channel_model_pricing_fast_multiplier_positive
CHECK (fast_multiplier IS NULL OR fast_multiplier > 0);
END IF;
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'channel_model_pricing_flex_multiplier_positive' AND conrelid = 'channel_model_pricing'::regclass) THEN
ALTER TABLE channel_model_pricing
ADD CONSTRAINT channel_model_pricing_flex_multiplier_positive
CHECK (flex_multiplier IS NULL OR flex_multiplier > 0);
END IF;
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'channel_pricing_intervals_input_multiplier_positive' AND conrelid = 'channel_pricing_intervals'::regclass) THEN
ALTER TABLE channel_pricing_intervals
ADD CONSTRAINT channel_pricing_intervals_input_multiplier_positive
CHECK (input_multiplier IS NULL OR input_multiplier > 0);
END IF;
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'channel_pricing_intervals_output_multiplier_positive' AND conrelid = 'channel_pricing_intervals'::regclass) THEN
ALTER TABLE channel_pricing_intervals
ADD CONSTRAINT channel_pricing_intervals_output_multiplier_positive
CHECK (output_multiplier IS NULL OR output_multiplier > 0);
END IF;
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'channel_pricing_intervals_cache_write_multiplier_positive' AND conrelid = 'channel_pricing_intervals'::regclass) THEN
ALTER TABLE channel_pricing_intervals
ADD CONSTRAINT channel_pricing_intervals_cache_write_multiplier_positive
CHECK (cache_write_multiplier IS NULL OR cache_write_multiplier > 0);
END IF;
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'channel_pricing_intervals_cache_read_multiplier_positive' AND conrelid = 'channel_pricing_intervals'::regclass) THEN
ALTER TABLE channel_pricing_intervals
ADD CONSTRAINT channel_pricing_intervals_cache_read_multiplier_positive
CHECK (cache_read_multiplier IS NULL OR cache_read_multiplier > 0);
END IF;
END $$;
COMMENT ON COLUMN channel_model_pricing.fast_multiplier IS
'Fast/priority service tier multiplier applied to the selected standard channel price';
COMMENT ON COLUMN channel_model_pricing.flex_multiplier IS
'Flex service tier multiplier applied to the selected standard channel price';
COMMENT ON COLUMN channel_pricing_intervals.input_multiplier IS
'Interval input multiplier applied to the channel base input price when input_price is NULL';
COMMENT ON COLUMN channel_pricing_intervals.output_multiplier IS
'Interval output multiplier applied to the channel base output price when output_price is NULL';
COMMENT ON COLUMN channel_pricing_intervals.cache_write_multiplier IS
'Interval cache-write multiplier applied to the channel base cache-write price when cache_write_price is NULL';
COMMENT ON COLUMN channel_pricing_intervals.cache_read_multiplier IS
'Interval cache-read multiplier applied to the channel base cache-read price when cache_read_price is NULL';