#!/bin/bash echo "🚀 Inicializando Sistema de Checklists..." echo "" # Esperar a que PostgreSQL esté listo echo "⏳ Esperando a que PostgreSQL esté listo..." sleep 5 # Crear usuarios echo "👥 Creando usuarios de prueba..." docker-compose exec -T backend python << EOF from app.core.database import SessionLocal from app.models import User from app.core.security import get_password_hash db = SessionLocal() # Crear admin admin = User( username='admin', password_hash=get_password_hash('admin123'), role='admin', email='admin@taller.com', full_name='Administrador Sistema' ) db.add(admin) # Crear mecánico mechanic = User( username='mecanico1', password_hash=get_password_hash('mecanico123'), role='mechanic', email='mecanico@taller.com', full_name='Juan Pérez' ) db.add(mechanic) db.commit() print('✅ Usuarios creados exitosamente') EOF # Crear checklist de ejemplo echo "📋 Creando checklist de ejemplo..." docker-compose exec -T backend python << EOF from app.core.database import SessionLocal from app.models import Checklist, Question db = SessionLocal() # Crear checklist checklist = Checklist( name='Mantenimiento Preventivo', description='Checklist estándar de mantenimiento preventivo', ai_mode='assisted', scoring_enabled=True, is_active=True, created_by=1 ) db.add(checklist) db.commit() db.refresh(checklist) # Crear preguntas por sección questions_data = [ # Sistema Eléctrico ('Sistema Eléctrico', 'Estado de la batería', 'good_bad', 1, True), ('Sistema Eléctrico', 'Bocina', 'pass_fail', 1, False), ('Sistema Eléctrico', 'Luces (posición, cruce, carretera)', 'pass_fail', 1, False), ('Sistema Eléctrico', 'Testigos en cuadro', 'pass_fail', 1, True), # Frenos ('Frenos', 'Frenos (pastillas, discos)', 'pass_fail', 2, True), ('Frenos', 'Líquido de freno', 'pass_fail', 1, False), ('Frenos', 'Porcentaje de humedad', 'numeric', 1, False), # Motor ('Motor', 'Nivel de aceite', 'pass_fail', 1, True), ('Motor', 'Fugas de aceite', 'pass_fail', 2, True), ('Motor', 'Filtro de aceite', 'status', 1, True), ('Motor', 'Fugas de refrigerante', 'pass_fail', 2, True), # Neumáticos ('Neumáticos', 'Presión neumáticos', 'pass_fail', 1, False), ('Neumáticos', 'Banda de rodadura', 'good_bad', 1, True), # Suspensión ('Suspensión', 'Amortiguadores', 'pass_fail', 2, True), ('Suspensión', 'Cojinetes de ruedas', 'pass_fail', 1, False), # Varios ('Exterior', 'Estado carrocería', 'good_bad', 1, True), ('Exterior', 'Escobillas limpiaparabrisas', 'pass_fail', 1, True), ('Interior', 'Aire acondicionado', 'pass_fail', 1, False), ('Pruebas', 'Prueba dinámica del vehículo', 'pass_fail', 2, False), ] max_score = 0 for idx, (section, text, qtype, points, photos) in enumerate(questions_data): question = Question( checklist_id=checklist.id, section=section, text=text, type=qtype, points=points, order=idx + 1, allow_photos=photos, max_photos=3 ) db.add(question) max_score += points checklist.max_score = max_score db.commit() print(f'✅ Checklist creado con {len(questions_data)} preguntas') print(f'✅ Puntuación máxima: {max_score}') EOF echo "" echo "✅ Inicialización completada!" echo "" echo "🌐 Accede a la aplicación:" echo " Frontend: http://localhost:5173" echo " API Docs: http://localhost:8000/docs" echo "" echo "👥 Usuarios de prueba:" echo " Admin: admin / admin123" echo " Mecánico: mecanico1 / mecanico123" echo ""