Loading apps/api/src/engine/engine.types.ts +2 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,8 @@ export const RT = { logUpdate: 'log:update', chatNew: 'chat:new', socialNew: 'social:new', socialUpdate: 'social:update', socialDelete: 'social:delete', newsNew: 'news:new', documentNew: 'document:new', callReminder: 'call:reminder', Loading apps/web/src/socket.ts +2 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,8 @@ export const RT = { logUpdate: 'log:update', chatNew: 'chat:new', socialNew: 'social:new', socialUpdate: 'social:update', socialDelete: 'social:delete', newsNew: 'news:new', documentNew: 'document:new', callReminder: 'call:reminder', Loading packages/shared/src/index.ts +65 −1 Original line number Diff line number Diff line Loading @@ -47,6 +47,70 @@ export interface ApiKitSummary { documents: number; } /** Canaux disponibles pour un inject de kit. */ export type KitInjectChannel = 'EMAIL' | 'CHAT' | 'SOCIAL' | 'NEWS' | 'CALL'; export interface ApiKitCharacter { id: string; ref: string; name: string; title: string | null; orgUnit: string | null; kind: CharacterKind; simEmail: string | null; avatarColor: string | null; } export interface ApiKitChannel { id: string; ref: string; name: string; } export interface ApiKitDocument { id: string; ref: string | null; folder: string | null; name: string; description: string | null; body: string | null; file: string | null; mimeType: string | null; } export interface ApiKitInject { id: string; order: number; offsetMinutes: number; channel: KitInjectChannel; title: string; body: string; senderRef: string | null; subject: string | null; targetRefs: string[]; attachmentRefs: string[]; channelRef: string | null; network: SocialNetwork | null; authorName: string | null; authorHandle: string | null; likes: number | null; } /** Kit complet et editable (pour l'editeur de bibliothèque). */ export interface ApiKit { id: string; builtinId: string | null; name: string; sector: string; source: string; description: string; objectives: string | null; characters: ApiKitCharacter[]; channels: ApiKitChannel[]; documents: ApiKitDocument[]; injects: ApiKitInject[]; } export type ExerciseStatus = 'DRAFT' | 'READY' | 'RUNNING' | 'PAUSED' | 'CLOSED' | 'ARCHIVED'; export type CharacterKind = 'PLAYER' | 'NPC'; Loading Loading @@ -100,7 +164,7 @@ export interface CreatedParticipant { export type InjectStatus = 'DRAFT' | 'PENDING' | 'SENT' | 'SKIPPED' | 'CANCELLED'; export type InjectTrigger = 'SCHEDULED' | 'MANUAL'; export type InjectChannel = 'EMAIL' | 'CHAT' | 'SOCIAL' | 'NEWS' | 'DOCUMENT' | 'DIRECTORY'; export type InjectChannel = 'EMAIL' | 'CHAT' | 'SOCIAL' | 'NEWS' | 'DOCUMENT' | 'DIRECTORY' | 'CALL'; export interface EmailPayload { subject: string; Loading Loading
apps/api/src/engine/engine.types.ts +2 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,8 @@ export const RT = { logUpdate: 'log:update', chatNew: 'chat:new', socialNew: 'social:new', socialUpdate: 'social:update', socialDelete: 'social:delete', newsNew: 'news:new', documentNew: 'document:new', callReminder: 'call:reminder', Loading
apps/web/src/socket.ts +2 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,8 @@ export const RT = { logUpdate: 'log:update', chatNew: 'chat:new', socialNew: 'social:new', socialUpdate: 'social:update', socialDelete: 'social:delete', newsNew: 'news:new', documentNew: 'document:new', callReminder: 'call:reminder', Loading
packages/shared/src/index.ts +65 −1 Original line number Diff line number Diff line Loading @@ -47,6 +47,70 @@ export interface ApiKitSummary { documents: number; } /** Canaux disponibles pour un inject de kit. */ export type KitInjectChannel = 'EMAIL' | 'CHAT' | 'SOCIAL' | 'NEWS' | 'CALL'; export interface ApiKitCharacter { id: string; ref: string; name: string; title: string | null; orgUnit: string | null; kind: CharacterKind; simEmail: string | null; avatarColor: string | null; } export interface ApiKitChannel { id: string; ref: string; name: string; } export interface ApiKitDocument { id: string; ref: string | null; folder: string | null; name: string; description: string | null; body: string | null; file: string | null; mimeType: string | null; } export interface ApiKitInject { id: string; order: number; offsetMinutes: number; channel: KitInjectChannel; title: string; body: string; senderRef: string | null; subject: string | null; targetRefs: string[]; attachmentRefs: string[]; channelRef: string | null; network: SocialNetwork | null; authorName: string | null; authorHandle: string | null; likes: number | null; } /** Kit complet et editable (pour l'editeur de bibliothèque). */ export interface ApiKit { id: string; builtinId: string | null; name: string; sector: string; source: string; description: string; objectives: string | null; characters: ApiKitCharacter[]; channels: ApiKitChannel[]; documents: ApiKitDocument[]; injects: ApiKitInject[]; } export type ExerciseStatus = 'DRAFT' | 'READY' | 'RUNNING' | 'PAUSED' | 'CLOSED' | 'ARCHIVED'; export type CharacterKind = 'PLAYER' | 'NPC'; Loading Loading @@ -100,7 +164,7 @@ export interface CreatedParticipant { export type InjectStatus = 'DRAFT' | 'PENDING' | 'SENT' | 'SKIPPED' | 'CANCELLED'; export type InjectTrigger = 'SCHEDULED' | 'MANUAL'; export type InjectChannel = 'EMAIL' | 'CHAT' | 'SOCIAL' | 'NEWS' | 'DOCUMENT' | 'DIRECTORY'; export type InjectChannel = 'EMAIL' | 'CHAT' | 'SOCIAL' | 'NEWS' | 'DOCUMENT' | 'DIRECTORY' | 'CALL'; export interface EmailPayload { subject: string; Loading