228_channel_pricing_multipliers.sql 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. ALTER TABLE channel_model_pricing
  2. ADD COLUMN IF NOT EXISTS fast_multiplier NUMERIC(12,6),
  3. ADD COLUMN IF NOT EXISTS flex_multiplier NUMERIC(12,6);
  4. ALTER TABLE channel_pricing_intervals
  5. ADD COLUMN IF NOT EXISTS input_multiplier NUMERIC(12,6),
  6. ADD COLUMN IF NOT EXISTS output_multiplier NUMERIC(12,6),
  7. ADD COLUMN IF NOT EXISTS cache_write_multiplier NUMERIC(12,6),
  8. ADD COLUMN IF NOT EXISTS cache_read_multiplier NUMERIC(12,6);
  9. DO $$
  10. BEGIN
  11. IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'channel_model_pricing_fast_multiplier_positive' AND conrelid = 'channel_model_pricing'::regclass) THEN
  12. ALTER TABLE channel_model_pricing
  13. ADD CONSTRAINT channel_model_pricing_fast_multiplier_positive
  14. CHECK (fast_multiplier IS NULL OR fast_multiplier > 0);
  15. END IF;
  16. IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'channel_model_pricing_flex_multiplier_positive' AND conrelid = 'channel_model_pricing'::regclass) THEN
  17. ALTER TABLE channel_model_pricing
  18. ADD CONSTRAINT channel_model_pricing_flex_multiplier_positive
  19. CHECK (flex_multiplier IS NULL OR flex_multiplier > 0);
  20. END IF;
  21. IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'channel_pricing_intervals_input_multiplier_positive' AND conrelid = 'channel_pricing_intervals'::regclass) THEN
  22. ALTER TABLE channel_pricing_intervals
  23. ADD CONSTRAINT channel_pricing_intervals_input_multiplier_positive
  24. CHECK (input_multiplier IS NULL OR input_multiplier > 0);
  25. END IF;
  26. IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'channel_pricing_intervals_output_multiplier_positive' AND conrelid = 'channel_pricing_intervals'::regclass) THEN
  27. ALTER TABLE channel_pricing_intervals
  28. ADD CONSTRAINT channel_pricing_intervals_output_multiplier_positive
  29. CHECK (output_multiplier IS NULL OR output_multiplier > 0);
  30. END IF;
  31. IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'channel_pricing_intervals_cache_write_multiplier_positive' AND conrelid = 'channel_pricing_intervals'::regclass) THEN
  32. ALTER TABLE channel_pricing_intervals
  33. ADD CONSTRAINT channel_pricing_intervals_cache_write_multiplier_positive
  34. CHECK (cache_write_multiplier IS NULL OR cache_write_multiplier > 0);
  35. END IF;
  36. IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'channel_pricing_intervals_cache_read_multiplier_positive' AND conrelid = 'channel_pricing_intervals'::regclass) THEN
  37. ALTER TABLE channel_pricing_intervals
  38. ADD CONSTRAINT channel_pricing_intervals_cache_read_multiplier_positive
  39. CHECK (cache_read_multiplier IS NULL OR cache_read_multiplier > 0);
  40. END IF;
  41. END $$;
  42. COMMENT ON COLUMN channel_model_pricing.fast_multiplier IS
  43. 'Fast/priority service tier multiplier applied to the selected standard channel price';
  44. COMMENT ON COLUMN channel_model_pricing.flex_multiplier IS
  45. 'Flex service tier multiplier applied to the selected standard channel price';
  46. COMMENT ON COLUMN channel_pricing_intervals.input_multiplier IS
  47. 'Interval input multiplier applied to the channel base input price when input_price is NULL';
  48. COMMENT ON COLUMN channel_pricing_intervals.output_multiplier IS
  49. 'Interval output multiplier applied to the channel base output price when output_price is NULL';
  50. COMMENT ON COLUMN channel_pricing_intervals.cache_write_multiplier IS
  51. 'Interval cache-write multiplier applied to the channel base cache-write price when cache_write_price is NULL';
  52. COMMENT ON COLUMN channel_pricing_intervals.cache_read_multiplier IS
  53. 'Interval cache-read multiplier applied to the channel base cache-read price when cache_read_price is NULL';