minecraft-server-invites/internal/store/database.sql
2022-07-23 12:57:55 +01:00

54 lines
1.4 KiB
SQL

-- noinspection SqlNoDataSourceInspectionForFile
CREATE TABLE `invites` (
`token` TEXT NOT NULL,
`creator` TEXT NOT NULL,
`server` TEXT NOT NULL,
`uses` INT NOT NULL,
`unlimited` INTEGER NOT NULL,
PRIMARY KEY (`token`),
FOREIGN KEY (`server`) REFERENCES servers(`id`),
FOREIGN KEY (`creator`) REFERENCES users(`id`)
) STRICT;
CREATE TABLE `servers` (
`id` TEXT NOT NULL,
`name` TEXT NOT NULL,
`address` TEXT NOT NULL,
`rcon_address` TEXT NOT NULL,
`rcon_password` TEXT NOT NULL,
`owner` TEXT NOT NULL,
PRIMARY KEY (`id`)
) STRICT;
CREATE TABLE `users` (
`id` TEXT NOT NULL,
`token` TEXT NOT NULL,
`display_name` TEXT NOT NULL,
`refresh_token` TEXT NOT NULL,
`token_expiry` TEXT NOT NULL,
PRIMARY KEY (`id`)
) STRICT;
CREATE TABLE `sessions` (
`token` TEXT NOT NULL,
`uid` TEXT NOT NULL,
`expiry` TEXT NOT NULL,
PRIMARY KEY (`token`),
FOREIGN KEY (`uid`) REFERENCES users(`id`)
) STRICT;
CREATE TABLE `invite_log` (
`entry_id` TEXT NOT NULL,
`invite` TEXT NOT NULL,
`user` TEXT NOT NULL,
PRIMARY KEY (`entry_id`),
FOREIGN KEY (`invite`) REFERENCES invites(`token`)
) STRICT;
CREATE TABLE `oauth_states` (
`state_id` TEXT NOT NULL,
`origin` TEXT NOT NULL,
`state` TEXT NOT NULL,
PRIMARY KEY (`state_id`)
) STRICT;