46 lines
1.4 KiB
SQL
46 lines
1.4 KiB
SQL
CREATE TABLE IF NOT EXISTS person (
|
|
id SERIAL PRIMARY KEY,
|
|
name VARCHAR(200) NOT NULL,
|
|
phone VARCHAR(100),
|
|
email VARCHAR(200),
|
|
address VARCHAR(255)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS vehicle (
|
|
id SERIAL PRIMARY KEY,
|
|
person_id INTEGER NOT NULL REFERENCES person(id) ON DELETE CASCADE,
|
|
brand VARCHAR(120) NOT NULL,
|
|
model VARCHAR(120) NOT NULL,
|
|
plate VARCHAR(50) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS service_item (
|
|
id SERIAL PRIMARY KEY,
|
|
title VARCHAR(200) NOT NULL,
|
|
price NUMERIC(10,2) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS work_order (
|
|
id SERIAL PRIMARY KEY,
|
|
vehicle_id INTEGER NOT NULL REFERENCES vehicle(id) ON DELETE CASCADE,
|
|
note TEXT,
|
|
created_at TIMESTAMP NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS work_order_item (
|
|
id SERIAL PRIMARY KEY,
|
|
work_order_id INTEGER NOT NULL REFERENCES work_order(id) ON DELETE CASCADE,
|
|
service_item_id INTEGER NOT NULL REFERENCES service_item(id),
|
|
quantity INTEGER NOT NULL
|
|
);
|
|
|
|
INSERT INTO service_item(title, price) VALUES
|
|
('Ölwechsel', 89.00),
|
|
('Bremsflüssigkeit wechseln', 59.00),
|
|
('Reifen wechseln (pro Stück)', 18.00),
|
|
('Klimaanlagen-Service', 99.00),
|
|
('Bremsbeläge erneuern vorne', 149.00),
|
|
('Zündkerzen austauschen', 79.00),
|
|
('Diagnose / Fehlerspeicher auslesen', 25.00),
|
|
('Arbeitszeit pro Stunde', 75.00)
|
|
ON CONFLICT DO NOTHING;
|