server and ERD

Former-commit-id: b069d94d494a1eeaa180e237608b466004cfb158
This commit is contained in:
Ben
2022-02-05 15:54:58 +00:00
parent 2e717cac1f
commit db1bc79534
7 changed files with 172 additions and 59 deletions

4
.env
View File

@@ -9,7 +9,7 @@ LOG_PATH=logs.log
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_DB=LegoLog
DATABASE_DB_DEV=LegoLogDev
DATABASE_DB=legolog
DATABASE_DB_DEV=legologdev
DATABASE_USER=postgres
DATABASE_PASSWORD=postgres

111
db/.sql Normal file
View File

@@ -0,0 +1,111 @@
CREATE TABLE "public".catagory (
id integer NOT NULL ,
name varchar(100) ,
CONSTRAINT catagory_pkey PRIMARY KEY ( id )
);
CREATE TABLE "public".colour_type (
id integer NOT NULL ,
name varchar(64) ,
CONSTRAINT colour_type_pkey PRIMARY KEY ( id )
);
CREATE TABLE "public".lego_brick_colour (
id integer NOT NULL ,
name varchar(100) ,
hexrgb varchar(6) NOT NULL ,
col_type integer ,
CONSTRAINT lego_brick_colour_pkey PRIMARY KEY ( id )
);
CREATE TABLE "public".lego_set (
id varchar(50) NOT NULL ,
catagory integer ,
name varchar(100) ,
date_released timestamp ,
dimensions_x numeric ,
dimensions_y numeric ,
dimensions_z numeric ,
CONSTRAINT lego_set_pkey PRIMARY KEY ( id )
);
CREATE TABLE "public".lego_set_inventory (
id varchar(50) NOT NULL ,
stock integer NOT NULL ,
price numeric NOT NULL ,
demand_factor numeric NOT NULL ,
backorder boolean ,
backorder_stock integer ,
last_updated timestamp NOT NULL ,
CONSTRAINT lego_set_inventory_pkey PRIMARY KEY ( id )
);
CREATE TABLE "public".lego_set_price_history (
id integer NOT NULL ,
set_id varchar(50) NOT NULL ,
price_point numeric NOT NULL ,
date_point timestamp NOT NULL ,
CONSTRAINT lego_set_price_history_pkey PRIMARY KEY ( id )
);
CREATE TABLE "public".lego_brick (
id varchar(50) NOT NULL ,
name varchar NOT NULL ,
colour integer ,
catagory integer ,
weight numeric ,
dimensions_x integer ,
dimensions_y integer ,
dimensions_z integer ,
date_from timestamp ,
date_to timestamp ,
CONSTRAINT lego_brick_pkey PRIMARY KEY ( id )
);
CREATE TABLE "public".lego_brick_inventory (
id varchar(50) NOT NULL ,
stock integer NOT NULL ,
price numeric NOT NULL ,
demand_factor numeric NOT NULL ,
backorder boolean ,
backorder_stock integer ,
last_updated timestamp NOT NULL ,
CONSTRAINT lego_brick_inventory_pkey PRIMARY KEY ( id )
);
CREATE TABLE "public".lego_brick_price_history (
id integer NOT NULL ,
brick_id varchar(50) NOT NULL ,
price_point numeric NOT NULL ,
date_point timestamp NOT NULL ,
CONSTRAINT lego_brick_price_history_pkey PRIMARY KEY ( id )
);
CREATE TABLE "public".set_descriptor (
id varchar(50) NOT NULL ,
set_id varchar(50) NOT NULL ,
brick_id varchar(50) NOT NULL ,
amount integer ,
CONSTRAINT set_descriptor_pkey PRIMARY KEY ( id )
);
ALTER TABLE "public".lego_brick ADD CONSTRAINT lego_brick_catagory_fkey FOREIGN KEY ( catagory ) REFERENCES "public".catagory( id );
ALTER TABLE "public".lego_brick ADD CONSTRAINT lego_brick_colour_fkey FOREIGN KEY ( colour ) REFERENCES "public".lego_brick_colour( id );
ALTER TABLE "public".lego_brick_colour ADD CONSTRAINT lego_brick_colour_col_type_fkey FOREIGN KEY ( col_type ) REFERENCES "public".colour_type( id );
ALTER TABLE "public".lego_brick_inventory ADD CONSTRAINT lego_brick_inventory_id_fkey FOREIGN KEY ( id ) REFERENCES "public".lego_brick( id );
ALTER TABLE "public".lego_brick_price_history ADD CONSTRAINT lego_brick_price_history_brick_id_fkey FOREIGN KEY ( brick_id ) REFERENCES "public".lego_brick( id );
ALTER TABLE "public".lego_set ADD CONSTRAINT lego_set_catagory_fkey FOREIGN KEY ( catagory ) REFERENCES "public".catagory( id );
ALTER TABLE "public".lego_set_inventory ADD CONSTRAINT lego_set_inventory_id_fkey FOREIGN KEY ( id ) REFERENCES "public".lego_set( id );
ALTER TABLE "public".lego_set_price_history ADD CONSTRAINT lego_set_price_history_set_id_fkey FOREIGN KEY ( set_id ) REFERENCES "public".lego_set( id );
ALTER TABLE "public".set_descriptor ADD CONSTRAINT set_descriptor_brick_id_fkey FOREIGN KEY ( brick_id ) REFERENCES "public".lego_brick( id );
ALTER TABLE "public".set_descriptor ADD CONSTRAINT set_descriptor_set_id_fkey FOREIGN KEY ( set_id ) REFERENCES "public".lego_set( id );

