92 lines
2.1 KiB
PL/PgSQL
92 lines
2.1 KiB
PL/PgSQL
BEGIN;
|
|
|
|
CREATE TYPE master_spec AS ENUM ('работа1', 'работа2', 'и тд');
|
|
|
|
CREATE TABLE client (
|
|
id UUID PRIMARY KEY,
|
|
surname TEXT NOT NULL,
|
|
Name TEXT NOT NULL,
|
|
lastname TEXT,
|
|
avatar TEXT,
|
|
bday DATE,
|
|
login TEXT,
|
|
password TEXT,
|
|
email TEXT,
|
|
phone TEXT
|
|
);
|
|
|
|
CREATE TABLE master (
|
|
id UUID PRIMARY KEY,
|
|
surname TEXT NOT NULL,
|
|
name TEXT NOT NULL,
|
|
lastname TEXT,
|
|
avatar TEXT,
|
|
bday TEXT,
|
|
spec MASTER_SPEC NOT NULL,
|
|
login TEXT,
|
|
password TEXT,
|
|
email TEXT,
|
|
phone TEXT
|
|
);
|
|
|
|
CREATE TABLE service (
|
|
id UUID PRIMARY KEY,
|
|
spec MASTER_SPEC,
|
|
name TEXT NOT NULL,
|
|
description TEXT
|
|
);
|
|
|
|
CREATE TABLE part (
|
|
id UUID PRIMARY KEY,
|
|
name TEXT NOT NULL,
|
|
description TEXT,
|
|
stock INT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE vehicle (
|
|
id UUID PRIMARY KEY,
|
|
owner_id UUID NOT NULL REFERENCES client (id) ON DELETE CASCADE,
|
|
gos_num TEXT NOT NULL,
|
|
mark TEXT,
|
|
model TEXT,
|
|
vin TEXT
|
|
);
|
|
|
|
CREATE TABLE "order" (
|
|
id UUID PRIMARY KEY,
|
|
vehicle_id UUID NOT NULL REFERENCES vehicle (id) ON DELETE CASCADE,
|
|
date_time TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE part_list (
|
|
id UUID PRIMARY KEY,
|
|
order_id UUID NOT NULL REFERENCES "order" (id) ON DELETE CASCADE,
|
|
part_id UUID NOT NULL REFERENCES part (id) ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE TABLE service_list (
|
|
id UUID PRIMARY KEY,
|
|
order_id UUID NOT NULL REFERENCES "order" (id) ON DELETE CASCADE,
|
|
service_id UUID NOT NULL REFERENCES service (id) ON DELETE CASCADE,
|
|
master_id UUID NOT NULL REFERENCES master (id) ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE TABLE receipt (
|
|
id UUID PRIMARY KEY,
|
|
order_id UUID NOT NULL REFERENCES "order" (id) ON DELETE CASCADE,
|
|
status BOOL NOT NULL
|
|
);
|
|
|
|
CREATE TABLE service_cart (
|
|
id UUID PRIMARY KEY,
|
|
user_id UUID NOT NULL REFERENCES client (id) ON DELETE CASCADE,
|
|
service_id UUID NOT NULL REFERENCES service (id) ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE TABLE part_cart (
|
|
id UUID PRIMARY KEY,
|
|
user_id UUID NOT NULL REFERENCES client (id) ON DELETE CASCADE,
|
|
part_id UUID NOT NULL REFERENCES part (id) ON DELETE CASCADE
|
|
);
|
|
|
|
END; |