ALTER TABLE teleport_battery_power
ADD COLUMN power_factor decimal(5, 4),
ADD COLUMN active_power_setpoint_active_power decimal(23,3),
ADD COLUMN active_power_setpoint_charge_to_percentage decimal(23,3),
ADD COLUMN setpoints_confirmed_active_power decimal(23,3),
ADD COLUMN setpoints_confirmed_reactive_power_reactive_power decimal(23,3),
ADD COLUMN setpoints_confirmed_reactive_power_power_factor decimal(5,4),
ADD COLUMN setpoints_confirmed_reactive_power_mode varchar(32),
ADD COLUMN setpoints_confirmed_deliver_fcr decimal(23,3),
ADD COLUMN setpoints_confirmed_charge_to_percentage decimal(7,4),
ADD COLUMN setpoints_desired_active_power_cloud decimal(23,3),
ADD COLUMN setpoints_desired_active_power_active_control decimal(23,3),
ADD COLUMN setpoints_desired_active_power_grid_operator decimal(23,3),
ADD COLUMN setpoints_desired_active_power_modbus_server decimal(23,3),
ADD COLUMN setpoints_desired_reactive_power_cloud_reactive_power decimal(23,3),
ADD COLUMN setpoints_desired_reactive_power_cloud_power_factor decimal(5,4),
ADD COLUMN setpoints_desired_reactive_power_cloud_mode varchar(32),
ADD COLUMN setpoints_desired_reactive_power_grid_operator_reactive_power decimal(23,3),
ADD COLUMN setpoints_desired_reactive_power_grid_operator_power_factor decimal(5,4),
ADD COLUMN setpoints_desired_reactive_power_grid_operator_mode varchar(32),
ADD COLUMN setpoints_desired_charge_to_percentage_cloud decimal(7,4),
ADD COLUMN setpoints_desired_deliver_fcr_cloud decimal(23,3),
ADD COLUMN setpoints_effective_active_power decimal(23,3),
ADD COLUMN setpoints_effective_reactive_power_reactive_power decimal(23,3),
ADD COLUMN setpoints_effective_reactive_power_power_factor decimal(5,4),
ADD COLUMN setpoints_effective_reactive_power_mode varchar(32);
-- The `configuration` object is deprecated and replaced by `setpoints`.
-- Mappings are applied as follows:
-- `configuration_dispatch_power_active_power` → `setpoints_confirmed_active_power`.
-- `configuration_deliver_fcr_max_rate` → `setpoints_confirmed_deliver_fcr`.
-- `configuration_charge_to_state_percentage` → `setpoints_confirmed_charge_to_percentage`.
-- This transition consolidates configuration parameters into a structured `setpoints_confirmed` object.
-- Following properties are renamed and new columns are created
-- `active_power_setpoint_dispatch_power` to `active_power_setpoint_active_power`
-- `active_power_setpoint_charge_to_state` to `active_power_setpoint_charge_to_percentage`
UPDATE teleport_battery_power
active_power_setpoint_active_power = active_power_setpoint_dispatch_power,
active_power_setpoint_charge_to_percentage = active_power_setpoint_charge_to_state,
setpoints_confirmed_active_power = configuration_dispatch_power_active_power,
setpoints_confirmed_deliver_fcr = configuration_deliver_fcr_max_rate,
setpoints_confirmed_charge_to_percentage = configuration_charge_to_state_percentage;
ALTER TABLE teleport_battery_power
DROP COLUMN active_power_setpoint_dispatch_power,
DROP COLUMN active_power_setpoint_charge_to_state,
DROP COLUMN configuration_dispatch_power_active_power,
DROP COLUMN configuration_deliver_fcr_max_rate,
DROP COLUMN configuration_charge_to_state_percentage;
-- Correction, drop the existing incorrect index (missing bess_identifier)
DROP INDEX IF EXISTS teleport_battery_power_bess_rack_teleport_asset_idx;
-- Correction, correct the index with bess_identifier
CREATE UNIQUE INDEX teleport_battery_power_bess_rack_teleport_asset_idx
ON teleport_battery_power_bess_rack (teleport_hash_id, asset_identifier, bess_identifier, rack_identifier, measured_at);
COMMENT ON TABLE teleport_battery_power IS '{"version":4}';
COMMENT ON TABLE teleport_battery_power_bess IS '{"version":4}';
COMMENT ON TABLE teleport_battery_power_bess_rack IS '{"version":4}';