35 lines
1.5 KiB
MySQL
35 lines
1.5 KiB
MySQL
|
|
-- V024__reseed_global_with_zero_price.sql
|
||
|
|
-- PRC-001 scope delta: actualiza las 4 filas globales de seed a PricePerUnit = 0.0000.
|
||
|
|
--
|
||
|
|
-- Cambios:
|
||
|
|
-- 1. UPDATE directo de las 4 filas globales vigentes ($, %, !, ¡) a PricePerUnit = 0.0000.
|
||
|
|
--
|
||
|
|
-- Decisión: UPDATE directo (no forward-only close+insert) porque:
|
||
|
|
-- - V022 seed price 1.0000 era siempre un placeholder nunca usado en lógica de negocio.
|
||
|
|
-- - No existe historial de facturación con el valor 1.0000.
|
||
|
|
-- - La semántica correcta es "opt-in billing": por defecto ningún tipo cobra especiales.
|
||
|
|
-- - La forward-only invariante aplica a cambios de precio en producción; este es un fix
|
||
|
|
-- de seed pre-go-live dentro de la misma branch feature (no mergeada a main aún).
|
||
|
|
-- See: scope-delta-1 en engram sdd/prc-001-word-counter-spike/scope-delta-1.
|
||
|
|
--
|
||
|
|
-- Patrón: UPDATE simple WHERE ProductTypeId IS NULL AND Symbol IN (...) AND ValidTo IS NULL.
|
||
|
|
-- Idempotente: UPDATE idempotente (re-ejecutar no cambia el resultado).
|
||
|
|
-- Reversa: V024_ROLLBACK.sql.
|
||
|
|
-- Depends on: V023 (ProductTypeId column must exist; CK_Price_NonNegative >= 0 required).
|
||
|
|
-- Run on: SIGCM2 (dev), SIGCM2_Test_App, SIGCM2_Test_Api.
|
||
|
|
|
||
|
|
SET QUOTED_IDENTIFIER ON;
|
||
|
|
SET ANSI_NULLS ON;
|
||
|
|
SET NOCOUNT ON;
|
||
|
|
GO
|
||
|
|
|
||
|
|
UPDATE dbo.ChargeableCharConfig
|
||
|
|
SET PricePerUnit = CAST(0.0000 AS DECIMAL(18,4))
|
||
|
|
WHERE ProductTypeId IS NULL
|
||
|
|
AND Symbol IN (N'$', N'%', N'!', N'¡')
|
||
|
|
AND ValidTo IS NULL;
|
||
|
|
|
||
|
|
PRINT 'V024 applied — global ChargeableCharConfig prices reset to 0.0000 (opt-in billing).';
|
||
|
|
PRINT 'Rows updated: ' + CAST(@@ROWCOUNT AS NVARCHAR(10));
|
||
|
|
GO
|