-- =========================================================================
-- MRDCA Model B migration (high-water mark se zámkem na safe)
-- =========================================================================
-- Přepíná `bot_mrdca` z "bot vlastní pool" na server-owned logiku.
-- Bot už pool nepočítá; reportuje surový kumulativní profit od start_date.
-- Server eviduje:
--   max_profit = MAX(stored_max_profit, current_profit)        -- high-water mark
--   safe       = max_profit * safe_pct                          -- zamčená rezerva
--   pool       = MAX(0, current_profit - safe)                  -- volný nadbytek
--
-- Nasaď současně s novým reporterem (RiskReportingBot v1.7).
-- =========================================================================

ALTER TABLE bot_mrdca
  ADD COLUMN start_date     DATETIME      NULL          AFTER account_number,
  ADD COLUMN current_profit DECIMAL(18,2) NOT NULL DEFAULT 0,
  ADD COLUMN max_profit     DECIMAL(18,2) NOT NULL DEFAULT 0,
  ADD COLUMN safe           DECIMAL(18,2) NOT NULL DEFAULT 0,
  ADD COLUMN safe_pct       DECIMAL(5,4)  NOT NULL DEFAULT 0,
  ADD COLUMN last_report_at DATETIME      NULL;

-- Převod safePrc (INT 0..100) → safe_pct (DECIMAL 0..1)
-- start_date = epoch jako fallback; admin si v dashboardu zúží na rozumné datum.
UPDATE bot_mrdca
   SET safe_pct   = safePrc / 100.0,
       start_date = '1970-01-01 00:00:00';

ALTER TABLE bot_mrdca
  DROP COLUMN safePrc,
  MODIFY pool        DECIMAL(18,2) NOT NULL DEFAULT 0,
  MODIFY pool_manual DECIMAL(18,2) NOT NULL DEFAULT 0;

-- Reset legacy pool hodnot na Model B invariant. Předmigrační `pool` byl
-- nastavovaný botem přes (nyní smazaný) `sync_pool` endpoint a po migraci
-- už neodpovídá vzorci pool = MAX(0, current_profit - safe). Counters jsou
-- po migraci nuly, takže pool musí být taky 0; první ping od nového
-- reportera ho přepočítá podle reálných hodnot.
UPDATE bot_mrdca SET pool = GREATEST(0, current_profit - safe);

-- =========================================================================
-- DŮLEŽITÉ po migraci:
-- Admin musí v dashboardu projít aktivní účty a nastavit smysluplný
-- start_date (typicky "dnešek"). Jinak bot pošle Sum(NetProfit) celé historie
-- a pool skokově vyletí na ~current_profit*(1-safe_pct), což je sice technicky
-- správné v Model B, ale prakticky to znamená, že DCA bot začne otevírat
-- výrazně větší pozice, než bys čekal/a.
-- =========================================================================
