diff --git a/apps/api/src/maps/road-refinement.controller.ts b/apps/api/src/maps/road-refinement.controller.ts index 8ee9b7b..f0af2f2 100644 --- a/apps/api/src/maps/road-refinement.controller.ts +++ b/apps/api/src/maps/road-refinement.controller.ts @@ -199,7 +199,7 @@ export class RoadRefinementController { @ApiParam({ name: 'id', description: 'Candidate UUID' }) async approveCandidate(@Param('id') id: string) { try { - // 1. Ensure approved_roads table exists + // 1. Ensure approved_roads table exists and all required columns exist await this.dataSource.query(` CREATE TABLE IF NOT EXISTS approved_roads ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), @@ -214,6 +214,15 @@ export class RoadRefinementController { end_node BIGINT, approved_at TIMESTAMP DEFAULT NOW() ); + ALTER TABLE approved_roads ADD COLUMN IF NOT EXISTS candidate_id UUID; + ALTER TABLE approved_roads ADD COLUMN IF NOT EXISTS name VARCHAR(255); + ALTER TABLE approved_roads ADD COLUMN IF NOT EXISTS highway VARCHAR(32); + ALTER TABLE approved_roads ADD COLUMN IF NOT EXISTS confidence FLOAT; + ALTER TABLE approved_roads ADD COLUMN IF NOT EXISTS "uniqueDriverCount" INT DEFAULT 1; + ALTER TABLE approved_roads ADD COLUMN IF NOT EXISTS oneway SMALLINT DEFAULT 0; + ALTER TABLE approved_roads ADD COLUMN IF NOT EXISTS start_node BIGINT; + ALTER TABLE approved_roads ADD COLUMN IF NOT EXISTS end_node BIGINT; + ALTER TABLE approved_roads ADD COLUMN IF NOT EXISTS approved_at TIMESTAMP DEFAULT NOW(); CREATE INDEX IF NOT EXISTS approved_roads_geom_idx ON approved_roads USING GIST(geometry); CREATE UNIQUE INDEX IF NOT EXISTS approved_roads_cand_uidx ON approved_roads(candidate_id) WHERE candidate_id IS NOT NULL; `);