-- peripheral_info 加自增主键 + asset_id 可空 + star_id + user_id
-- 用于支持"扫码时预建 peripheral_info,mint 时回填 asset_id 和 user_id"的流程

-- 1. 加自增主键(原本 asset_id 是 PK,但 mint 时 asset 才创建,需要 NULL)
ALTER TABLE peripheral_info
  ADD COLUMN IF NOT EXISTS id BIGSERIAL;

-- 2. 如果 asset_id 当前是 PK,需要 drop;GORM AutoMigrate 会处理
ALTER TABLE peripheral_info
  DROP CONSTRAINT IF EXISTS peripheral_info_pkey;

ALTER TABLE peripheral_info
  ADD PRIMARY KEY (id);

-- 3. asset_id 改为可空默认 NULL(mint 后才回填)
ALTER TABLE peripheral_info
  ALTER COLUMN asset_id DROP NOT NULL,
  ALTER COLUMN asset_id SET DEFAULT NULL;

-- 4. 加 star_id 默认 87(项目主星)
ALTER TABLE peripheral_info
  ADD COLUMN IF NOT EXISTS star_id BIGINT NOT NULL DEFAULT 87;

-- 5. 加 user_id(mint 后回填,默认 NULL)
ALTER TABLE peripheral_info
  ADD COLUMN IF NOT EXISTS user_id BIGINT DEFAULT NULL;

-- 6. 序列同步
SELECT setval(pg_get_serial_sequence('peripheral_info', 'id'), COALESCE((SELECT MAX(id) FROM peripheral_info), 0));

-- 7. code 加 UNIQUE 约束(SKU/序列号唯一)
CREATE UNIQUE INDEX IF NOT EXISTS idx_peripheral_info_code ON peripheral_info(code) WHERE code <> '';

-- 8. 周边缩略图
ALTER TABLE peripheral_info
  ADD COLUMN IF NOT EXISTS image VARCHAR(500) DEFAULT '';
