37372-vm/db/migrations/001_initial_schema.sql
Flatlogic Bot e78bca6aa4 V.2
2026-01-12 01:02:42 +00:00

50 lines
1.6 KiB
SQL

CREATE TABLE IF NOT EXISTS `users` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(255) NOT NULL,
`email` VARCHAR(255) NOT NULL UNIQUE,
`password` VARCHAR(255) NOT NULL,
`stripe_customer_id` VARCHAR(255),
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS `songs` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`user_id` INT NOT NULL,
`title` VARCHAR(255) NOT NULL,
`artist` VARCHAR(255),
`file_path` VARCHAR(255) NOT NULL,
`uploaded_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS `certificates` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`song_id` INT NOT NULL,
`certificate_hash` VARCHAR(255) NOT NULL UNIQUE,
`file_path` VARCHAR(255) NOT NULL,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (`song_id`) REFERENCES `songs`(`id`) ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS `subscriptions` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`user_id` INT NOT NULL,
`stripe_subscription_id` VARCHAR(255) NOT NULL UNIQUE,
`plan` VARCHAR(50) NOT NULL,
`status` VARCHAR(50) NOT NULL,
`start_date` TIMESTAMP NOT NULL,
`end_date` TIMESTAMP,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS `daily_uploads` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`user_id` INT NOT NULL,
`upload_date` DATE NOT NULL,
`upload_count` INT NOT NULL DEFAULT 0,
UNIQUE KEY `user_date` (`user_id`, `upload_date`),
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE
);