-- 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
