mirror of
https://github.com/Traceworks2023/nxtgauge-backend-rust.git
synced 2026-06-11 23:10:56 +00:00
28 lines
1.1 KiB
MySQL
28 lines
1.1 KiB
MySQL
|
|
-- Create the leads table (also called "requirements" in some contexts)
|
||
|
|
-- Required by RequirementRepository in crates/db/src/models/requirement.rs
|
||
|
|
CREATE TABLE IF NOT EXISTS leads (
|
||
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||
|
|
profession_key VARCHAR(100) NOT NULL,
|
||
|
|
title VARCHAR(255) NOT NULL,
|
||
|
|
description TEXT NOT NULL DEFAULT '',
|
||
|
|
location VARCHAR(255) NOT NULL DEFAULT '',
|
||
|
|
budget_inr INT,
|
||
|
|
required_date DATE,
|
||
|
|
extra_data_json JSONB,
|
||
|
|
status VARCHAR(50) NOT NULL DEFAULT 'DRAFT',
|
||
|
|
rejection_reason TEXT,
|
||
|
|
request_count INT NOT NULL DEFAULT 0,
|
||
|
|
accepted_count INT NOT NULL DEFAULT 0,
|
||
|
|
expires_at TIMESTAMPTZ,
|
||
|
|
approved_at TIMESTAMPTZ,
|
||
|
|
approved_by UUID,
|
||
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||
|
|
created_by_user_id UUID,
|
||
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_leads_status ON leads(status);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_leads_profession_key ON leads(profession_key);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_leads_created_by_user_id ON leads(created_by_user_id);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_leads_status_profession ON leads(status, profession_key);
|