-- 每设备归因 + GB 综合配额（todo #5 Phase 2）
--
-- ① devices.dp_uuid：每设备独立的数据面凭证（替代账户级 users.dp_uuid 作为出网凭证）。
--    SQLite ADD COLUMN 不支持 UNIQUE 约束 → 列加完再建唯一索引（NULL 视为相异，存量设备
--    NULL 不冲突，待回填）。
-- ② usage_device_daily：按设备的每日用量；usage_daily 仍作账户综合 rollup。
-- ③ plans.daily_mb：每日综合流量配额（MB，与 daily_minutes 并存，按账户综合卡）。
--    用 MB 而非 GB 以支持免费版 500MB。free 500 / pro 100GB / team 200GB（可调）。

ALTER TABLE devices ADD COLUMN dp_uuid TEXT NULL;
CREATE UNIQUE INDEX idx_devices_dp_uuid ON devices (dp_uuid);

CREATE TABLE usage_device_daily (
  user_id        INTEGER NOT NULL,
  device_id      INTEGER NOT NULL,
  date           DATE NOT NULL,
  bytes_up       INTEGER NOT NULL DEFAULT 0,
  bytes_down     INTEGER NOT NULL DEFAULT 0,
  minutes_used   INTEGER NOT NULL DEFAULT 0,
  PRIMARY KEY (device_id, date)
);
CREATE INDEX idx_usage_device_user_date ON usage_device_daily (user_id, date);

ALTER TABLE plans ADD COLUMN daily_mb INTEGER NULL;
UPDATE plans SET daily_mb = 500 WHERE code = 'free';
UPDATE plans SET daily_mb = 102400 WHERE code = 'pro';
UPDATE plans SET daily_mb = 204800 WHERE code = 'team';
