fix: use UUID for user IDs to match Supabase auth.uid()

This commit is contained in:
Alan Alonso
2026-05-23 00:52:00 -06:00
parent e6eb466c14
commit 327852e468

View File

@@ -1,8 +1,8 @@
-- ── Esquema Supabase PostgreSQL (migrado de SQLite) ──────────────
-- Tabla users (Persona A)
-- Tabla users (Persona A) — ID como UUID para Supabase Auth
CREATE TABLE IF NOT EXISTS users (
id BIGSERIAL PRIMARY KEY,
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email TEXT UNIQUE NOT NULL,
phone TEXT,
password_hash TEXT NOT NULL,
@@ -13,7 +13,7 @@ CREATE TABLE IF NOT EXISTS users (
-- Tabla addresses (Persona A)
CREATE TABLE IF NOT EXISTS addresses (
id BIGSERIAL PRIMARY KEY,
user_id BIGINT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
alias TEXT,
lat DOUBLE PRECISION NOT NULL,
lng DOUBLE PRECISION NOT NULL,
@@ -23,7 +23,7 @@ CREATE TABLE IF NOT EXISTS addresses (
-- Tabla notification_preferences (Persona A)
CREATE TABLE IF NOT EXISTS notification_preferences (
user_id BIGINT PRIMARY KEY REFERENCES users(id) ON DELETE CASCADE,
user_id UUID PRIMARY KEY REFERENCES users(id) ON DELETE CASCADE,
notify_proximity BOOLEAN DEFAULT TRUE,
notify_breakdown BOOLEAN DEFAULT TRUE,
notify_delay BOOLEAN DEFAULT TRUE,
@@ -91,15 +91,15 @@ ALTER TABLE notificaciones ENABLE ROW LEVEL SECURITY;
-- Policy: users solo ven su propio perfil
CREATE POLICY "Users can view own profile" ON users
FOR SELECT USING (auth.uid()::TEXT = id::TEXT);
FOR SELECT USING (auth.uid() = id);
-- Policy: addresses solo de usuario autenticado
CREATE POLICY "Users can view own addresses" ON addresses
FOR SELECT USING (user_id = auth.uid()::BIGINT);
FOR SELECT USING (user_id = auth.uid());
-- Policy: notification_preferences solo de usuario autenticado
CREATE POLICY "Users can view own preferences" ON notification_preferences
FOR SELECT USING (user_id = auth.uid()::BIGINT);
FOR SELECT USING (user_id = auth.uid());
-- ── Seed data ──────────────────────────────────────────────────
INSERT INTO rutas (id, nombre, turno) VALUES