Resuelve conflictos después de git pull
This commit is contained in:
commit
78b55b09c2
|
@ -4,12 +4,17 @@ require '../includes/config.php';
|
|||
|
||||
if (!is_logged_in()) {
|
||||
http_response_code(401);
|
||||
<<<<<<< HEAD
|
||||
echo json_encode(['success' => false, 'error' => 'No autenticado']);
|
||||
=======
|
||||
echo json_encode(['error' => 'No autenticado']);
|
||||
>>>>>>> 49de6961bd992546ae0f304455a00253989884a2
|
||||
exit;
|
||||
}
|
||||
|
||||
$method = $_SERVER['REQUEST_METHOD'];
|
||||
|
||||
<<<<<<< HEAD
|
||||
try {
|
||||
switch ($method) {
|
||||
case 'GET':
|
||||
|
@ -36,6 +41,38 @@ try {
|
|||
exit;
|
||||
}
|
||||
|
||||
=======
|
||||
switch ($method) {
|
||||
case 'GET':
|
||||
try {
|
||||
$stmt = $pdo->query("
|
||||
SELECT a.*,
|
||||
GROUP_CONCAT(ac.curso_id) AS cursos
|
||||
FROM alumnos a
|
||||
LEFT JOIN alumnos_cursos ac ON a.id = ac.alumno_id
|
||||
GROUP BY a.id
|
||||
");
|
||||
|
||||
$alumnos = $stmt->fetchAll();
|
||||
|
||||
// Convertir cursos a array
|
||||
foreach ($alumnos as &$alumno) {
|
||||
$alumno['cursos'] = $alumno['cursos'] ? explode(',', $alumno['cursos']) : [];
|
||||
}
|
||||
|
||||
echo json_encode($alumnos);
|
||||
|
||||
} catch (PDOException $e) {
|
||||
http_response_code(500);
|
||||
echo json_encode(['error' => 'Error al cargar alumnos']);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'POST':
|
||||
$data = json_decode(file_get_contents('php://input'), true);
|
||||
|
||||
try {
|
||||
>>>>>>> 49de6961bd992546ae0f304455a00253989884a2
|
||||
$stmt = $pdo->prepare("
|
||||
INSERT INTO alumnos (nombre, email, telefono)
|
||||
VALUES (?, ?, ?)
|
||||
|
@ -46,6 +83,7 @@ try {
|
|||
$data['telefono'] ?? null
|
||||
]);
|
||||
|
||||
<<<<<<< HEAD
|
||||
echo json_encode([
|
||||
'success' => true,
|
||||
'id' => $pdo->lastInsertId(),
|
||||
|
@ -117,5 +155,17 @@ try {
|
|||
} catch (PDOException $e) {
|
||||
http_response_code(500);
|
||||
echo json_encode(['success' => false, 'error' => 'Error en la base de datos: ' . $e->getMessage()]);
|
||||
=======
|
||||
echo json_encode(['success' => true, 'id' => $pdo->lastInsertId()]);
|
||||
} catch (PDOException $e) {
|
||||
http_response_code(500);
|
||||
echo json_encode(['error' => 'Error al crear alumno: ' . $e->getMessage()]);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
http_response_code(405);
|
||||
echo json_encode(['error' => 'Método no permitido']);
|
||||
>>>>>>> 49de6961bd992546ae0f304455a00253989884a2
|
||||
}
|
||||
?>
|
108
api/cursos.php
108
api/cursos.php
|
@ -9,6 +9,7 @@ if (!is_logged_in()) {
|
|||
}
|
||||
|
||||
$method = $_SERVER['REQUEST_METHOD'];
|
||||
<<<<<<< HEAD
|
||||
$profesorId = $_SESSION['profesor']['id'];
|
||||
|
||||
switch ($method) {
|
||||
|
@ -22,11 +23,55 @@ switch ($method) {
|
|||
http_response_code(500);
|
||||
echo json_encode(['error' => 'Error al cargar cursos']);
|
||||
}
|
||||
=======
|
||||
<<<<<<< HEAD
|
||||
$profesorId = $_SESSION['profesor']['id'] ?? null;
|
||||
|
||||
switch ($method) {
|
||||
case 'GET':
|
||||
try {
|
||||
$query = "
|
||||
SELECT
|
||||
c.*,
|
||||
COUNT(ac.id) AS alumnos_count,
|
||||
u.nombre AS profesor_nombre
|
||||
FROM cursos c
|
||||
LEFT JOIN alumnos_cursos ac ON c.id = ac.curso_id
|
||||
LEFT JOIN usuarios u ON c.profesor_id = u.id
|
||||
";
|
||||
|
||||
$params = [];
|
||||
|
||||
if (isset($_GET['profesor_id'])) {
|
||||
$query .= " WHERE c.profesor_id = ?";
|
||||
$params[] = $_GET['profesor_id'];
|
||||
}
|
||||
|
||||
$query .= " GROUP BY c.id ORDER BY c.estado, c.nombre";
|
||||
|
||||
$stmt = $pdo->prepare($query);
|
||||
$stmt->execute($params);
|
||||
|
||||
echo json_encode($stmt->fetchAll());
|
||||
|
||||
} catch (PDOException $e) {
|
||||
http_response_code(500);
|
||||
echo json_encode(['error' => 'Error al cargar cursos: ' . $e->getMessage()]);
|
||||
}
|
||||
=======
|
||||
|
||||
switch ($method) {
|
||||
case 'GET':
|
||||
$stmt = $pdo->query("SELECT * FROM cursos");
|
||||
echo json_encode($stmt->fetchAll());
|
||||
>>>>>>> 29e8458d422ce8fe12442f0a06a68c543f23b8b3
|
||||
>>>>>>> 49de6961bd992546ae0f304455a00253989884a2
|
||||
break;
|
||||
|
||||
case 'POST':
|
||||
$data = json_decode(file_get_contents('php://input'), true);
|
||||
|
||||
<<<<<<< HEAD
|
||||
if (empty($data['nombre']) || empty($data['tipo'])) {
|
||||
http_response_code(400);
|
||||
echo json_encode(['error' => 'Nombre y tipo son requeridos']);
|
||||
|
@ -122,6 +167,69 @@ switch ($method) {
|
|||
http_response_code(500);
|
||||
echo json_encode(['error' => 'Error al eliminar curso']);
|
||||
}
|
||||
=======
|
||||
<<<<<<< HEAD
|
||||
try {
|
||||
$stmt = $pdo->prepare("
|
||||
INSERT INTO cursos (nombre, descripcion, tipo, estado, profesor_id)
|
||||
VALUES (?, ?, ?, 'activo', ?)
|
||||
");
|
||||
$stmt->execute([
|
||||
$data['nombre'],
|
||||
$data['descripcion'] ?? null,
|
||||
$data['tipo'],
|
||||
$profesorId
|
||||
]);
|
||||
|
||||
echo json_encode(['success' => true, 'id' => $pdo->lastInsertId()]);
|
||||
} catch (PDOException $e) {
|
||||
http_response_code(500);
|
||||
echo json_encode(['error' => 'Error al crear curso: ' . $e->getMessage()]);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'DELETE':
|
||||
$id = $_GET['id'] ?? null;
|
||||
if (!$id) {
|
||||
http_response_code(400);
|
||||
echo json_encode(['error' => 'ID de curso no proporcionado']);
|
||||
exit;
|
||||
}
|
||||
|
||||
try {
|
||||
// Verificar que el curso pertenece al profesor
|
||||
if ($profesorId) {
|
||||
$stmt = $pdo->prepare("SELECT id FROM cursos WHERE id = ? AND profesor_id = ?");
|
||||
$stmt->execute([$id, $profesorId]);
|
||||
if (!$stmt->fetch()) {
|
||||
http_response_code(403);
|
||||
echo json_encode(['error' => 'No autorizado']);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
$stmt = $pdo->prepare("DELETE FROM cursos WHERE id = ?");
|
||||
$stmt->execute([$id]);
|
||||
|
||||
echo json_encode(['success' => true]);
|
||||
} catch (PDOException $e) {
|
||||
http_response_code(500);
|
||||
echo json_encode(['error' => 'Error al eliminar curso: ' . $e->getMessage()]);
|
||||
}
|
||||
=======
|
||||
$stmt = $pdo->prepare("
|
||||
INSERT INTO cursos (nombre, tipo, competencias)
|
||||
VALUES (?, ?, ?)
|
||||
");
|
||||
$stmt->execute([
|
||||
$data['nombre'],
|
||||
$data['tipo'],
|
||||
$data['competencias'] ?? null
|
||||
]);
|
||||
|
||||
echo json_encode(['success' => true, 'id' => $pdo->lastInsertId()]);
|
||||
>>>>>>> 29e8458d422ce8fe12442f0a06a68c543f23b8b3
|
||||
>>>>>>> 49de6961bd992546ae0f304455a00253989884a2
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
@ -7,11 +7,42 @@ if (!is_logged_in()) {
|
|||
echo json_encode(['error' => 'No autenticado']);
|
||||
exit;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
try {
|
||||
$profesorId = $_GET['profesor_id'] ?? null;
|
||||
|
||||
$query = "
|
||||
SELECT d.*, a.nombre AS alumno_nombre, c.nombre AS curso_nombre
|
||||
=======
|
||||
|
||||
try {
|
||||
$profesorId = $_SESSION['profesor']['id'] ?? null;
|
||||
$action = $_GET['action'] ?? null;
|
||||
|
||||
if ($action === 'resend') {
|
||||
// Lógica para reenviar diploma
|
||||
$codigo = $_GET['codigo'] ?? null;
|
||||
if (!$codigo) {
|
||||
throw new Exception('Código de diploma no proporcionado');
|
||||
}
|
||||
|
||||
// Aquí iría la lógica para reenviar el diploma por email
|
||||
echo json_encode(['success' => true, 'message' => 'Diploma reenviado']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$query = "
|
||||
SELECT
|
||||
d.id,
|
||||
d.codigo_unico,
|
||||
d.fecha_emision,
|
||||
a.nombre AS alumno_nombre,
|
||||
a.email AS alumno_email,
|
||||
c.nombre AS curso_nombre,
|
||||
c.tipo AS curso_tipo,
|
||||
c.id AS curso_id,
|
||||
DATE_FORMAT(d.fecha_emision, '%d/%m/%Y') AS fecha_formateada
|
||||
>>>>>>> 49de6961bd992546ae0f304455a00253989884a2
|
||||
FROM diplomas d
|
||||
JOIN alumnos_cursos ac ON d.alumno_curso_id = ac.id
|
||||
JOIN alumnos a ON ac.alumno_id = a.id
|
||||
|
@ -19,6 +50,10 @@ try {
|
|||
";
|
||||
|
||||
$params = [];
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
>>>>>>> 49de6961bd992546ae0f304455a00253989884a2
|
||||
if ($profesorId) {
|
||||
$query .= " WHERE c.profesor_id = ?";
|
||||
$params[] = $profesorId;
|
||||
|
@ -31,6 +66,16 @@ try {
|
|||
|
||||
$diplomas = $stmt->fetchAll();
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
// Asegurar que todos los diplomas tengan código único
|
||||
foreach ($diplomas as &$diploma) {
|
||||
if (empty($diploma['codigo_unico'])) {
|
||||
$diploma['codigo_unico'] = 'DIPL-' . str_pad($diploma['id'], 6, '0', STR_PAD_LEFT);
|
||||
}
|
||||
}
|
||||
|
||||
>>>>>>> 49de6961bd992546ae0f304455a00253989884a2
|
||||
echo json_encode([
|
||||
'success' => true,
|
||||
'data' => $diplomas,
|
||||
|
@ -39,6 +84,13 @@ try {
|
|||
|
||||
} catch (Exception $e) {
|
||||
http_response_code(500);
|
||||
<<<<<<< HEAD
|
||||
echo json_encode(['success' => false, 'error' => $e->getMessage()]);
|
||||
=======
|
||||
echo json_encode([
|
||||
'success' => false,
|
||||
'error' => $e->getMessage()
|
||||
]);
|
||||
>>>>>>> 49de6961bd992546ae0f304455a00253989884a2
|
||||
}
|
||||
?>
|
|
@ -43,11 +43,21 @@ try {
|
|||
];
|
||||
|
||||
echo json_encode([
|
||||
<<<<<<< HEAD
|
||||
'success' => true,
|
||||
'redirect' => 'dashboard.php',
|
||||
'profesor_id' => $profesor['id']
|
||||
]);
|
||||
|
||||
=======
|
||||
'success' => true,
|
||||
'redirect' => 'dashboard.php',
|
||||
'profesor' => [
|
||||
'id' => $profesor['id'],
|
||||
'nombre' => $profesor['nombre']
|
||||
]
|
||||
]);
|
||||
>>>>>>> 49de6961bd992546ae0f304455a00253989884a2
|
||||
|
||||
} catch (PDOException $e) {
|
||||
error_log('Error en login.php: ' . $e->getMessage());
|
||||
|
|
|
@ -584,17 +584,87 @@ header h1 {
|
|||
color: white;
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
.badge.type-inyeccion {
|
||||
background-color: #2196f3;
|
||||
=======
|
||||
<<<<<<< HEAD
|
||||
#user-info {
|
||||
order: 1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
/* Estilos para el enlace de cerrar sesión */
|
||||
.logout-link {
|
||||
color: #333;
|
||||
text-decoration: none;
|
||||
padding: 0.75rem 1rem;
|
||||
display: block;
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
.logout-link:hover {
|
||||
color: #e53e3e;
|
||||
background-color: #fee2e2;
|
||||
}
|
||||
|
||||
/* Estilos para la columna de acciones */
|
||||
.courses-table td:last-child {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.download-btn {
|
||||
padding: 0.4rem 0.8rem;
|
||||
font-size: 0.9rem;
|
||||
background-color: #38a169;
|
||||
}
|
||||
|
||||
.download-btn:hover {
|
||||
background-color: #2f855a;
|
||||
}
|
||||
|
||||
.download-btn:disabled {
|
||||
background-color: #a0aec0;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
/* Badges para tipos de curso */
|
||||
.badge {
|
||||
padding: 4px 8px;
|
||||
border-radius: 12px;
|
||||
font-size: 0.8em;
|
||||
font-weight: 600;
|
||||
text-transform: capitalize;
|
||||
}
|
||||
|
||||
.badge.active {
|
||||
background-color: #4CAF50;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.badge.inactive {
|
||||
background-color: #f44336;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.badge.type-inyeccion {
|
||||
background-color: #2196F3;
|
||||
>>>>>>> 49de6961bd992546ae0f304455a00253989884a2
|
||||
color: white;
|
||||
}
|
||||
|
||||
.badge.type-pildora {
|
||||
<<<<<<< HEAD
|
||||
background-color: #ff9800;
|
||||
=======
|
||||
background-color: #FF9800;
|
||||
>>>>>>> 49de6961bd992546ae0f304455a00253989884a2
|
||||
color: white;
|
||||
}
|
||||
|
||||
.badge.type-tratamiento {
|
||||
<<<<<<< HEAD
|
||||
background-color: #9c27b0;
|
||||
color: white;
|
||||
}
|
||||
|
@ -960,3 +1030,14 @@ textarea {
|
|||
font-size: 0.85rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
=======
|
||||
background-color: #9C27B0;
|
||||
color: white;
|
||||
}
|
||||
=======
|
||||
.badge.tratamiento {
|
||||
background-color: #E0E7FF;
|
||||
color: #3730A3;
|
||||
}
|
||||
>>>>>>> 29e8458d422ce8fe12442f0a06a68c543f23b8b3
|
||||
>>>>>>> 49de6961bd992546ae0f304455a00253989884a2
|
||||
|
|
1154
assets/js/main.js
1154
assets/js/main.js
File diff suppressed because it is too large
Load Diff
|
@ -2,6 +2,7 @@
|
|||
include 'includes/config.php';
|
||||
redirect_if_not_logged_in();
|
||||
|
||||
<<<<<<< HEAD
|
||||
|
||||
$profesor = $_SESSION['profesor'];
|
||||
|
||||
|
@ -32,6 +33,9 @@ $stmt = $pdo->prepare("
|
|||
");
|
||||
$stmt->execute([$profesor['id']]);
|
||||
$diplomas_emitidos = $stmt->fetch()['total'];
|
||||
=======
|
||||
$profesor = $_SESSION['profesor'];
|
||||
>>>>>>> 49de6961bd992546ae0f304455a00253989884a2
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="es">
|
||||
|
@ -41,6 +45,7 @@ $diplomas_emitidos = $stmt->fetch()['total'];
|
|||
<title>DiploMaster - Panel</title>
|
||||
<link rel="stylesheet" href="assets/css/styles.css">
|
||||
</head>
|
||||
<<<<<<< HEAD
|
||||
<body class="admin">
|
||||
<div id="app-content">
|
||||
<header>
|
||||
|
@ -50,15 +55,41 @@ $diplomas_emitidos = $stmt->fetch()['total'];
|
|||
<span><?= htmlspecialchars($profesor['nombre']) ?></span>
|
||||
</div>
|
||||
|
||||
=======
|
||||
<<<<<<< HEAD
|
||||
<body class="admin">
|
||||
=======
|
||||
<body>
|
||||
>>>>>>> 29e8458d422ce8fe12442f0a06a68c543f23b8b3
|
||||
<div id="app-content">
|
||||
<header>
|
||||
<h1>DiploMaster</h1>
|
||||
<div id="profesor-info">
|
||||
<span id="current-profesor"><?= htmlspecialchars($profesor['nombre']) ?></span>
|
||||
</div>
|
||||
>>>>>>> 49de6961bd992546ae0f304455a00253989884a2
|
||||
</header>
|
||||
|
||||
<div class="main-container">
|
||||
<div class="sidebar" id="sidebar">
|
||||
<ul class="sidebar-menu">
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
<<<<<<< HEAD
|
||||
>>>>>>> 49de6961bd992546ae0f304455a00253989884a2
|
||||
<li class="active" data-section="dashboard"><span>🏠 Inicio</span></li>
|
||||
<li data-section="courses"><span>📚 Mis Cursos</span></li>
|
||||
<li data-section="students"><span>👨🎓 Gestión de Alumnos</span></li>
|
||||
<li data-section="diplomas"><span>🎓 Diplomas Emitidos</span></li>
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
=======
|
||||
<li class="active" data-section="dashboard"><span>Inicio</span></li>
|
||||
<li data-section="courses"><span>Gestión de Cursos</span></li>
|
||||
<li data-section="students"><span>Gestión de Estudiantes</span></li>
|
||||
<li data-section="diplomas"><span>Diplomas</span></li>
|
||||
>>>>>>> 29e8458d422ce8fe12442f0a06a68c543f23b8b3
|
||||
>>>>>>> 49de6961bd992546ae0f304455a00253989884a2
|
||||
<li><a href="api/logout.php" class="logout-link">Cerrar sesión</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
@ -66,6 +97,7 @@ $diplomas_emitidos = $stmt->fetch()['total'];
|
|||
<div class="content" id="main-content">
|
||||
<div id="dashboard-content" class="content-section active">
|
||||
<div class="card">
|
||||
<<<<<<< HEAD
|
||||
<h2>Bienvenido <?= htmlspecialchars($profesor['nombre']) ?></h2>
|
||||
<p>Este es tu panel de gestión de DiploMaster</p>
|
||||
<div class="stats">
|
||||
|
@ -73,6 +105,24 @@ $diplomas_emitidos = $stmt->fetch()['total'];
|
|||
<p>• <span id="active-courses-count"><?= $cursos_activos ?></span> cursos activos</p>
|
||||
<p>• <span id="students-count"><?= $alumnos_registrados ?></span> alumnos registrados</p>
|
||||
<p>• <span id="diplomas-count"><?= $diplomas_emitidos ?></span> diplomas emitidos</p>
|
||||
=======
|
||||
<<<<<<< HEAD
|
||||
<h2>Bienvenido <?= htmlspecialchars($profesor['nombre']) ?></h2>
|
||||
<p>Este es tu panel de gestión de DiploMaster</p>
|
||||
<div class="stats">
|
||||
<p><strong>Resumen:</strong></p>
|
||||
<p>• <span id="active-courses-count">0</span> cursos activos</p>
|
||||
<p>• <span id="students-count">0</span> alumnos registrados</p>
|
||||
=======
|
||||
<h2>Panel de Administración</h2>
|
||||
<p>Bienvenido al sistema de gestión de DiploMaster</p>
|
||||
<div class="stats">
|
||||
<p><strong>Estadísticas:</strong></p>
|
||||
<p>• <span id="active-courses-count">0</span> cursos activos</p>
|
||||
<p>• <span id="students-count">0</span> estudiantes registrados</p>
|
||||
>>>>>>> 29e8458d422ce8fe12442f0a06a68c543f23b8b3
|
||||
<p>• <span id="diplomas-count">0</span> diplomas emitidos</p>
|
||||
>>>>>>> 49de6961bd992546ae0f304455a00253989884a2
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,18 +1,63 @@
|
|||
<<<<<<< HEAD
|
||||
-- Crear la base de datos
|
||||
CREATE DATABASE IF NOT EXISTS diplomaster;
|
||||
USE diplomaster;
|
||||
|
||||
=======
|
||||
<<<<<<< HEAD
|
||||
-- Crear la base de datos
|
||||
CREATE DATABASE IF NOT EXISTS diplomaster;
|
||||
USE diplomaster;
|
||||
=======
|
||||
|
||||
|
||||
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
||||
START TRANSACTION;
|
||||
SET time_zone = "+00:00";
|
||||
|
||||
CREATE database diplomaster;
|
||||
use diplomaster;
|
||||
|
||||
|
||||
CREATE TABLE `cursos` (
|
||||
`id` int(11) NOT NULL,
|
||||
`nombre` varchar(100) NOT NULL,
|
||||
`tipo` enum('pildora','inyeccion','tratamiento') NOT NULL,
|
||||
`competencias` text DEFAULT NULL,
|
||||
`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
|
||||
|
||||
|
||||
INSERT INTO `cursos` (`id`, `nombre`, `tipo`, `competencias`, `fecha_creacion`) VALUES
|
||||
(1, 'Seguridad Informática', 'tratamiento', 'Análisis de datos, Comunicación efectiva', '2025-05-05 01:27:58'),
|
||||
(2, 'Introducción a Python', 'pildora', NULL, '2025-05-05 01:27:58'),
|
||||
(3, 'Machine Learning Avanzado', 'tratamiento', 'Modelado predictivo, Python', '2025-05-05 01:27:58');
|
||||
|
||||
|
||||
>>>>>>> 29e8458d422ce8fe12442f0a06a68c543f23b8b3
|
||||
|
||||
>>>>>>> 49de6961bd992546ae0f304455a00253989884a2
|
||||
-- Tabla de usuarios (profesores)
|
||||
CREATE TABLE `usuarios` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`nombre` VARCHAR(100) NOT NULL,
|
||||
`email` VARCHAR(100) UNIQUE NOT NULL,
|
||||
`password` VARCHAR(255) NOT NULL,
|
||||
<<<<<<< HEAD
|
||||
`aprobado` BOOLEAN NOT NULL DEFAULT 1,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- Tabla de cursos
|
||||
=======
|
||||
`aprobado` BOOLEAN NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
|
||||
<<<<<<< HEAD
|
||||
-- Tabla de cursos (cada profesor crea sus cursos)
|
||||
>>>>>>> 49de6961bd992546ae0f304455a00253989884a2
|
||||
CREATE TABLE `cursos` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`nombre` VARCHAR(100) NOT NULL,
|
||||
|
@ -20,9 +65,25 @@ CREATE TABLE `cursos` (
|
|||
`estado` ENUM('activo', 'completado', 'archivado') NOT NULL DEFAULT 'activo',
|
||||
`tipo` ENUM('inyeccion', 'pildora', 'tratamiento') NOT NULL,
|
||||
`profesor_id` INT(11) NOT NULL,
|
||||
<<<<<<< HEAD
|
||||
PRIMARY KEY (`id`),
|
||||
FOREIGN KEY (`profesor_id`) REFERENCES `usuarios`(`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
=======
|
||||
FOREIGN KEY (`profesor_id`) REFERENCES `usuarios`(`id`) ON DELETE CASCADE,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
|
||||
-- Tabla de alumnos
|
||||
CREATE TABLE `alumnos` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`nombre` VARCHAR(100) NOT NULL,
|
||||
`email` VARCHAR(100) UNIQUE NOT NULL,
|
||||
`telefono` VARCHAR(15) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
=======
|
||||
>>>>>>> 49de6961bd992546ae0f304455a00253989884a2
|
||||
|
||||
-- Tabla de alumnos
|
||||
CREATE TABLE `alumnos` (
|
||||
|
@ -66,10 +127,73 @@ INSERT INTO `alumnos` (`nombre`, `email`, `telefono`) VALUES
|
|||
('Alumno Uno', 'alumno1@demo.com', '123456789'),
|
||||
('Alumno Dos', 'alumno2@demo.com', '987654321');
|
||||
|
||||
<<<<<<< HEAD
|
||||
INSERT INTO `alumnos_cursos` (`alumno_id`, `curso_id`, `estado`) VALUES
|
||||
(1, 1, 'aprobado'),
|
||||
(2, 1, 'cursando'),
|
||||
(1, 2, 'cursando');
|
||||
|
||||
INSERT INTO `diplomas` (`alumno_curso_id`, `codigo_unico`) VALUES
|
||||
(1, 'DIPL-000001');
|
||||
(1, 'DIPL-000001');
|
||||
=======
|
||||
>>>>>>> 29e8458d422ce8fe12442f0a06a68c543f23b8b3
|
||||
|
||||
-- Tabla para vincular alumnos con cursos
|
||||
CREATE TABLE `alumnos_cursos` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`alumno_id` INT(11) NOT NULL,
|
||||
`curso_id` INT(11) NOT NULL,
|
||||
`estado` ENUM('cursando', 'aprobado', 'reprobado') NOT NULL DEFAULT 'cursando',
|
||||
`competencias` TEXT DEFAULT NULL, -- Solo para tratamiento
|
||||
FOREIGN KEY (`alumno_id`) REFERENCES `alumnos`(`id`) ON DELETE CASCADE,
|
||||
FOREIGN KEY (`curso_id`) REFERENCES `cursos`(`id`) ON DELETE CASCADE,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
|
||||
<<<<<<< HEAD
|
||||
-- Tabla de diplomas
|
||||
CREATE TABLE `diplomas` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`alumno_curso_id` INT(11) NOT NULL,
|
||||
`fecha_emision` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`competencias` TEXT DEFAULT NULL,
|
||||
FOREIGN KEY (`alumno_curso_id`) REFERENCES `alumnos_cursos`(`id`) ON DELETE CASCADE,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
|
||||
=======
|
||||
|
||||
|
||||
ALTER TABLE `cursos`
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
|
||||
ALTER TABLE `usuarios`
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD UNIQUE KEY `username` (`username`),
|
||||
ADD UNIQUE KEY `email` (`email`);
|
||||
|
||||
ALTER TABLE `usuario_cursos`
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD KEY `usuario_id` (`usuario_id`),
|
||||
ADD KEY `curso_id` (`curso_id`);
|
||||
|
||||
|
||||
ALTER TABLE `cursos`
|
||||
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
|
||||
|
||||
|
||||
ALTER TABLE `usuarios`
|
||||
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
|
||||
|
||||
|
||||
ALTER TABLE `usuario_cursos`
|
||||
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
|
||||
|
||||
|
||||
ALTER TABLE `usuario_cursos`
|
||||
ADD CONSTRAINT `usuario_cursos_ibfk_1` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`),
|
||||
ADD CONSTRAINT `usuario_cursos_ibfk_2` FOREIGN KEY (`curso_id`) REFERENCES `cursos` (`id`);
|
||||
COMMIT;
|
||||
>>>>>>> 29e8458d422ce8fe12442f0a06a68c543f23b8b3
|
||||
>>>>>>> 49de6961bd992546ae0f304455a00253989884a2
|
||||
|
|
Loading…
Reference in New Issue