-- Supplier Purchase Orders CREATE TABLE IF NOT EXISTS supplier_pos ( id SERIAL PRIMARY KEY, po_number VARCHAR(30) NOT NULL UNIQUE, supplier_id INTEGER NOT NULL REFERENCES suppliers(id) ON DELETE CASCADE, planning_id INTEGER REFERENCES planning_history(id) ON DELETE SET NULL, order_date DATE NOT NULL DEFAULT CURRENT_DATE, status VARCHAR(20) NOT NULL DEFAULT 'draft', notes TEXT, total_value NUMERIC(12,2) NOT NULL DEFAULT 0, created_at TIMESTAMP NOT NULL DEFAULT NOW() ); -- Supplier Purchase Order line items CREATE TABLE IF NOT EXISTS supplier_po_items ( id SERIAL PRIMARY KEY, supplier_po_id INTEGER NOT NULL REFERENCES supplier_pos(id) ON DELETE CASCADE, component_id INTEGER REFERENCES components(id) ON DELETE SET NULL, part_number VARCHAR(100), component_name VARCHAR(255), supplier_part_number VARCHAR(100), quantity INTEGER NOT NULL DEFAULT 0, unit_price NUMERIC(12,4) NOT NULL DEFAULT 0, line_total NUMERIC(12,2) NOT NULL DEFAULT 0, created_at TIMESTAMP NOT NULL DEFAULT NOW() ); CREATE INDEX IF NOT EXISTS idx_supplier_pos_supplier ON supplier_pos(supplier_id); CREATE INDEX IF NOT EXISTS idx_supplier_pos_planning ON supplier_pos(planning_id); CREATE INDEX IF NOT EXISTS idx_supplier_po_items_po ON supplier_po_items(supplier_po_id);