mirror of
https://github.com/kristoferssolo/Mafia-the-Game-Description.git
synced 2025-10-21 19:50:35 +00:00
feat(sql): add sql create scripts
This commit is contained in:
parent
0deb634fa4
commit
589ac77b8c
227
src/sql/Mafia.sql
Normal file
227
src/sql/Mafia.sql
Normal file
@ -0,0 +1,227 @@
|
|||||||
|
CREATE TABLE
|
||||||
|
"LomasDarbiba" (
|
||||||
|
"id" SERIAL8 PRIMARY KEY NOT NULL,
|
||||||
|
"nosaukums" VARCHAR(255) UNIQUE NOT NULL,
|
||||||
|
"ir_nekavejoties" BOOL DEFAULT FALSE NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
"LomasTrukums" (
|
||||||
|
"id" SERIAL8 PRIMARY KEY NOT NULL,
|
||||||
|
"nosaukums" VARCHAR(255) UNIQUE NOT NULL,
|
||||||
|
"apraksts" TEXT DEFAULT '' NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
"Attels" (
|
||||||
|
"id" SERIAL8 PRIMARY KEY NOT NULL,
|
||||||
|
"datnes_adrese" VARCHAR(255) UNIQUE,
|
||||||
|
"pievienosanas_laiks" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
"AbonementaCena" (
|
||||||
|
"id" SERIAL8 PRIMARY KEY NOT NULL,
|
||||||
|
"cena" DECIMAL(16, 2) DEFAULT 0 NOT NULL CHECK (cena >= 0),
|
||||||
|
"pievienosanas_laiks" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
"aktivizesanas_laiks" TIMESTAMP NOT NULL CHECK (aktivizesanas_laiks >= pievienosanas_laiks)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
"ParolesAtjaunosana" (
|
||||||
|
"id" SERIAL8 PRIMARY KEY NOT NULL,
|
||||||
|
"markieris" VARCHAR(255) NOT NULL, -- TODO:
|
||||||
|
"deriguma_termins" TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
"EpastaApstiprinajums" (
|
||||||
|
"id" SERIAL8 PRIMARY KEY NOT NULL,
|
||||||
|
"markieris" VARCHAR(255) NOT NULL, -- TODO:
|
||||||
|
"deriguma_termins" TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
"SpelesLoma" (
|
||||||
|
"id" SERIAL8 PRIMARY KEY NOT NULL,
|
||||||
|
"nosaukums" VARCHAR(255) UNIQUE NOT NULL,
|
||||||
|
"apraksts" TEXT DEFAULT '' NOT NULL,
|
||||||
|
"max_speletaju_skaits" INT DEFAULT 1 CHECK ("max_speletaju_skaits" > 0) NOT NULL,
|
||||||
|
"attels" INT8,
|
||||||
|
FOREIGN KEY ("attels") REFERENCES "Attels" ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
"Statuss" (
|
||||||
|
"id" SERIAL8 PRIMARY KEY NOT NULL,
|
||||||
|
"teksts" VARCHAR(255) UNIQUE NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
"Lietotajs" (
|
||||||
|
"id" SERIAL8 PRIMARY KEY NOT NULL,
|
||||||
|
"segvards" VARCHAR(255) UNIQUE NOT NULL,
|
||||||
|
"epasts" VARCHAR(255) UNIQUE NOT NULL,
|
||||||
|
"parole" VARCHAR(255) NOT NULL,
|
||||||
|
"vards" VARCHAR(255),
|
||||||
|
"uzvards" VARCHAR(255),
|
||||||
|
"dzimsanas_datums" DATE,
|
||||||
|
"bio_info" TEXT DEFAULT '',
|
||||||
|
"izveidosanas_laiks" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
"konta_stavoklis" INT8 NOT NULL,
|
||||||
|
"attels" INT8,
|
||||||
|
"epasta_apstiprinajums" INT8 UNIQUE,
|
||||||
|
"paroles_atjaunosana" INT8 UNIQUE,
|
||||||
|
FOREIGN KEY ("konta_stavoklis") REFERENCES "Statuss" ("id"),
|
||||||
|
FOREIGN KEY ("attels") REFERENCES "Attels" ("id"),
|
||||||
|
FOREIGN KEY ("epasta_apstiprinajums") REFERENCES "EpastaApstiprinajums" ("id"),
|
||||||
|
FOREIGN KEY ("paroles_atjaunosana") REFERENCES "ParolesAtjaunosana" ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
"SpelesUzstadijums" (
|
||||||
|
"id" SERIAL8 PRIMARY KEY NOT NULL,
|
||||||
|
"nosaukums" VARCHAR(255) UNIQUE NOT NULL,
|
||||||
|
"apraksts" TEXT DEFAULT '' NOT NULL,
|
||||||
|
"ir_pamata" BOOL DEFAULT FALSE NOT NULL,
|
||||||
|
"ir_aktivs" BOOL DEFAULT TRUE NOT NULL,
|
||||||
|
"izveidosanas_laiks" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
"autors" INT8 NOT NULL,
|
||||||
|
FOREIGN KEY ("autors") REFERENCES "Lietotajs" ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
"SpelesIstaba" (
|
||||||
|
"id" SERIAL8 PRIMARY KEY NOT NULL,
|
||||||
|
"speles_saksanas_laiks" TIMESTAMP,
|
||||||
|
"stavoklis" INT8 NOT NULL,
|
||||||
|
"piekluves_kods" CHAR(6) UNIQUE,
|
||||||
|
"pedejas_stadijas_izmaina" INT8,
|
||||||
|
"vai_rada_miruso_lomu" BOOL DEFAULT FALSE NOT NULL,
|
||||||
|
"izveidosanas_laiks" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
"speles_uzstadijums" INT8 NOT NULL,
|
||||||
|
FOREIGN KEY ("stavoklis") REFERENCES "Statuss" ("id"),
|
||||||
|
FOREIGN KEY ("pedejas_stadijas_izmaina") REFERENCES "Statuss" ("id"),
|
||||||
|
FOREIGN KEY ("speles_uzstadijums") REFERENCES "SpelesUzstadijums" ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
"SpelesNotikums" (
|
||||||
|
"id" SERIAL8 PRIMARY KEY NOT NULL,
|
||||||
|
"nakts_pk" INT2 DEFAULT 0 NOT NULL,
|
||||||
|
"veids" VARCHAR(255),
|
||||||
|
"ir_redzams" BOOL DEFAULT FALSE NOT NULL,
|
||||||
|
"izveidosanas_laiks" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
"Speletajs" (
|
||||||
|
"id" SERIAL8 PRIMARY KEY NOT NULL,
|
||||||
|
"ir_noslepkavots" BOOL DEFAULT FALSE NOT NULL,
|
||||||
|
"ir_izbalsots" BOOL DEFAULT FALSE NOT NULL,
|
||||||
|
"ir_izslegts" BOOL DEFAULT FALSE NOT NULL,
|
||||||
|
"redz_mafijas_sakarus" BOOL DEFAULT FALSE NOT NULL,
|
||||||
|
"ir_aktivs" BOOL DEFAULT TRUE NOT NULL,
|
||||||
|
"redz_sakarus" BOOL DEFAULT TRUE NOT NULL,
|
||||||
|
"speles_istaba" INT8,
|
||||||
|
"speles_loma" INT8 NOT NULL,
|
||||||
|
FOREIGN KEY ("speles_istaba") REFERENCES "SpelesIstaba" ("id"),
|
||||||
|
FOREIGN KEY ("speles_loma") REFERENCES "SpelesLoma" ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
"MaksasAbonements" (
|
||||||
|
"id" SERIAL8 PRIMARY KEY NOT NULL,
|
||||||
|
"stripe_id" VARCHAR(255) UNIQUE NOT NULL,
|
||||||
|
"stavoklis" INT8 NOT NULL,
|
||||||
|
"sakuma_laiks" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||||
|
"termins" INTERVAL NOT NULL,
|
||||||
|
"atteikuma_laiks" TIMESTAMP,
|
||||||
|
"lietotajs" INT8 NOT NULL,
|
||||||
|
"abonementa_cena" INT8 NOT NULL,
|
||||||
|
FOREIGN KEY ("stavoklis") REFERENCES "Statuss" ("id"),
|
||||||
|
FOREIGN KEY ("lietotajs") REFERENCES "Lietotajs" ("id"),
|
||||||
|
FOREIGN KEY ("abonementa_cena") REFERENCES "AbonementaCena" ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
"Iszina" (
|
||||||
|
"id" SERIAL8 PRIMARY KEY NOT NULL,
|
||||||
|
"teksts" TEXT NOT NULL,
|
||||||
|
"ir_mafijas_iszina" BOOL DEFAULT FALSE NOT NULL,
|
||||||
|
"ir_izmainita" BOOL DEFAULT FALSE NOT NULL,
|
||||||
|
"autors" INT8 NOT NULL,
|
||||||
|
FOREIGN KEY ("autors") REFERENCES "Speletajs" ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
"SpeletajaDarbiba" (
|
||||||
|
"speletajs" INT8 NOT NULL,
|
||||||
|
"lomas_darbiba" INT8 NOT NULL,
|
||||||
|
PRIMARY KEY ("speletajs", "lomas_darbiba"),
|
||||||
|
FOREIGN KEY ("speletajs") REFERENCES "Speletajs" ("id"),
|
||||||
|
FOREIGN KEY ("lomas_darbiba") REFERENCES "LomasDarbiba" ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
"SpeletajsIzraisaNotikumu" (
|
||||||
|
"speletajs" INT8 NOT NULL,
|
||||||
|
"speles_notikums" INT8 NOT NULL,
|
||||||
|
PRIMARY KEY ("speletajs", "speles_notikums"),
|
||||||
|
FOREIGN KEY ("speletajs") REFERENCES "Speletajs" ("id"),
|
||||||
|
FOREIGN KEY ("speles_notikums") REFERENCES "SpelesNotikums" ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
"SpelesUzstatijumuLomas" (
|
||||||
|
"speles_uzstadijums" INT8 NOT NULL,
|
||||||
|
"speles_loma" INT8 NOT NULL,
|
||||||
|
PRIMARY KEY ("speles_uzstadijums", "speles_loma"),
|
||||||
|
FOREIGN KEY ("speles_uzstadijums") REFERENCES "SpelesUzstadijums" ("id"),
|
||||||
|
FOREIGN KEY ("speles_loma") REFERENCES "SpelesLoma" ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
"LomasAtlautieNotikumi" (
|
||||||
|
"speles_loma" INT8 NOT NULL,
|
||||||
|
"speles_notikums" INT8 NOT NULL,
|
||||||
|
PRIMARY KEY ("speles_loma", "speles_notikums"),
|
||||||
|
FOREIGN KEY ("speles_loma") REFERENCES "SpelesLoma" ("id"),
|
||||||
|
FOREIGN KEY ("speles_notikums") REFERENCES "SpelesNotikums" ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
"SpelesLomasTrukums" (
|
||||||
|
"speles_loma" INT8 NOT NULL,
|
||||||
|
"lomas_trukums" INT8 NOT NULL,
|
||||||
|
PRIMARY KEY ("speles_loma", "lomas_trukums"),
|
||||||
|
FOREIGN KEY ("speles_loma") REFERENCES "SpelesLoma" ("id"),
|
||||||
|
FOREIGN KEY ("lomas_trukums") REFERENCES "LomasTrukums" ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
"SpelesLomasDarbibas" (
|
||||||
|
"speles_loma" INT8 NOT NULL,
|
||||||
|
"lomas_darbiba" INT8 NOT NULL,
|
||||||
|
PRIMARY KEY ("speles_loma", "lomas_darbiba"),
|
||||||
|
FOREIGN KEY ("speles_loma") REFERENCES "SpelesLoma" ("id"),
|
||||||
|
FOREIGN KEY ("lomas_darbiba") REFERENCES "LomasDarbiba" ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
"Atbilde" (
|
||||||
|
"id" SERIAL8 PRIMARY KEY NOT NULL,
|
||||||
|
"raksta" INT8 NOT NULL,
|
||||||
|
"atbild" INT8 NOT NULL,
|
||||||
|
FOREIGN KEY ("raksta") REFERENCES "Iszina" ("id"),
|
||||||
|
FOREIGN KEY ("atbild") REFERENCES "Iszina" ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE
|
||||||
|
"NotikumsIetekmeSpeletaju" (
|
||||||
|
"speletajs" INT8 NOT NULL,
|
||||||
|
"speles_notikums" INT8 NOT NULL,
|
||||||
|
PRIMARY KEY ("speletajs", "speles_notikums"),
|
||||||
|
FOREIGN KEY ("speletajs") REFERENCES "Speletajs" ("id"),
|
||||||
|
FOREIGN KEY ("speles_notikums") REFERENCES "SpelesNotikums" ("id")
|
||||||
|
);
|
||||||
11
src/sql/docker-compose.yml
Normal file
11
src/sql/docker-compose.yml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
version: "3"
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: postgres:latest
|
||||||
|
container_name: Mafia
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: mafia
|
||||||
|
POSTGRES_PASSWORD: password
|
||||||
|
POSTGRES_DB: Mafia
|
||||||
|
ports:
|
||||||
|
- "5432:5432"
|
||||||
Loading…
Reference in New Issue
Block a user