latest changes before server transfer
Some checks failed
Deploy to Firebase Hosting on merge / build_and_deploy (push) Has been cancelled

This commit is contained in:
Christian Medina
2025-08-05 15:42:36 -04:00
parent bb60182164
commit d0e8d36c33
1273 changed files with 143295 additions and 1312 deletions

52
setup.sql Normal file
View File

@@ -0,0 +1,52 @@
-- SQL script to create tables for authentication and session management
-- Create the users table
CREATE TABLE IF NOT EXISTS `users` (
`id` VARCHAR(255) NOT NULL PRIMARY KEY,
`provider` VARCHAR(50) NOT NULL,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
-- Create the sessions table
CREATE TABLE IF NOT EXISTS `sessions` (
`id` VARCHAR(255) NOT NULL PRIMARY KEY,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
-- Create the session_users table to link sessions and users
CREATE TABLE IF NOT EXISTS `session_users` (
`session_id` VARCHAR(255) NOT NULL,
`user_id` VARCHAR(255) NOT NULL,
`provider` VARCHAR(50) NOT NULL,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`session_id`, `user_id`),
FOREIGN KEY (`session_id`) REFERENCES `sessions` (`id`) ON DELETE CASCADE,
FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
);
-- Create the votes table
CREATE TABLE IF NOT EXISTS `votes` (
`session_id` VARCHAR(255) NOT NULL,
`user_id` VARCHAR(255) NOT NULL,
`vote` INT NOT NULL,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`session_id`, `user_id`),
FOREIGN KEY (`session_id`) REFERENCES `sessions` (`id`) ON DELETE CASCADE,
FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
);
-- Index for faster lookups on session_users
CREATE INDEX `idx_session_users_session_id` ON `session_users`(`session_id`);
CREATE INDEX `idx_session_users_user_id` ON `session_users`(`user_id`);
-- Index for votes table
CREATE INDEX `idx_votes_session_id` ON `votes`(`session_id`);
CREATE INDEX `idx_votes_user_id` ON `votes`(`user_id`);
-- Adjustments for existing queries (if needed)
-- Example: Use INSERT IGNORE to prevent duplicate key errors
-- This is for adding users or session users, which is already handled in the route logic