mirror of
https://github.com/marcogll/AnchorOS.git
synced 2026-03-15 22:24:34 +00:00
- Migrated database schema from db/migrations to supabase/migrations - Added Supabase CLI configuration (config.toml, .gitignore) - Added kiosk role and amenities tables for touch kiosks - Added notification system for artist alerts - Added seed data with test locations and staff - Removed old migration scripts and documentation - Updated tasks_mg.md with current setup Features: - 2 locations: ANCHOR:23 - Via KLAVA and TEST - Kiosk role for touch screen check-in/booking - Amenities: coffee, cocktails, mocktails for clients - Notifications when client arrives - 1 staff + 4 artists + 1 kiosk per location - Services: hair, nails, makeup, lashes
394 lines
21 KiB
SQL
394 lines
21 KiB
SQL
-- ============================================
|
|
-- SEED DE DATOS - SALONOS (IDEMPOTENTE)
|
|
-- Ejecutar múltiples veces sin errores
|
|
-- ============================================
|
|
|
|
-- 1. Crear Locations (solo si no existen)
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT 1 FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA') THEN
|
|
INSERT INTO locations (name, timezone, address, phone, is_active)
|
|
VALUES
|
|
('ANCHOR:23 - Via KLAVA', 'America/Monterrey', 'Blvd. Moctezuma 2370, Los Pinos 2do y 3er Sector, 25204 Saltillo, Coah.', '+52 81 1234 5678', true);
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM locations WHERE name = 'TEST - Salón Principal') THEN
|
|
INSERT INTO locations (name, timezone, address, phone, is_active)
|
|
VALUES
|
|
('TEST - Salón Principal', 'America/Monterrey', 'Av. Masaryk 123, Polanco, Ciudad de México', '+52 55 2345 6789', true);
|
|
END IF;
|
|
END $$;
|
|
|
|
-- 2. Crear Resources (solo si no existen)
|
|
DO $$
|
|
BEGIN
|
|
-- Para ANCHOR:23 - Via KLAVA
|
|
FOR i IN 1..3 LOOP
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM resources r
|
|
JOIN locations l ON l.id = r.location_id
|
|
WHERE l.name = 'ANCHOR:23 - Via KLAVA' AND r.name = 'Sillón Pedicure ' || i
|
|
) THEN
|
|
INSERT INTO resources (location_id, name, type, capacity, is_active)
|
|
SELECT id, 'Sillón Pedicure ' || i, 'station', 1, true
|
|
FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA';
|
|
END IF;
|
|
END LOOP;
|
|
|
|
FOR i IN 1..4 LOOP
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM resources r
|
|
JOIN locations l ON l.id = r.location_id
|
|
WHERE l.name = 'ANCHOR:23 - Via KLAVA' AND r.name = 'Estación Manicure ' || i
|
|
) THEN
|
|
INSERT INTO resources (location_id, name, type, capacity, is_active)
|
|
SELECT id, 'Estación Manicure ' || i, 'station', 1, true
|
|
FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA';
|
|
END IF;
|
|
END LOOP;
|
|
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM resources r
|
|
JOIN locations l ON l.id = r.location_id
|
|
WHERE l.name = 'ANCHOR:23 - Via KLAVA' AND r.name = 'Estación Maquillaje'
|
|
) THEN
|
|
INSERT INTO resources (location_id, name, type, capacity, is_active)
|
|
SELECT id, 'Estación Maquillaje', 'station', 1, true
|
|
FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA';
|
|
END IF;
|
|
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM resources r
|
|
JOIN locations l ON l.id = r.location_id
|
|
WHERE l.name = 'ANCHOR:23 - Via KLAVA' AND r.name = 'Cama Pestañas'
|
|
) THEN
|
|
INSERT INTO resources (location_id, name, type, capacity, is_active)
|
|
SELECT id, 'Cama Pestañas', 'station', 1, true
|
|
FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA';
|
|
END IF;
|
|
|
|
-- Para TEST - Salón Principal
|
|
FOR i IN 1..3 LOOP
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM resources r
|
|
JOIN locations l ON l.id = r.location_id
|
|
WHERE l.name = 'TEST - Salón Principal' AND r.name = 'Sillón Pedicure ' || i
|
|
) THEN
|
|
INSERT INTO resources (location_id, name, type, capacity, is_active)
|
|
SELECT id, 'Sillón Pedicure ' || i, 'station', 1, true
|
|
FROM locations WHERE name = 'TEST - Salón Principal';
|
|
END IF;
|
|
END LOOP;
|
|
|
|
FOR i IN 1..4 LOOP
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM resources r
|
|
JOIN locations l ON l.id = r.location_id
|
|
WHERE l.name = 'TEST - Salón Principal' AND r.name = 'Estación Manicure ' || i
|
|
) THEN
|
|
INSERT INTO resources (location_id, name, type, capacity, is_active)
|
|
SELECT id, 'Estación Manicure ' || i, 'station', 1, true
|
|
FROM locations WHERE name = 'TEST - Salón Principal';
|
|
END IF;
|
|
END LOOP;
|
|
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM resources r
|
|
JOIN locations l ON l.id = r.location_id
|
|
WHERE l.name = 'TEST - Salón Principal' AND r.name = 'Estación Maquillaje'
|
|
) THEN
|
|
INSERT INTO resources (location_id, name, type, capacity, is_active)
|
|
SELECT id, 'Estación Maquillaje', 'station', 1, true
|
|
FROM locations WHERE name = 'TEST - Salón Principal';
|
|
END IF;
|
|
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM resources r
|
|
JOIN locations l ON l.id = r.location_id
|
|
WHERE l.name = 'TEST - Salón Principal' AND r.name = 'Cama Pestañas'
|
|
) THEN
|
|
INSERT INTO resources (location_id, name, type, capacity, is_active)
|
|
SELECT id, 'Cama Pestañas', 'station', 1, true
|
|
FROM locations WHERE name = 'TEST - Salón Principal';
|
|
END IF;
|
|
END $$;
|
|
|
|
-- 3. Crear Staff (solo si no existen por display_name)
|
|
DO $$
|
|
BEGIN
|
|
-- Admin Principal
|
|
IF NOT EXISTS (SELECT 1 FROM staff WHERE display_name = 'Admin Principal') THEN
|
|
INSERT INTO staff (user_id, location_id, role, display_name, phone, is_active)
|
|
SELECT gen_random_uuid(), id, 'admin', 'Admin Principal', '+52 55 1111 2222', true
|
|
FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA';
|
|
END IF;
|
|
|
|
-- ANCHOR:23 - Via KLAVA: 1 Staff + 4 Artists + 1 Kiosk
|
|
IF NOT EXISTS (SELECT 1 FROM staff WHERE display_name = 'Staff KLAVA Coordinadora') THEN
|
|
INSERT INTO staff (user_id, location_id, role, display_name, phone, is_active)
|
|
SELECT gen_random_uuid(), id, 'staff', 'Staff KLAVA Coordinadora', '+52 55 3333 4444', true
|
|
FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA';
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM staff WHERE display_name = 'Kiosk KLAVA Principal') THEN
|
|
INSERT INTO staff (user_id, location_id, role, display_name, phone, is_active)
|
|
SELECT gen_random_uuid(), id, 'kiosk', 'Kiosk KLAVA Principal', '+52 55 3333 0000', true
|
|
FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA';
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM staff WHERE display_name = 'Artist KLAVA María García') THEN
|
|
INSERT INTO staff (user_id, location_id, role, display_name, phone, is_active)
|
|
SELECT gen_random_uuid(), id, 'artist', 'Artist KLAVA María García', '+52 55 4444 5555', true
|
|
FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA';
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM staff WHERE display_name = 'Artist KLAVA Ana Rodríguez') THEN
|
|
INSERT INTO staff (user_id, location_id, role, display_name, phone, is_active)
|
|
SELECT gen_random_uuid(), id, 'artist', 'Artist KLAVA Ana Rodríguez', '+52 55 5555 6666', true
|
|
FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA';
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM staff WHERE display_name = 'Artist KLAVA Sofía López') THEN
|
|
INSERT INTO staff (user_id, location_id, role, display_name, phone, is_active)
|
|
SELECT gen_random_uuid(), id, 'artist', 'Artist KLAVA Sofía López', '+52 55 5555 7777', true
|
|
FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA';
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM staff WHERE display_name = 'Artist KLAVA Valentina Ruiz') THEN
|
|
INSERT INTO staff (user_id, location_id, role, display_name, phone, is_active)
|
|
SELECT gen_random_uuid(), id, 'artist', 'Artist KLAVA Valentina Ruiz', '+52 55 5555 8888', true
|
|
FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA';
|
|
END IF;
|
|
|
|
-- TEST - Salón Principal: 1 Staff + 4 Artists + 1 Kiosk
|
|
IF NOT EXISTS (SELECT 1 FROM staff WHERE display_name = 'Staff Test Coordinador') THEN
|
|
INSERT INTO staff (user_id, location_id, role, display_name, phone, is_active)
|
|
SELECT gen_random_uuid(), id, 'staff', 'Staff Test Coordinador', '+52 55 6666 1111', true
|
|
FROM locations WHERE name = 'TEST - Salón Principal';
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM staff WHERE display_name = 'Kiosk Test Principal') THEN
|
|
INSERT INTO staff (user_id, location_id, role, display_name, phone, is_active)
|
|
SELECT gen_random_uuid(), id, 'kiosk', 'Kiosk Test Principal', '+52 55 6666 0000', true
|
|
FROM locations WHERE name = 'TEST - Salón Principal';
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM staff WHERE display_name = 'Artist Test Carla López') THEN
|
|
INSERT INTO staff (user_id, location_id, role, display_name, phone, is_active)
|
|
SELECT gen_random_uuid(), id, 'artist', 'Artist Test Carla López', '+52 55 7777 8888', true
|
|
FROM locations WHERE name = 'TEST - Salón Principal';
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM staff WHERE display_name = 'Artist Test Daniela García') THEN
|
|
INSERT INTO staff (user_id, location_id, role, display_name, phone, is_active)
|
|
SELECT gen_random_uuid(), id, 'artist', 'Artist Test Daniela García', '+52 55 7777 9999', true
|
|
FROM locations WHERE name = 'TEST - Salón Principal';
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM staff WHERE display_name = 'Artist Test Andrea Martínez') THEN
|
|
INSERT INTO staff (user_id, location_id, role, display_name, phone, is_active)
|
|
SELECT gen_random_uuid(), id, 'artist', 'Artist Test Andrea Martínez', '+52 55 7777 0000', true
|
|
FROM locations WHERE name = 'TEST - Salón Principal';
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM staff WHERE display_name = 'Artist Test Fernanda Torres') THEN
|
|
INSERT INTO staff (user_id, location_id, role, display_name, phone, is_active)
|
|
SELECT gen_random_uuid(), id, 'artist', 'Artist Test Fernanda Torres', '+52 55 7777 1111', true
|
|
FROM locations WHERE name = 'TEST - Salón Principal';
|
|
END IF;
|
|
END $$;
|
|
|
|
-- 4. Crear Services (solo si no existen)
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT 1 FROM services WHERE name = 'Corte y Estilizado') THEN
|
|
INSERT INTO services (name, description, duration_minutes, base_price, requires_dual_artist, premium_fee_enabled, is_active)
|
|
VALUES ('Corte y Estilizado', 'Corte de cabello profesional con lavado y estilizado', 60, 500.00, false, false, true);
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM services WHERE name = 'Color Completo') THEN
|
|
INSERT INTO services (name, description, duration_minutes, base_price, requires_dual_artist, premium_fee_enabled, is_active)
|
|
VALUES ('Color Completo', 'Tinte completo con protección capilar', 120, 1200.00, false, true, true);
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM services WHERE name = 'Balayage Premium') THEN
|
|
INSERT INTO services (name, description, duration_minutes, base_price, requires_dual_artist, premium_fee_enabled, is_active)
|
|
VALUES ('Balayage Premium', 'Técnica de balayage con productos premium', 180, 2000.00, true, true, true);
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM services WHERE name = 'Tratamiento Kératina') THEN
|
|
INSERT INTO services (name, description, duration_minutes, base_price, requires_dual_artist, premium_fee_enabled, is_active)
|
|
VALUES ('Tratamiento Kératina', 'Tratamiento de kératina para cabello dañado', 90, 1500.00, false, false, true);
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM services WHERE name = 'Peinado Evento') THEN
|
|
INSERT INTO services (name, description, duration_minutes, base_price, requires_dual_artist, premium_fee_enabled, is_active)
|
|
VALUES ('Peinado Evento', 'Peinado para eventos especiales', 45, 800.00, false, true, true);
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM services WHERE name = 'Pedicure Spa') THEN
|
|
INSERT INTO services (name, description, duration_minutes, base_price, requires_dual_artist, premium_fee_enabled, is_active)
|
|
VALUES ('Pedicure Spa', 'Pedicure completo con exfoliación y mascarilla', 60, 450.00, false, false, true);
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM services WHERE name = 'Manicure Gel') THEN
|
|
INSERT INTO services (name, description, duration_minutes, base_price, requires_dual_artist, premium_fee_enabled, is_active)
|
|
VALUES ('Manicure Gel', 'Manicure con esmalte de gel duradero', 45, 350.00, false, true, true);
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM services WHERE name = 'Uñas Acrílicas') THEN
|
|
INSERT INTO services (name, description, duration_minutes, base_price, requires_dual_artist, premium_fee_enabled, is_active)
|
|
VALUES ('Uñas Acrílicas', 'Aplicación de uñas acrílicas con diseño', 120, 800.00, false, true, true);
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM services WHERE name = 'Maquillaje Profesional') THEN
|
|
INSERT INTO services (name, description, duration_minutes, base_price, requires_dual_artist, premium_fee_enabled, is_active)
|
|
VALUES ('Maquillaje Profesional', 'Maquillaje para eventos especiales', 60, 1200.00, false, true, true);
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM services WHERE name = 'Extensión de Pestañas') THEN
|
|
INSERT INTO services (name, description, duration_minutes, base_price, requires_dual_artist, premium_fee_enabled, is_active)
|
|
VALUES ('Extensión de Pestañas', 'Aplicación de extensiones pestañas volumen 3D', 90, 1500.00, false, true, true);
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM services WHERE name = 'Servicio Express (Dual Artist)') THEN
|
|
INSERT INTO services (name, description, duration_minutes, base_price, requires_dual_artist, premium_fee_enabled, is_active)
|
|
VALUES ('Servicio Express (Dual Artist)', 'Servicio rápido con dos artists simultáneas', 30, 600.00, true, true, true);
|
|
END IF;
|
|
END $$;
|
|
|
|
-- 5. Crear Customers (solo si no existen por email)
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT 1 FROM customers WHERE email = 'sofia.ramirez@example.com') THEN
|
|
INSERT INTO customers (user_id, first_name, last_name, email, phone, tier, notes, total_spent, total_visits, last_visit_date, is_active)
|
|
VALUES (gen_random_uuid(), 'Sofía', 'Ramírez', 'sofia.ramirez@example.com', '+52 55 1111 1111', 'gold', 'Cliente VIP. Prefiere Artists María y Ana.', 15000.00, 25, '2025-12-20', true);
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM customers WHERE email = 'valentina.hernandez@example.com') THEN
|
|
INSERT INTO customers (user_id, first_name, last_name, email, phone, tier, notes, total_spent, total_visits, last_visit_date, is_active)
|
|
VALUES (gen_random_uuid(), 'Valentina', 'Hernández', 'valentina.hernandez@example.com', '+52 55 2222 2222', 'gold', 'Cliente regular. Prefiere horarios de la mañana.', 8500.00, 15, '2025-12-15', true);
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM customers WHERE email = 'camila.lopez@example.com') THEN
|
|
INSERT INTO customers (user_id, first_name, last_name, email, phone, tier, notes, total_spent, total_visits, last_visit_date, is_active)
|
|
VALUES (gen_random_uuid(), 'Camila', 'López', 'camila.lopez@example.com', '+52 55 3333 3333', 'free', 'Nueva cliente. Referida por Valentina.', 500.00, 1, '2025-12-10', true);
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM customers WHERE email = 'isabella.garcia@example.com') THEN
|
|
INSERT INTO customers (user_id, first_name, last_name, email, phone, tier, notes, total_spent, total_visits, last_visit_date, is_active)
|
|
VALUES (gen_random_uuid(), 'Isabella', 'García', 'isabella.garcia@example.com', '+52 55 4444 4444', 'gold', 'Cliente VIP. Requiere servicio de Balayage.', 22000.00, 30, '2025-12-18', true);
|
|
END IF;
|
|
END $$;
|
|
|
|
-- 6. Crear Amenities (cortesías para kiosks)
|
|
DO $$
|
|
BEGIN
|
|
-- ANCHOR:23 - Via KLAVA Amenities
|
|
IF NOT EXISTS (SELECT 1 FROM amenities WHERE name = 'Café Americano' AND location_id = (SELECT id FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA' LIMIT 1)) THEN
|
|
INSERT INTO amenities (location_id, name, description, category, is_active)
|
|
SELECT id, 'Café Americano', 'Café negro tradicional', 'coffee', true
|
|
FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA';
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM amenities WHERE name = 'Café Latte' AND location_id = (SELECT id FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA' LIMIT 1)) THEN
|
|
INSERT INTO amenities (location_id, name, description, category, is_active)
|
|
SELECT id, 'Café Latte', 'Café con leche vaporizada', 'coffee', true
|
|
FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA';
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM amenities WHERE name = 'Té Verde' AND location_id = (SELECT id FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA' LIMIT 1)) THEN
|
|
INSERT INTO amenities (location_id, name, description, category, is_active)
|
|
SELECT id, 'Té Verde', 'Té verde orgánico', 'coffee', true
|
|
FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA';
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM amenities WHERE name = 'Cocktail Mojito' AND location_id = (SELECT id FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA' LIMIT 1)) THEN
|
|
INSERT INTO amenities (location_id, name, description, category, is_active)
|
|
SELECT id, 'Cocktail Mojito', 'Refresco de menta y limón', 'cocktail', true
|
|
FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA';
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM amenities WHERE name = 'Mocktail Piña Colada' AND location_id = (SELECT id FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA' LIMIT 1)) THEN
|
|
INSERT INTO amenities (location_id, name, description, category, is_active)
|
|
SELECT id, 'Mocktail Piña Colada', 'Bebida tropical sin alcohol', 'mocktail', true
|
|
FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA';
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM amenities WHERE name = 'Agua Mineral' AND location_id = (SELECT id FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA' LIMIT 1)) THEN
|
|
INSERT INTO amenities (location_id, name, description, category, is_active)
|
|
SELECT id, 'Agua Mineral', 'Agua mineral fresca', 'other', true
|
|
FROM locations WHERE name = 'ANCHOR:23 - Via KLAVA';
|
|
END IF;
|
|
|
|
-- TEST - Salón Principal Amenities
|
|
IF NOT EXISTS (SELECT 1 FROM amenities WHERE name = 'Café Espresso' AND location_id = (SELECT id FROM locations WHERE name = 'TEST - Salón Principal' LIMIT 1)) THEN
|
|
INSERT INTO amenities (location_id, name, description, category, is_active)
|
|
SELECT id, 'Café Espresso', 'Café espresso intenso', 'coffee', true
|
|
FROM locations WHERE name = 'TEST - Salón Principal';
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM amenities WHERE name = 'Café Cappuccino' AND location_id = (SELECT id FROM locations WHERE name = 'TEST - Salón Principal' LIMIT 1)) THEN
|
|
INSERT INTO amenities (location_id, name, description, category, is_active)
|
|
SELECT id, 'Café Cappuccino', 'Café con espuma de leche', 'coffee', true
|
|
FROM locations WHERE name = 'TEST - Salón Principal';
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM amenities WHERE name = 'Té Chai' AND location_id = (SELECT id FROM locations WHERE name = 'TEST - Salón Principal' LIMIT 1)) THEN
|
|
INSERT INTO amenities (location_id, name, description, category, is_active)
|
|
SELECT id, 'Té Chai', 'Té chai con especias', 'coffee', true
|
|
FROM locations WHERE name = 'TEST - Salón Principal';
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM amenities WHERE name = 'Cocktail Margarita' AND location_id = (SELECT id FROM locations WHERE name = 'TEST - Salón Principal' LIMIT 1)) THEN
|
|
INSERT INTO amenities (location_id, name, description, category, is_active)
|
|
SELECT id, 'Cocktail Margarita', 'Cóctel clásico de tequila', 'cocktail', true
|
|
FROM locations WHERE name = 'TEST - Salón Principal';
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM amenities WHERE name = 'Mocktail Limonada' AND location_id = (SELECT id FROM locations WHERE name = 'TEST - Salón Principal' LIMIT 1)) THEN
|
|
INSERT INTO amenities (location_id, name, description, category, is_active)
|
|
SELECT id, 'Mocktail Limonada', 'Limonada fresca natural', 'mocktail', true
|
|
FROM locations WHERE name = 'TEST - Salón Principal';
|
|
END IF;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM amenities WHERE name = 'Revista de Moda' AND location_id = (SELECT id FROM locations WHERE name = 'TEST - Salón Principal' LIMIT 1)) THEN
|
|
INSERT INTO amenities (location_id, name, description, category, is_active)
|
|
SELECT id, 'Revista de Moda', 'Revistas de moda actual', 'other', true
|
|
FROM locations WHERE name = 'TEST - Salón Principal';
|
|
END IF;
|
|
END $$;
|
|
|
|
-- 7. Crear Invitaciones (para clientes Gold)
|
|
DO $$
|
|
DECLARE
|
|
week_start DATE;
|
|
customer_record RECORD;
|
|
BEGIN
|
|
week_start := get_week_start(CURRENT_DATE);
|
|
|
|
FOR customer_record IN
|
|
SELECT id FROM customers WHERE tier = 'gold' AND is_active = true
|
|
LOOP
|
|
PERFORM reset_weekly_invitations_for_customer(customer_record.id);
|
|
END LOOP;
|
|
END $$;
|
|
|
|
-- 8. Resumen de datos creados
|
|
DO $$
|
|
BEGIN
|
|
RAISE NOTICE '==========================================';
|
|
RAISE NOTICE 'SALONOS - SEED DE DATOS COMPLETADO';
|
|
RAISE NOTICE '==========================================';
|
|
RAISE NOTICE 'Locations: %', (SELECT COUNT(*) FROM locations);
|
|
RAISE NOTICE 'Resources: %', (SELECT COUNT(*) FROM resources);
|
|
RAISE NOTICE 'Staff: %', (SELECT COUNT(*) FROM staff);
|
|
RAISE NOTICE 'Services: %', (SELECT COUNT(*) FROM services);
|
|
RAISE NOTICE 'Customers: %', (SELECT COUNT(*) FROM customers);
|
|
RAISE NOTICE 'Amenities: %', (SELECT COUNT(*) FROM amenities);
|
|
RAISE NOTICE '==========================================';
|
|
RAISE NOTICE 'Base de datos lista para desarrollo';
|
|
RAISE NOTICE '==========================================';
|
|
END
|
|
$$;
|