diff --git a/supabase/migrations/004_bidding_system.sql b/supabase/migrations/004_bidding_system.sql new file mode 100644 index 0000000..778cae9 --- /dev/null +++ b/supabase/migrations/004_bidding_system.sql @@ -0,0 +1,26 @@ +-- ============================================================ +-- Migration 004: Bidding & Negotiation System +-- ============================================================ + +-- Bids table for freight offers +CREATE TABLE bids ( + id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), + load_id TEXT REFERENCES loads(id) ON DELETE CASCADE, + driver_id TEXT REFERENCES portal_users(id) ON DELETE CASCADE, + bid_amount NUMERIC(12,2) NOT NULL, + notes TEXT, + status TEXT DEFAULT 'pending' CHECK (status IN ('pending', 'accepted', 'rejected', 'counter_offer')), + created_at TIMESTAMPTZ DEFAULT NOW(), + updated_at TIMESTAMPTZ DEFAULT NOW() +); + +-- Indexes for fast lookup of bids per load +CREATE INDEX idx_bids_load_id ON bids(load_id); +CREATE INDEX idx_bids_driver_id ON bids(driver_id); +CREATE INDEX idx_bids_status ON bids(status); + +-- ============================================================ +-- Audit triggers for Bids +-- ============================================================ +CREATE TRIGGER trg_bids_updated_at BEFORE UPDATE ON bids + FOR EACH ROW EXECUTE FUNCTION update_updated_at();