← Volver a EmployeesController

👥 Gestión de Empleados

Endpoints para la gestión CRUD completa de empleados del restaurante

Descripción General

Los endpoints de Gestión de Empleados proporcionan las operaciones fundamentales para administrar la información del personal del restaurante. Estos endpoints manejan el registro, consulta, actualización y eliminación de datos de empleados, incluyendo información personal, laboral y de contacto.

🎯 Características de la Gestión de Empleados

  • Identificación única: Cada empleado tiene un ID único en el sistema
  • Información personal: Nombre, apellidos, DNI, teléfono, email y dirección
  • Información laboral: Cargo, salario, fechas de alta y baja
  • Estado activo/inactivo: Control de actividad del empleado
  • Historial de empleo: Fechas de contratación y finalización
  • Validación de datos: Verificación de integridad de la información

Endpoints Disponibles

GET /Master/Employees/GetEmployees

Obtiene todos los empleados registrados en el sistema. Este endpoint devuelve una lista completa de todos los empleados activos e inactivos en la base de datos.
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
200 OK
Lista de empleados devuelta exitosamente
{ "empleado1": 1001, "nombre": "Juan", "apellidos": "Pérez García", "dni": "12345678A", "telefono": "555-0123", "email": "juan.perez@restaurante.com", "direccion": "Calle Principal 123", "fechaAlta": "2024-01-15T10:30:00Z", "fechaBaja": null, "salario": 1500.00, "cargo": "Camarero", "activo": true }
500 Internal Server Error
Error interno del servidor

GET /Master/Employees/GetEmployee/{id}

Obtiene un empleado específico por su ID. Este endpoint permite recuperar la información detallada de un empleado en particular.
Parámetros de ruta:
  • id (double, requerido): ID único del empleado
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
200 OK
Empleado encontrado y devuelto
404 Not Found
Empleado no encontrado
500 Internal Server Error
Error interno del servidor

POST /Master/Employees/AddEmployee

Crea un nuevo empleado en el sistema. Este endpoint permite registrar un nuevo empleado en la base de datos del restaurante.
Body (JSON):
{ "nombre": "María", "apellidos": "García López", "dni": "87654321B", "telefono": "555-0456", "email": "maria.garcia@restaurante.com", "direccion": "Avenida Central 456", "salario": 1800.00, "cargo": "Cocinero", "activo": true }
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
201 Created
Empleado creado exitosamente
{ "empleado1": 1002, "nombre": "María", "apellidos": "García López", "dni": "87654321B", "telefono": "555-0456", "email": "maria.garcia@restaurante.com", "direccion": "Avenida Central 456", "fechaAlta": "2024-01-15T14:20:00Z", "fechaBaja": null, "salario": 1800.00, "cargo": "Cocinero", "activo": true }
500 Internal Server Error
Error interno del servidor

PUT /Master/Employees/UpdateEmployee/{id}

Actualiza un empleado existente en el sistema. Este endpoint permite modificar la información de un empleado ya registrado.
Parámetros de ruta:
  • id (double, requerido): ID del empleado a actualizar
Body (JSON):
{ "nombre": "Juan Carlos", "apellidos": "Pérez García", "dni": "12345678A", "telefono": "555-0124", "email": "juan.carlos.perez@restaurante.com", "direccion": "Calle Principal 123, Piso 2", "salario": 1600.00, "cargo": "Camarero Senior", "activo": true }
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
200 OK
Empleado actualizado exitosamente
404 Not Found
Empleado no encontrado
500 Internal Server Error
Error interno del servidor

DELETE /Master/Employees/DeleteEmployee/{id}

Elimina un empleado del sistema. Este endpoint permite remover un empleado de la base de datos del restaurante.
Parámetros de ruta:
  • id (double, requerido): ID del empleado a eliminar
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
200 OK
Empleado eliminado exitosamente
{ "message": "Employee deleted successfully", "empleado": { "empleado1": 1001, "nombre": "Juan", "apellidos": "Pérez García", "dni": "12345678A", "telefono": "555-0123", "email": "juan.perez@restaurante.com", "direccion": "Calle Principal 123", "fechaAlta": "2024-01-15T10:30:00Z", "fechaBaja": null, "salario": 1500.00, "cargo": "Camarero", "activo": false } }
404 Not Found
Empleado no encontrado
500 Internal Server Error
Error interno del servidor

Modelo de Datos - Empleado

Propiedades del modelo Empleado:
  • Empleado1 (double): Identificador único del empleado
  • Nombre (string): Nombre del empleado
  • Apellidos (string): Apellidos del empleado
  • DNI (string): Número de identificación fiscal único
  • Telefono (string): Número de teléfono de contacto
  • Email (string): Dirección de correo electrónico
  • Direccion (string): Dirección física del empleado
  • FechaAlta (DateTime): Fecha de contratación del empleado
  • FechaBaja (DateTime): Fecha de finalización del contrato (nullable)
  • Salario (decimal): Salario mensual del empleado
  • Cargo (string): Puesto o cargo del empleado
  • Activo (bool): Estado de actividad del empleado

📝 Cargos Comunes en Restaurantes

  • Gerente: Responsable de la gestión general del restaurante
  • Cocinero: Preparación de platos y gestión de cocina
  • Camarero: Atención al cliente y servicio de mesa
  • Ayudante de Cocina: Apoyo en la preparación de alimentos
  • Limpieza: Mantenimiento de la limpieza del local
  • Cajero: Gestión de pagos y caja

Servicio Utilizado

IEmployeesService - Servicio principal para la gestión de empleados
  • GetEmployees(): Obtiene todos los empleados
  • GetEmployee(): Obtiene un empleado por ID
  • AddEmployee(): Crea un nuevo empleado
  • UpdateEmployee(): Actualiza un empleado existente
  • DeleteEmployee(): Elimina un empleado

🔍 Casos de Uso Comunes

📋 Escenarios de Aplicación

  • Contratación de nuevos empleados: Usar POST /AddEmployee para registrar nuevos trabajadores
  • Consulta de plantilla: Usar GET /GetEmployees para ver todos los empleados
  • Actualización de datos: Usar PUT /UpdateEmployee/{id} para cambios de información
  • Búsqueda de empleado específico: Usar GET /GetEmployee/{id} para información detallada
  • Baja de empleados: Usar DELETE /DeleteEmployee/{id} para despedir empleados
  • Gestión de nóminas: Consultar información salarial y de contratación
  • Control de acceso: Verificar empleados activos para permisos

🔒 Consideraciones de Seguridad

⚠️ Protección de Datos Personales

  • DNI: Información sensible que requiere protección especial
  • Salarios: Datos confidenciales que deben ser protegidos
  • Direcciones: Información personal que requiere autorización
  • Emails y teléfonos: Datos de contacto que deben ser seguros
  • Auditoría: Se recomienda logging de todas las operaciones