Replaced external 'morgan' library with a native custom logging middleware in api/server.js.
The new middleware logs:
- Incoming requests: Timestamp, HTTP method, URL, and client IP.
- Outgoing responses: Timestamp, status code, status message, original method, URL, and request duration.
This enhances debugging capabilities by providing clear insights into API traffic and performance directly from the server logs.
This commit refactors the project to use a shared Prisma schema and restricts direct database access to the API service.
Key changes:
- Created a new shared package `core/prisma` containing the Prisma schema, generated client, and types.
- Configured the monorepo to use NPM workspaces, including `core/prisma` and all services.
- Updated all services (`api`, `ui`, `mcp`, `agent`, and the background processing service) to depend on `@empresa/prisma-schema`.
- The API service now imports `PrismaClient` from `@empresa/prisma-schema/client`.
- Other services import only types from `@empresa/prisma-schema`.
- Removed redundant Prisma configurations from `api` and the background processing service.
- Updated the background processing service's `sync-empleados.js` to fetch data via an API call instead of direct database access.
- Updated TypeScript configurations (`tsconfig.base.json` and service-specific ones) to support the new structure and path aliases.
- Updated `README.md` to reflect the new architecture and added convenience scripts for Prisma operations.
This change promotes a single source of truth for data models, reduces code duplication, and improves the overall architecture by centralizing database operations within the API service.
Adds Express.js routes and Prisma-based handlers for common database operations (Create, Read, Update, Delete) for the following modules:
- Empleados (subset of Cliente model)
- Asistencias
- Tareas (TareaRealizada model)
- Planillas
Each module's routes are separated into their own files within `api/routes/`. The new routes are registered in `api/server.js`.
Basic error handling, including try-catch blocks and checks for common Prisma errors (e.g., P2025 for record not found, P2003 for foreign key violations), has been implemented in each endpoint.