Capa donde se coloca la lógica del negocio.
La capa de servicios es un patrón arquitectónico que separa la lógica de negocio de la capa de presentación (controllers) y la capa de datos (repositories/models). Sus principales responsabilidades incluyen: - Implementar las reglas de negocio - Coordinar operaciones entre múltiples repositorios - Manejar transacciones - Validar datos antes de persistirlos Siguiendo el principio de responsabilidad única (SRP), cada servicio debe enfocarse en un dominio específico de la aplicación.
// userService.ts import { prisma } from '@/lib/prisma'; import { hashPassword } from '@/utils/auth'; export class UserService { async createUser(data: CreateUserDTO) { // Lógica de negocio: validar, transformar, persistir const hashedPassword = await hashPassword(data.password); return prisma.user.create({ data: { ...data, password: hashedPassword, role: 'USER' } }); } async getUserWithPosts(userId: string) { return prisma.user.findUnique({ where: { id: userId }, include: { posts: true } }); } }