-- Watering plans for guiding sprinkler placement and timing
CREATE TABLE IF NOT EXISTS watering_plans (
  id SERIAL PRIMARY KEY,
  user_id INTEGER REFERENCES users(id) ON DELETE CASCADE,
  property_id INTEGER REFERENCES properties(id) ON DELETE CASCADE,
  name VARCHAR(255) NOT NULL,
  notes TEXT,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE IF NOT EXISTS watering_plan_points (
  id SERIAL PRIMARY KEY,
  plan_id INTEGER REFERENCES watering_plans(id) ON DELETE CASCADE,
  sequence INTEGER NOT NULL,
  lat DECIMAL(10,8) NOT NULL,
  lng DECIMAL(11,8) NOT NULL,
  duration_minutes INTEGER DEFAULT 0,
  sprinkler_mount VARCHAR(20) CHECK (sprinkler_mount IN ('in_ground','above_ground')),
  sprinkler_head_type VARCHAR(30) CHECK (sprinkler_head_type IN ('rotor_impact','oscillating_fan','spray_fixed','drip')),
  sprinkler_gpm DECIMAL(8,2),
  sprinkler_throw_feet DECIMAL(8,2),
  sprinkler_degrees INTEGER,
  sprinkler_length_feet DECIMAL(8,2),
  sprinkler_width_feet DECIMAL(8,2),
  coverage_sqft DECIMAL(10,2),
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE INDEX IF NOT EXISTS idx_watering_plans_user ON watering_plans(user_id);
CREATE INDEX IF NOT EXISTS idx_watering_points_plan ON watering_plan_points(plan_id);

SELECT 'Watering plans tables created' as migration_status;