BIN
db/ERD.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

View File

@@ -1,91 +1,92 @@
CREATE TABLE IF NOT EXISTS LegoBrickPriceHistory (
id INT NOT NULL PRIMARY KEY AUTOINCREMENT,
brick_id INT NOT NULL,
price_point DECIMAL NOT NULL,
date_point DATETIME NOT NULL,
FOREIGN KEY ( id ) REFERENCES LegoBrick( id )
);
CREATE TABLE IF NOT EXISTS LegoSetPriceHistory (
id INT NOT NULL PRIMARY KEY AUTOINCREMENT,
set_id INT NOT NULL,
price_point DECIMAL NOT NULL,
date_point DATETIME NOT NULL,
FOREIGN KEY ( id ) REFERENCES LegoSet( id )
);
CREATE TABLE IF NOT EXISTS LegoBrickInventory (
id VARCHAR (50) NOT NULL PRIMARY KEY,
stock INT NOT NULL,
price DECIMAL NOT NULL,
demand_factor DECIMAL NOT NULL,
backorder BOOLEAN,
backorder_stock INT,
last_updated DATETIME NOT NULL
FOREIGN KEY ( id ) REFERENCES LegoBrick( id )
);
CREATE TABLE IF NOT EXISTS LegoSetInventory (
id VARCHAR (50) NOT NULL PRIMARY KEY,
stock INT NOT NULL,
price DECIMAL NOT NULL,
demand_factor DECIMAL NOT NULL,
backorder BOOLEAN,
backorder_stock INT,
last_updated DATETIME NOT NULL
FOREIGN KEY ( id ) REFERENCES LegoSet( id )
);
CREATE TABLE IF NOT EXISTS Catagory (
CREATE TABLE IF NOT EXISTS catagory (
id INT NOT NULL PRIMARY KEY,
name VARCHAR (100)
);
CREATE TABLE IF NOT EXISTS ColourType (
CREATE TABLE IF NOT EXISTS colour_type (
id INT NOT NULL PRIMARY KEY,
name VARCHAR (64)
);
CREATE TABLE IF NOT EXISTS LegoBrickColour (
CREATE TABLE IF NOT EXISTS lego_brick_colour (
id INT NOT NULL PRIMARY KEY,
name VARCHAR (100),
hexrgb VARCHAR (6) NOT NULL,
col_type INT,
FOREIGN KEY ( col_type ) REFERENCES ColourType( id )
FOREIGN KEY ( col_type ) REFERENCES colour_type( id )
);
CREATE TABLE IF NOT EXISTS LegoSet (
CREATE TABLE IF NOT EXISTS lego_set (
id VARCHAR (50) NOT NULL PRIMARY KEY,
catagory INT,
name VARCHAR (100),
date_released DATETIME,
date_released TIMESTAMP WITHOUT TIME ZONE,
dimensions_x DECIMAL,
dimensions_y DECIMAL,
dimensions_z DECIMAL,
FOREIGN KEY ( catagory ) REFERENCES Catagory( id ),
FOREIGN KEY ( id ) REFERENCES LegoSetInventory( id )
FOREIGN KEY ( catagory ) REFERENCES catagory( id )
);
CREATE TABLE IF NOT EXISTS LegoBrick (
CREATE TABLE IF NOT EXISTS lego_brick (
id VARCHAR (50) NOT NULL PRIMARY KEY,
name TEXT(100) NOT NULL,
name VARCHAR NOT NULL,
colour INT,
catagory INT,
weight DECIMAL,
dimensions_x INT,
dimensions_y INT,
dimensions_z INT,
date_from DATETIME,
date_to DATETIME,
FOREIGN KEY ( colour ) REFERENCES LegoBrickColour( id ),
FOREIGN KEY ( catagory ) REFERENCES Catagory( id )
date_from TIMESTAMP WITHOUT TIME ZONE,
date_to TIMESTAMP WITHOUT TIME ZONE,
FOREIGN KEY ( colour ) REFERENCES lego_brick_colour( id ),
FOREIGN KEY ( catagory ) REFERENCES catagory( id )
);
CREATE TABLE IF NOT EXISTS SetDescriptor (
CREATE TABLE IF NOT EXISTS lego_brick_price_history (
id INT NOT NULL PRIMARY KEY,
brick_id VARCHAR (50) NOT NULL,
price_point DECIMAL NOT NULL,
date_point TIMESTAMP WITHOUT TIME ZONE NOT NULL,
FOREIGN KEY ( brick_id ) REFERENCES lego_brick( id )
);
CREATE TABLE IF NOT EXISTS lego_set_price_history (
id INT NOT NULL PRIMARY KEY,
set_id VARCHAR (50) NOT NULL,
price_point DECIMAL NOT NULL,
date_point TIMESTAMP WITHOUT TIME ZONE NOT NULL,
FOREIGN KEY ( set_id ) REFERENCES lego_set( id )
);
CREATE TABLE IF NOT EXISTS lego_brick_inventory (
id VARCHAR (50) NOT NULL,
stock INT NOT NULL,
price DECIMAL NOT NULL,
demand_factor DECIMAL NOT NULL,
backorder BOOLEAN,
backorder_stock INT,
last_updated TIMESTAMP WITHOUT TIME ZONE NOT NULL,
PRIMARY KEY ( id ),
FOREIGN KEY ( id ) REFERENCES lego_brick( id )
);
CREATE TABLE IF NOT EXISTS lego_set_inventory (
id VARCHAR (50) NOT NULL,
stock INT NOT NULL,
price DECIMAL NOT NULL,
demand_factor DECIMAL NOT NULL,
backorder BOOLEAN,
backorder_stock INT,
last_updated TIMESTAMP WITHOUT TIME ZONE NOT NULL,
PRIMARY KEY ( id ),
FOREIGN KEY ( id ) REFERENCES lego_set( id )
);
CREATE TABLE IF NOT EXISTS set_descriptor (
id VARCHAR (50) NOT NULL PRIMARY KEY,
set_id VARCHAR (50) NOT NULL,
brick_id VARCHAR (50) NOT NULL,
amount INT,
FOREIGN KEY ( set_id ) REFERENCES LegoSet( id ),
FOREIGN KEY ( brick_id ) REFERENCES LegoBrick( id )
FOREIGN KEY ( set_id ) REFERENCES lego_set( id ),
FOREIGN KEY ( brick_id ) REFERENCES lego_brick( id )
);

View File

@@ -1,5 +1,8 @@
# DotEnv
Items suffixed with `_DEV` will automatically replace the non-dev
version of the same item internally
```config
NODE_ENV=dev/prod

View File

@@ -7,7 +7,6 @@ async function main() {
Logger.init();
Config.load();
Server.load();
Server.listen(process.env.PORT);
}

View File

@@ -21,6 +21,5 @@ function listen(port) {
module.exports = {
app,
load,
listen
};