CREATE OR REPLACE FUNCTION public.rebuild_coverage_after_tower_move()
RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
    IF OLD.site_id IS DISTINCT FROM NEW.site_id THEN
        UPDATE public.coverage_zones cz
           SET coverage_radius_m = cz.coverage_radius_m
          FROM public.tower_sectors ts
         WHERE cz.sector_id = ts.sector_id
           AND ts.tower_id = NEW.tower_id;
    END IF;

    RETURN NEW;
END;
$$;
