CREATE TABLE IF NOT EXISTS `user_assets` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `user_id` BIGINT NOT NULL COMMENT '关联users.id',
  `asset_type` VARCHAR(40) NOT NULL COMMENT '资产类型：skin/room_decor/item/badge等',
  `asset_id` VARCHAR(100) NOT NULL COMMENT '资产ID',
  `source` VARCHAR(50) NOT NULL DEFAULT 'system' COMMENT '发放来源',
  `metadata` JSON NULL COMMENT '资产扩展数据',
  `acquired_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '获得时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `idx_user_assets_user_type_asset_unique` (`user_id`, `asset_type`, `asset_id`),
  KEY `idx_user_assets_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `room_decor_placements` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `user_id` BIGINT NOT NULL COMMENT '关联users.id',
  `decor_id` VARCHAR(100) NOT NULL COMMENT '房间摆件ID',
  `placed` BOOLEAN NOT NULL DEFAULT FALSE COMMENT '是否已摆放',
  `position_x` FLOAT NULL COMMENT '房间内X坐标',
  `position_y` FLOAT NULL COMMENT '房间内Y坐标',
  `scale` FLOAT NOT NULL DEFAULT 1 COMMENT '摆件缩放',
  `rotation_degrees` FLOAT NOT NULL DEFAULT 0 COMMENT '摆件旋转角度',
  `z_index` INT NOT NULL DEFAULT 0 COMMENT '摆放层级',
  `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `idx_room_decor_placements_user_decor_unique` (`user_id`, `decor_id`),
  KEY `idx_room_decor_placements_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
