25 lines
1.0 KiB
SQL
25 lines
1.0 KiB
SQL
-- Mowing plans for plan/execute workflow
|
|
CREATE TABLE IF NOT EXISTS mowing_plans (
|
|
id SERIAL PRIMARY KEY,
|
|
user_id INTEGER REFERENCES users(id) ON DELETE CASCADE,
|
|
property_id INTEGER REFERENCES properties(id) ON DELETE CASCADE,
|
|
equipment_id INTEGER REFERENCES user_equipment(id),
|
|
planned_date DATE NOT NULL,
|
|
cut_height_inches DECIMAL(4,2),
|
|
direction VARCHAR(20) CHECK (direction IN ('N_S','E_W','NE_SW','NW_SE','CIRCULAR')),
|
|
status VARCHAR(20) DEFAULT 'planned' CHECK (status IN ('planned','in_progress','completed','archived')),
|
|
notes TEXT,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS mowing_plan_sections (
|
|
id SERIAL PRIMARY KEY,
|
|
plan_id INTEGER REFERENCES mowing_plans(id) ON DELETE CASCADE,
|
|
lawn_section_id INTEGER REFERENCES lawn_sections(id) ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_mowing_plans_user_id ON mowing_plans(user_id);
|
|
CREATE INDEX IF NOT EXISTS idx_mowing_plan_sections_plan_id ON mowing_plan_sections(plan_id);
|
|
|