From 1368e21af1a44b775ef032e4e4bfc609371c770d Mon Sep 17 00:00:00 2001 From: Hanzo_dev <2002samudiojohan@gmail.com> Date: Wed, 25 Feb 2026 23:48:33 -0500 Subject: [PATCH] fix: enum stop_type required uppercase values in supabase --- frontend/src/components/BusStopEditor.vue | 8 ++--- frontend/src/types/index.ts | 2 +- frontend/src/views/AdminBusStops.vue | 3 ++ frontend/src/views/AdminRoutes.vue | 7 ++-- frontend/test-enum.mjs | 41 +++++++++++++++++++++++ 5 files changed, 53 insertions(+), 8 deletions(-) create mode 100644 frontend/test-enum.mjs diff --git a/frontend/src/components/BusStopEditor.vue b/frontend/src/components/BusStopEditor.vue index 7ee781d..2fe87d5 100644 --- a/frontend/src/components/BusStopEditor.vue +++ b/frontend/src/components/BusStopEditor.vue @@ -12,9 +12,9 @@
@@ -79,7 +79,7 @@ const formData = ref({ name: '', latitude: 8.4284, // Default (David) longitude: -82.4309, - stop_type: 'regular', + stop_type: 'REGULAR' as import('@/types').StopType, has_shelter: false, has_seating: false, is_accessible: false, diff --git a/frontend/src/types/index.ts b/frontend/src/types/index.ts index 8c54206..8d12955 100644 --- a/frontend/src/types/index.ts +++ b/frontend/src/types/index.ts @@ -1,7 +1,7 @@ /** Type definitions for the SIBU transportation app */ export type RouteStatus = 'ACTIVE' | 'INACTIVE' | 'MAINTENANCE' -export type StopType = 'terminal' | 'regular' | 'express_only' +export type StopType = 'TERMINAL' | 'REGULAR' | 'EXPRESS_ONLY' export type ScheduleType = 'weekday' | 'weekend' | 'holiday' export interface Route { diff --git a/frontend/src/views/AdminBusStops.vue b/frontend/src/views/AdminBusStops.vue index 1b6ff8d..98d16b6 100644 --- a/frontend/src/views/AdminBusStops.vue +++ b/frontend/src/views/AdminBusStops.vue @@ -75,6 +75,9 @@ async function loadStops() { function translateType(type: string) { const types: Record = { + 'REGULAR': 'Regular', + 'TERMINAL': 'Terminal', + 'EXPRESS_ONLY': 'Solo Expreso', 'regular': 'Regular', 'terminal': 'Terminal', 'express_only': 'Solo Expreso' diff --git a/frontend/src/views/AdminRoutes.vue b/frontend/src/views/AdminRoutes.vue index 723f19b..924ed26 100644 --- a/frontend/src/views/AdminRoutes.vue +++ b/frontend/src/views/AdminRoutes.vue @@ -264,7 +264,7 @@ async function initRouteMap() { name, latitude: lat, longitude: lng, - stop_type: 'regular', + stop_type: 'REGULAR', has_shelter: false, has_seating: false, is_accessible: true, @@ -274,8 +274,9 @@ async function initRouteMap() { allStops.value = await busStopsService.getAllBusStops() // Add to current route await addExistingStop(newStop.id) - } catch (err) { - alert('Error creando parada') + } catch (err: any) { + console.error("Error creating map stop:", err) + alert('Error creando parada: ' + (err.message || 'Error desconocido')) } } }) diff --git a/frontend/test-enum.mjs b/frontend/test-enum.mjs new file mode 100644 index 0000000..f82ba5c --- /dev/null +++ b/frontend/test-enum.mjs @@ -0,0 +1,41 @@ +import { createClient } from '@supabase/supabase-js' + +const SUPABASE_URL = 'https://bjgixlugjzsccazdfmph.supabase.co' +const SUPABASE_ANON_KEY = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImJqZ2l4bHVnanpzY2NhemRmbXBoIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzIwNjQyMTAsImV4cCI6MjA4NzY0MDIxMH0.untLQoPi4yUr3cPnxo23wYSlg6xnNK0daKu9UHmFTp8' +const sb = createClient(SUPABASE_URL, SUPABASE_ANON_KEY) + +async function test() { + await sb.auth.signInWithPassword({ email: 'admin@sibu.com', password: 'Admin123!' }) + + console.log("Testing REGULAR"); + const { data: stopData, error: stopErr } = await sb.from('bus_stops').insert([{ + name: 'test enum', + latitude: 0, + longitude: 0, + stop_type: 'REGULAR', + has_shelter: false, + has_seating: false, + is_accessible: true, + city: 'David' + }]).select() + + console.log("REGULAR test:", stopErr ? stopErr.message : "Success") + + if (!stopErr && stopData) { + await sb.from('bus_stops').delete().eq('id', stopData[0].id) + } + + console.log("Testing regular"); + const { error: err2 } = await sb.from('bus_stops').insert([{ + name: 'test enum', + latitude: 0, + longitude: 0, + stop_type: 'regular', + has_shelter: false, + has_seating: false, + is_accessible: true, + city: 'David' + }]).select() + console.log("regular test:", err2 ? err2.message : "Success") +} +test()