Initialize environment configuration and enhance API logging

- Added a new .env file for environment variables including database and Redis configurations.
- Updated CLAUDE.md with hard rules for development practices.
- Enhanced package.json with new scripts for development and infrastructure management.
- Integrated Pino for structured logging in the API, replacing the default NestJS logger.
- Implemented OpenTelemetry for tracing and monitoring in the API.
- Added durationMinutes field to the Mission model in Prisma schema and created corresponding migration.
- Updated missions controller and service to handle mission duration and abandonment logic.
- Introduced new logger module for consistent logging across the application.
This commit is contained in:
Maurycy
2026-05-11 08:38:19 +00:00
parent 21f1a5319f
commit 0031ef0a8f
107 changed files with 3948 additions and 725 deletions

View File

@@ -14,6 +14,8 @@ export type MissionStateResponse = z.infer<typeof MissionStateResponseSchema>;
export const StartMissionRequestSchema = z.object({
difficulty: z.number().int().min(1).max(3),
durationMinutes: z.union([z.literal(10), z.literal(20), z.literal(30)]),
characterName: z.string().min(1).max(32).optional(),
});
export type StartMissionRequest = z.infer<typeof StartMissionRequestSchema>;

View File

@@ -17,11 +17,19 @@ export const MissionParticipantSchema = z.object({
});
export type MissionParticipant = z.infer<typeof MissionParticipantSchema>;
export const MissionDurationMinutesSchema = z.union([
z.literal(10),
z.literal(20),
z.literal(30),
]);
export type MissionDurationMinutes = z.infer<typeof MissionDurationMinutesSchema>;
export const MissionSchema = z.object({
id: z.uuid(),
groupId: z.uuid().nullable(),
participants: z.array(MissionParticipantSchema).min(1).max(4),
difficulty: z.number().int().min(1).max(3),
durationMinutes: MissionDurationMinutesSchema.default(20),
status: MissionStateSchema,
encounterLibraryVersion: z.string().min(1),
nextTickAt: z.iso.datetime(),