-- Migration 001: Premium "My Case" tier
-- Run against dobetternorge_maindb:
--   mysql -u root dobetternorge_maindb < scripts/sql/001_premium_my_case.sql
--
-- This migration:
--   1. Creates case_tool_results — persists every tool run for paid users
--   2. Adds trial_* columns to user_tool_credits — mirrors Stripe trial state
--   3. Simplifies tier enums to the MVP ladder (free|plus|pro)

START TRANSACTION;

-- ── 1. case_tool_results ────────────────────────────────────────────────────
CREATE TABLE IF NOT EXISTS case_tool_results (
  id                INT UNSIGNED NOT NULL AUTO_INCREMENT,
  user_id           INT UNSIGNED NOT NULL                COMMENT 'Session user (may be a family member)',
  owner_user_id     INT UNSIGNED NOT NULL                COMMENT 'caseResolveClientId result; whose corpus was queried',
  tool              VARCHAR(40)  NOT NULL                COMMENT 'korrespond | advocate | barnevernet | deep-research | discrepancy | timeline',
  title             VARCHAR(200) NULL                    COMMENT 'User-editable; defaults to first 80 chars of input',
  used_case_context TINYINT(1)   NOT NULL DEFAULT 0,
  case_doc_ids      JSON         NULL                    COMMENT 'case_documents.id values that contributed chunks',
  input_payload     JSON         NOT NULL                COMMENT 'Full request body for re-run',
  output_payload    JSON         NOT NULL                COMMENT 'Full tool response',
  model             VARCHAR(60)  NULL                    COMMENT 'Azure deployment name actually used',
  latency_ms        INT UNSIGNED NULL,
  credits_charged   TINYINT UNSIGNED NOT NULL DEFAULT 0,
  pinned            TINYINT(1)   NOT NULL DEFAULT 0,
  created_at        DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP,
  deleted_at        DATETIME     NULL,
  PRIMARY KEY (id),
  KEY idx_user_created  (user_id, created_at DESC),
  KEY idx_owner_tool    (owner_user_id, tool, created_at DESC),
  KEY idx_pinned        (user_id, pinned, created_at DESC)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  COMMENT='Saved tool outputs per case — premium "My Case" feature';

-- ── 2. trial columns on user_tool_credits ───────────────────────────────────
ALTER TABLE user_tool_credits
  ADD COLUMN trial_started_at    DATETIME NULL AFTER tier,
  ADD COLUMN trial_expires_at    DATETIME NULL AFTER trial_started_at,
  ADD COLUMN trial_downgraded_at DATETIME NULL AFTER trial_expires_at;

-- ── 3. simplify tier enum ───────────────────────────────────────────────────
-- No production subscribers exist (demo configuration only) — safe to collapse.
UPDATE user_tool_credits SET tier = 'plus' WHERE tier = 'light';
UPDATE user_tool_credits SET tier = 'pro'  WHERE tier = 'pro_plus';

ALTER TABLE user_tool_credits
  MODIFY COLUMN tier ENUM('free','plus','pro') NOT NULL DEFAULT 'free';

UPDATE user_subscriptions SET tier = 'plus' WHERE tier = 'light';
UPDATE user_subscriptions SET tier = 'pro'  WHERE tier = 'pro_plus';

ALTER TABLE user_subscriptions
  MODIFY COLUMN tier ENUM('plus','pro') NOT NULL;

COMMIT;
