| 1 | CREATE OR REPLACE FUNCTION public.rebuild_coverage_after_site_change()
|
|---|
| 2 | RETURNS trigger
|
|---|
| 3 | LANGUAGE plpgsql
|
|---|
| 4 | AS $$
|
|---|
| 5 | BEGIN
|
|---|
| 6 | IF OLD.latitude IS DISTINCT FROM NEW.latitude
|
|---|
| 7 | OR OLD.longitude IS DISTINCT FROM NEW.longitude THEN
|
|---|
| 8 | UPDATE public.coverage_zones cz
|
|---|
| 9 | SET coverage_radius_m = cz.coverage_radius_m
|
|---|
| 10 | FROM public.tower_sectors ts
|
|---|
| 11 | JOIN public.cell_towers ct ON ct.tower_id = ts.tower_id
|
|---|
| 12 | WHERE cz.sector_id = ts.sector_id
|
|---|
| 13 | AND ct.site_id = NEW.site_id;
|
|---|
| 14 | END IF;
|
|---|
| 15 |
|
|---|
| 16 | RETURN NEW;
|
|---|
| 17 | END;
|
|---|
| 18 | $$;
|
|---|