bmc_hub/migrations/017_opportunity_lines.sql
Christian f059cb6c95 feat: Add product search endpoint and enhance opportunity management
- Implemented a new endpoint for searching webshop products with filters for visibility and configuration.
- Enhanced the webshop frontend to include a customer search feature for improved user experience.
- Added opportunity line items management with CRUD operations and comments functionality.
- Created database migrations for opportunity line items and comments, including necessary triggers and indexes.
2026-01-28 14:37:47 +01:00

32 lines
1.2 KiB
PL/PgSQL

-- =========================================================================
-- Migration 017: Opportunity Line Items
-- =========================================================================
CREATE TABLE IF NOT EXISTS pipeline_opportunity_lines (
id SERIAL PRIMARY KEY,
opportunity_id INTEGER NOT NULL REFERENCES pipeline_opportunities(id) ON DELETE CASCADE,
product_number VARCHAR(100),
name VARCHAR(255) NOT NULL,
description TEXT,
quantity INTEGER NOT NULL DEFAULT 1,
unit_price NUMERIC(12, 2) NOT NULL DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX IF NOT EXISTS idx_pipeline_opportunity_lines_opportunity_id ON pipeline_opportunity_lines(opportunity_id);
CREATE INDEX IF NOT EXISTS idx_pipeline_opportunity_lines_product_number ON pipeline_opportunity_lines(product_number);
CREATE OR REPLACE FUNCTION update_pipeline_opportunity_lines_updated_at()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = CURRENT_TIMESTAMP;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER update_pipeline_opportunity_lines_updated_at
BEFORE UPDATE ON pipeline_opportunity_lines
FOR EACH ROW
EXECUTE FUNCTION update_pipeline_opportunity_lines_updated_at();