57 lines
1.6 KiB
SQL
57 lines
1.6 KiB
SQL
CREATE TABLE ElectionInformation(
|
|
ElectionCycle varchar(30) not null unique,
|
|
ThreadId bigint unsigned not null,
|
|
CouncilVoteMsgId bigint unsigned,
|
|
HighCouncilVoteMsgId bigint unsigned,
|
|
CouncilNominationMsgId bigint unsigned,
|
|
HighCouncilNominationMsgId bigint unsigned,
|
|
PRIMARY KEY (ElectionCycle)
|
|
);
|
|
|
|
CREATE TABLE CouncilMembers(
|
|
ElectionCycle varchar(30) not null,
|
|
MemberId bigint unsigned not null,
|
|
SpeechMsgId bigint unsigned not null,
|
|
Elected boolean DEFAULT false,
|
|
DiscordManager boolean DEFAULT false,
|
|
ClanLeader boolean DEFAULT false,
|
|
DiscordManagerSpeechId bigint unsigned,
|
|
ClanLeaderSpeechId bigint unsigned,
|
|
FOREIGN KEY (ElectionCycle) REFERENCES ElectionInformation(ElectionCycle),
|
|
PRIMARY KEY (ElectionCycle, MemberId)
|
|
);
|
|
|
|
CREATE TABLE Votes(
|
|
ElectionCycle varchar(30) not null,
|
|
VoterId bigint unsigned not null,
|
|
VotedForId bigint unsigned,
|
|
Type varchar(14) not null DEFAULT 'council' check("Type" in ('council', 'discordmanager', 'clanleader')),
|
|
FOREIGN KEY (ElectionCycle) REFERENCES ElectionInformation(ElectionCycle),
|
|
PRIMARY KEY (ElectionCycle, VoterId, Type)
|
|
);
|
|
|
|
CREATE TABLE UserBirthday (
|
|
UserId bigint unsigned not null,
|
|
Birthday varchar(5) not null,
|
|
PRIMARY KEY (UserId)
|
|
);
|
|
|
|
CREATE TABLE Presences (
|
|
Id integer PRIMARY KEY,
|
|
Presence varchar(100) not null
|
|
);
|
|
|
|
CREATE TABLE EventPoints (
|
|
Cycle varchar(30) not null,
|
|
UserId varchar(32) not null,
|
|
DiscordMember boolean not null,
|
|
Points int unsigned DEFAULT 0,
|
|
PRIMARY KEY (Cycle, UserId)
|
|
);
|
|
|
|
CREATE TABLE Messages (
|
|
Path varchar(100) PRIMARY KEY,
|
|
Id bigint unsigned not null
|
|
);
|
|
|