CREATE DATABASE IF NOT EXISTS wy_media DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE wy_media;

-- ------------------------------
-- 1. 媒体文件信息表（全局媒体文件存储）
-- ------------------------------
CREATE TABLE `media_file` (
                              `id` BIGINT AUTO_INCREMENT PRIMARY KEY,
                              `original_name` VARCHAR(255) NOT NULL COMMENT '原始文件名',
                              `file_name` VARCHAR(255) NOT NULL COMMENT '存储文件名（系统生成的唯一文件名）',
                              `file_type` VARCHAR(20) NOT NULL COMMENT '文件类型：image、audio、video',
                              `file_size` BIGINT COMMENT '文件大小（字节）',
                              `bucket_name` VARCHAR(100) NOT NULL COMMENT '存储桶名称',
                              `file_url` VARCHAR(500) NOT NULL COMMENT '文件访问URL',
                              `storage_type` VARCHAR(20) DEFAULT 'oss' COMMENT '存储类型（oss、local、minio等）',
                              `status` TINYINT DEFAULT 0 COMMENT '文件状态：0-正常，1-已删除（逻辑删除）',
                              `md5` VARCHAR(32) COMMENT '文件MD5值',
                              `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
                              `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
                              INDEX `idx_file_type` (`file_type`),
                              INDEX `idx_bucket_name` (`bucket_name`),
                              INDEX `idx_create_time` (`create_time`),
                              INDEX `idx_md5` (`md5`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='媒体文件信息表';

-- ------------------------------
-- 2. 艺人媒体文件历史记录表（关联artist服务的artist.id、本服务的media_file表）
-- ------------------------------
CREATE TABLE `artist_media_history` (
                                        `id` BIGINT AUTO_INCREMENT PRIMARY KEY,
                                        `artist_id` INT NOT NULL COMMENT '关联artist服务的artist.id',
                                        `media_type` VARCHAR(20) NOT NULL COMMENT '媒体类型: avatar、header_image等',
                                        `media_file_id` BIGINT NOT NULL COMMENT '关联本服务的media_file.id',
                                        `is_current` TINYINT DEFAULT 0 COMMENT '是否为当前使用版本：0-否，1-是',
                                        `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
                                        FOREIGN KEY (`media_file_id`) REFERENCES `media_file` (`id`) ON DELETE RESTRICT,
                                        UNIQUE KEY `uk_artist_media_current` (`artist_id`, `media_type`, `is_current`),
                                        INDEX `idx_artist_id` (`artist_id`) -- 逻辑关联索引
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='艺人媒体文件历史记录表';