42 lines
1.2 KiB
SQL
42 lines
1.2 KiB
SQL
CREATE TABLE workers
|
||
(
|
||
id SERIAL PRIMARY KEY,
|
||
telegram_id BIGINT UNIQUE NOT NULL,
|
||
name VARCHAR NOT NULL,
|
||
email VARCHAR(50),
|
||
phone_number VARCHAR(20) NOT NULL,
|
||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
updated_at TIMESTAMP
|
||
);
|
||
|
||
CREATE TYPE status AS ENUM ('Выполнено','В процессе','Создано','Ожидание комплектующих');
|
||
|
||
CREATE TABLE orders
|
||
(
|
||
id SERIAL PRIMARY KEY,
|
||
name VARCHAR,
|
||
worker_id BIGINT REFERENCES workers (telegram_id),
|
||
status_id status DEFAULT 'Создано',
|
||
counterparty VARCHAR(50),
|
||
customer VARCHAR NOT NULL,
|
||
commencement_work DATE,
|
||
end_work DATE,
|
||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
description VARCHAR DEFAULT NULL
|
||
);
|
||
|
||
CREATE TABLE components
|
||
(
|
||
id SERIAL PRIMARY KEY,
|
||
name VARCHAR NOT NULL,
|
||
description VARCHAR NULL
|
||
);
|
||
|
||
CREATE TABLE order_components
|
||
(
|
||
id SERIAL PRIMARY KEY,
|
||
order_id INTEGER REFERENCES orders (id),
|
||
component_id INTEGER REFERENCES components (id),
|
||
quantity INTEGER DEFAULT 1
|
||
);
|