Files
huntingclubroster/migrations/004_tenants.sql
T

36 lines
1.9 KiB
SQL

CREATE TABLE IF NOT EXISTS club_invitations (
invitation_serial BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
club_serial BIGINT UNSIGNED NOT NULL,
invite_email VARCHAR(100) NOT NULL,
membership_role ENUM('member','administrator') NOT NULL DEFAULT 'member',
invited_by BIGINT UNSIGNED NOT NULL,
invitation_status ENUM('pending','accepted','revoked') NOT NULL DEFAULT 'pending',
expires_at DATETIME NOT NULL,
sent_at DATETIME NOT NULL,
accepted_at DATETIME NULL,
UNIQUE KEY (club_serial,invite_email),
FOREIGN KEY (club_serial) REFERENCES clubs(club_serial) ON DELETE RESTRICT,
FOREIGN KEY (invited_by) REFERENCES users(user_serial) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS club_tickets (
ticket_serial BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
club_serial BIGINT UNSIGNED NOT NULL,
user_serial BIGINT UNSIGNED NOT NULL,
subject VARCHAR(200) NOT NULL,
ticket_status ENUM('open','closed') NOT NULL DEFAULT 'open',
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX (club_serial,user_serial,ticket_serial),
FOREIGN KEY (club_serial) REFERENCES clubs(club_serial) ON DELETE RESTRICT,
FOREIGN KEY (user_serial) REFERENCES users(user_serial) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS club_ticket_messages (
message_serial BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
ticket_serial BIGINT UNSIGNED NOT NULL,
author_serial BIGINT UNSIGNED NOT NULL,
message_text TEXT NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (ticket_serial) REFERENCES club_tickets(ticket_serial) ON DELETE RESTRICT,
FOREIGN KEY (author_serial) REFERENCES users(user_serial) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;