-- Migration 003: DBN Tools NOK pricing catalog support
-- Run against dobetternorge_maindb:
--   mysql -u root dobetternorge_maindb < scripts/sql/003_pricing_credit_catalog.sql
--
-- Existing user_tool_credits columns are preserved:
--   balance       = monthly credits
--   bonus_balance = prepaid/top-up credits

START TRANSACTION;

CREATE TABLE IF NOT EXISTS user_tool_credit_ledger (
  id              BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  user_id         INT UNSIGNED    NOT NULL,
  event_type      VARCHAR(40)     NOT NULL,
  source          VARCHAR(100)    NOT NULL,
  credits_delta   INT             NOT NULL,
  metadata_json   JSON            NULL,
  created_at      DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (id),
  KEY idx_user_created (user_id, created_at DESC),
  KEY idx_event_type (event_type, created_at DESC)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  COMMENT='Auditable DBN Tools credit grants, charges, and subscription refills';

CREATE TABLE IF NOT EXISTS user_tool_credit_reservations (
  id                 BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  user_id            INT UNSIGNED    NOT NULL,
  tool               VARCHAR(40)     NOT NULL,
  reserved_credits   INT UNSIGNED    NOT NULL,
  settled_credits    INT UNSIGNED    NULL,
  status             ENUM('reserved','settled','released','expired') NOT NULL DEFAULT 'reserved',
  provider           VARCHAR(40)     NULL,
  duration_seconds   DECIMAL(10,2)   NULL,
  metadata_json      JSON            NULL,
  created_at         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP,
  settled_at         DATETIME        NULL,
  expires_at         DATETIME        NOT NULL,
  PRIMARY KEY (id),
  KEY idx_user_status (user_id, status, created_at DESC),
  KEY idx_expires (status, expires_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  COMMENT='STT reservation audit trail; v1 gates by estimate and settles on success';

COMMIT;
