Base Principal del Proyecto
This commit is contained in:
132
init-data.sh
Normal file
132
init-data.sh
Normal file
@@ -0,0 +1,132 @@
|
||||
#!/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 ""
|
||||
Reference in New Issue
Block a user