BEGIN; CREATE TYPE master_spec AS ENUM ('работа1', 'работа2', 'и тд'); CREATE TABLE "user" ( 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 "user" (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 "user" (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 "user" (id) ON DELETE CASCADE, part_id UUID NOT NULL REFERENCES part (id) ON DELETE CASCADE ); END;