65 lines
2.5 KiB
SQL
65 lines
2.5 KiB
SQL
-- CreateTable
|
|
CREATE TABLE `users` (
|
|
`id` INT NOT NULL,
|
|
`username` VARCHAR(191) NOT NULL DEFAULT '',
|
|
`display_name` VARCHAR(191) NOT NULL DEFAULT '',
|
|
`group` VARCHAR(191) NOT NULL DEFAULT '',
|
|
`role` INT NOT NULL DEFAULT 0,
|
|
`status` INT NOT NULL DEFAULT 0,
|
|
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `image_generations` (
|
|
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
`user_id` INT NOT NULL,
|
|
`prompt` TEXT NOT NULL,
|
|
`status` ENUM('QUEUED', 'RUNNING', 'SUCCEEDED', 'FAILED') NOT NULL DEFAULT 'RUNNING',
|
|
`model` VARCHAR(64) NOT NULL DEFAULT 'gpt-image-2',
|
|
`size` VARCHAR(32) NOT NULL DEFAULT '1024x1024',
|
|
`started_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
`ended_at` DATETIME(3) NULL,
|
|
`duration_ms` INT NULL,
|
|
`image_url` VARCHAR(2048) NULL,
|
|
`image_base64` LONGTEXT NULL,
|
|
`image_mime_type` VARCHAR(191) NULL,
|
|
`revised_prompt` TEXT NULL,
|
|
`upstream_response` JSON NULL,
|
|
`error_message` TEXT NULL,
|
|
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
|
`deleted_at` DATETIME(3) NULL,
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `generation_stats` (
|
|
`id` VARCHAR(32) NOT NULL,
|
|
`total_requests` INT NOT NULL DEFAULT 0,
|
|
`success_requests` INT NOT NULL DEFAULT 0,
|
|
`failed_requests` INT NOT NULL DEFAULT 0,
|
|
`queued_requests` INT NOT NULL DEFAULT 0,
|
|
`running_requests` INT NOT NULL DEFAULT 0,
|
|
`total_images` INT NOT NULL DEFAULT 0,
|
|
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX `image_generations_user_id_created_at_idx` ON `image_generations`(`user_id`, `created_at`);
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX `image_generations_status_idx` ON `image_generations`(`status`);
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX `image_generations_deleted_at_idx` ON `image_generations`(`deleted_at`);
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `image_generations`
|
|
ADD CONSTRAINT `image_generations_user_id_fkey`
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`)
|
|
ON DELETE CASCADE ON UPDATE CASCADE;
|