-- 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);

