-- +migrate Up
-- 音声ファイルテーブル
CREATE TABLE IF NOT EXISTS `audio_files` (
	`id` BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY COMMENT '音声ファイルID',
	`account_id` BIGINT UNSIGNED NOT NULL COMMENT 'アカウントID',
	`owner_user_id` BIGINT UNSIGNED NOT NULL COMMENT '所有者ユーザーID',
	`url` VARCHAR(2048) NOT NULL COMMENT 'URL',
	`file_name` VARCHAR(1024) NOT NULL COMMENT 'ファイル名',
	`author_id` VARCHAR(255) NOT NULL COMMENT 'AuthorID',
	`work_type_id` VARCHAR(255) NOT NULL COMMENT 'WorkTypeID',
	`started_at` TIMESTAMP(3) NOT NULL COMMENT '録音開始日時',
	`duration` VARCHAR(255) NOT NULL COMMENT '録音時間',
	`finished_at` TIMESTAMP(3) NOT NULL COMMENT '録音終了日時',
	`uploaded_at` TIMESTAMP(3) NOT NULL COMMENT 'アップロード日時',
	`file_size` INT NOT NULL COMMENT 'ファイルサイズ（Byte）',
	`priority` VARCHAR(10) NOT NULL COMMENT '優先度',
	`audio_format` VARCHAR(255) NOT NULL COMMENT '音声フォーマット',
	`comment` VARCHAR(255) COMMENT 'コメント',
	`deleted_at` TIMESTAMP(3) COMMENT '削除日時',
	`is_encrypted` BOOLEAN NOT NULL COMMENT '暗号化されているか'
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;

-- 文字起こしタスクテーブル
CREATE TABLE IF NOT EXISTS `tasks` (
	`id` BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY COMMENT 'タスクID',
	`job_number` VARCHAR(10) NOT NULL COMMENT 'JOBナンバー',
	`account_id` BIGINT UNSIGNED NOT NULL COMMENT 'タスクに紐づいたアカウントID',
	`is_job_number_enabled` BOOLEAN COMMENT 'このタスクのJOBナンバーは現在有効か',
	`audio_file_id` BIGINT UNSIGNED NOT NULL COMMENT '音声ファイルID',
	`status` VARCHAR(16) NOT NULL COMMENT 'ステータス',
	`typist_user_id` BIGINT UNSIGNED COMMENT '割り当てユーザ',
	`priority` VARCHAR(10) NOT NULL COMMENT '優先度',
	`template_file_id` BIGINT UNSIGNED COMMENT '文字起こしテンプレートファイルID',
	`started_at` TIMESTAMP(3) COMMENT '文字起こし開始日時',
	`finished_at` TIMESTAMP(3) COMMENT '文字起こし終了日時',
	UNIQUE job_number_index (job_number, account_id, is_job_number_enabled)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;

-- オプションアイテム（音声ファイルメタデータ）テーブル
CREATE TABLE IF NOT EXISTS `audio_option_items` (
	`id` BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY COMMENT 'オプションアイテムID',
	`audio_file_id` BIGINT UNSIGNED NOT NULL COMMENT '音声ファイルID',
	`label` VARCHAR(255) NOT NULL COMMENT 'オプションアイテムラベル',
	`value` VARCHAR(255) NOT NULL COMMENT 'オプションアイテム値'
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;

-- +migrate Down
DROP TABLE `audio_files`;
DROP TABLE `tasks`;
DROP TABLE `audio_option_items`;