-- DDL
CREATE TABLE categories (
category_id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL
);
CREATE TABLE suppliers (
supplier_id SERIAL PRIMARY KEY,
name VARCHAR(150) NOT NULL,
phone VARCHAR(20),
email VARCHAR(100)
);
CREATE TABLE products (
product_id SERIAL PRIMARY KEY,
name VARCHAR(150) NOT NULL,
price DECIMAL(10,2) NOT NULL,
unit VARCHAR(20) NOT NULL,
stock_quantity INT DEFAULT 0,
category_id INT REFERENCES categories(category_id),
supplier_id INT REFERENCES suppliers(supplier_id)
);
CREATE TABLE employees (
employee_id SERIAL PRIMARY KEY,
full_name VARCHAR(150) NOT NULL,
position VARCHAR(50) NOT NULL,
phone VARCHAR(20)
);
CREATE TABLE sales (
sale_id SERIAL PRIMARY KEY,
sale_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
employee_id INT REFERENCES employees(employee_id),
total_amount DECIMAL(10,2) DEFAULT 0
);
CREATE TABLE sale_items (
sale_item_id SERIAL PRIMARY KEY,
sale_id INT REFERENCES sales(sale_id) ON DELETE CASCADE,
product_id INT REFERENCES products(product_id),
quantity INT NOT NULL,
price_at_sale DECIMAL(10,2) NOT NULL
);