-- ========================================
-- 宠物模块数据结构优化迁移脚本
-- 执行前请备份相关表数据
-- ========================================

-- 1. 修改 Pet 表：CurrentEvolutionId int → bigint
ALTER TABLE Pet MODIFY COLUMN CurrentEvolutionId BIGINT NOT NULL DEFAULT 0;

-- 2. 修改 PetEvolution 表：PreviousEvolutionId int → bigint, 删除 ImageUrl
ALTER TABLE PetEvolution MODIFY COLUMN PreviousEvolutionId BIGINT NULL;
ALTER TABLE PetEvolution DROP COLUMN ImageUrl;

-- 3. 修改 PetSkin 表：删除 ImageUrl 和 ProductId
ALTER TABLE PetSkin DROP COLUMN ImageUrl;
ALTER TABLE PetSkin DROP COLUMN ProductId;

-- 4. 新建 PetSkinImage 表（每个皮肤在每个进化阶段下有一组有序图片）
CREATE TABLE IF NOT EXISTS PetSkinImage (
    Id BIGINT NOT NULL PRIMARY KEY COMMENT '主键（雪花ID）',
    SkinId BIGINT NOT NULL COMMENT '皮肤Id，关联PetSkin.Id（0表示默认皮肤）',
    EvolutionStageId BIGINT NOT NULL COMMENT '进化阶段Id，关联PetEvolution.Id',
    ImageUrl VARCHAR(500) NOT NULL COMMENT '图片地址',
    SortOrder INT NOT NULL DEFAULT 0 COMMENT '图片顺序（动画帧序号）',
    Type VARCHAR(50) NOT NULL DEFAULT 'Normal' COMMENT '图片类型: Normal, Special',
    Status INT NOT NULL DEFAULT 0 COMMENT '基础状态',
    IsDeleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除',
    CreatedBy VARCHAR(100) NULL COMMENT '创建人',
    CreatedAt DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    UpdatedBy VARCHAR(100) NULL COMMENT '更新人',
    UpdatedAt DATETIME NULL COMMENT '更新时间',
    INDEX idx_skin_evolution (SkinId, EvolutionStageId),
    INDEX idx_sort (SkinId, EvolutionStageId, SortOrder)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='宠物皮肤图片表';
