@muni-sanfer/types-gestor-documental 0.0.1-beta.2 → 0.0.1-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/base/entities.d.ts +215 -1
  2. package/dist/base/entities.js +60 -1
  3. package/dist/contracts/caseFile.contract.d.ts +149 -0
  4. package/dist/contracts/caseFile.contract.js +17 -0
  5. package/dist/contracts/document.contract.d.ts +17 -2
  6. package/dist/contracts/document.contract.js +1 -0
  7. package/dist/contracts/documentType.contract.d.ts +17 -1
  8. package/dist/contracts/index.d.ts +26 -1
  9. package/dist/contracts/index.js +6 -0
  10. package/dist/contracts/procedure.contract.d.ts +50 -0
  11. package/dist/contracts/procedure.contract.js +11 -0
  12. package/dist/entities/caseFile/caseFile.entity.d.ts +169 -0
  13. package/dist/entities/caseFile/caseFile.entity.js +2 -0
  14. package/dist/entities/caseFile/index.d.ts +1 -0
  15. package/dist/entities/caseFile/index.js +17 -0
  16. package/dist/entities/document/document.entity.d.ts +12 -0
  17. package/dist/entities/documentType/documentType.entity.d.ts +17 -1
  18. package/dist/entities/index.d.ts +2 -0
  19. package/dist/entities/index.js +2 -0
  20. package/dist/entities/procedure/index.d.ts +1 -0
  21. package/dist/entities/procedure/index.js +17 -0
  22. package/dist/entities/procedure/procedure.entity.d.ts +20 -0
  23. package/dist/entities/procedure/procedure.entity.js +2 -0
  24. package/package.json +1 -1
  25. package/src/base/entities.ts +261 -1
  26. package/src/contracts/caseFile.contract.ts +134 -0
  27. package/src/contracts/document.contract.ts +18 -0
  28. package/src/contracts/documentType.contract.ts +12 -1
  29. package/src/contracts/index.ts +7 -1
  30. package/src/contracts/procedure.contract.ts +53 -0
  31. package/src/entities/caseFile/caseFile.entity.ts +196 -0
  32. package/src/entities/caseFile/index.ts +1 -0
  33. package/src/entities/document/document.entity.ts +9 -0
  34. package/src/entities/documentType/documentType.entity.ts +18 -1
  35. package/src/entities/index.ts +2 -0
  36. package/src/entities/procedure/index.ts +1 -0
  37. package/src/entities/procedure/procedure.entity.ts +24 -0
@@ -33,7 +33,7 @@ export declare const DocumentParticipantStatus: {
33
33
  Resolved: "Resolved";
34
34
  Rejected: "Rejected";
35
35
  };
36
- export type DocumentTrackingAction = 'Created' | 'Updated' | 'Submitted' | 'Visaed' | 'Signed' | 'Rejected' | 'Finished' | 'Discarded' | 'Numbered' | 'NumberAnnulled' | 'Annulled' | 'Delivered' | 'Derived';
36
+ export type DocumentTrackingAction = 'Created' | 'Updated' | 'Submitted' | 'Visaed' | 'Signed' | 'Rejected' | 'Finished' | 'Discarded' | 'Numbered' | 'NumberAnnulled' | 'Annulled' | 'Delivered' | 'Derived' | 'Reassigned';
37
37
  export declare const DocumentTrackingAction: {
38
38
  Created: "Created";
39
39
  Updated: "Updated";
@@ -48,6 +48,12 @@ export declare const DocumentTrackingAction: {
48
48
  Annulled: "Annulled";
49
49
  Delivered: "Delivered";
50
50
  Derived: "Derived";
51
+ Reassigned: "Reassigned";
52
+ };
53
+ export type DocumentFlowStepType = 'Employee' | 'DirectorateHead';
54
+ export declare const DocumentFlowStepType: {
55
+ Employee: "Employee";
56
+ DirectorateHead: "DirectorateHead";
51
57
  };
52
58
  export type DocumentAttachmentType = 'File' | 'Link';
53
59
  export declare const DocumentAttachmentType: {
@@ -72,6 +78,68 @@ export declare const DocumentInstruction: {
72
78
  Respond: "Respond";
73
79
  Archive: "Archive";
74
80
  };
81
+ export type CaseFileStatus = 'Open' | 'Closed';
82
+ export declare const CaseFileStatus: {
83
+ Open: "Open";
84
+ Closed: "Closed";
85
+ };
86
+ export type CaseFileIncorporationMechanism = 'Manual' | 'WebService' | 'Mixed' | 'CitizenRepository' | 'Interoperability';
87
+ export declare const CaseFileIncorporationMechanism: {
88
+ Manual: "Manual";
89
+ WebService: "WebService";
90
+ Mixed: "Mixed";
91
+ CitizenRepository: "CitizenRepository";
92
+ Interoperability: "Interoperability";
93
+ };
94
+ export type CaseFileActuationType = 'AdministrativeAct' | 'Notification' | 'OfficialCommunication' | 'Interoperability' | 'RequestReception' | 'Subfolder' | 'PowerRegistration';
95
+ export declare const CaseFileActuationType: {
96
+ AdministrativeAct: "AdministrativeAct";
97
+ Notification: "Notification";
98
+ OfficialCommunication: "OfficialCommunication";
99
+ Interoperability: "Interoperability";
100
+ RequestReception: "RequestReception";
101
+ Subfolder: "Subfolder";
102
+ PowerRegistration: "PowerRegistration";
103
+ };
104
+ export type CaseFileEntryKind = 'Document' | 'File' | 'CaseFile';
105
+ export declare const CaseFileEntryKind: {
106
+ Document: "Document";
107
+ File: "File";
108
+ CaseFile: "CaseFile";
109
+ };
110
+ export type CaseFileActorRelation = 'Responsible' | 'Interested' | 'Author' | 'Referred' | 'Recipient' | 'MinisterOfFaith';
111
+ export declare const CaseFileActorRelation: {
112
+ Responsible: "Responsible";
113
+ Interested: "Interested";
114
+ Author: "Author";
115
+ Referred: "Referred";
116
+ Recipient: "Recipient";
117
+ MinisterOfFaith: "MinisterOfFaith";
118
+ };
119
+ export type CaseFileActorType = 'Citizen' | 'Foreigner' | 'PrivateInstitution' | 'Official';
120
+ export declare const CaseFileActorType: {
121
+ Citizen: "Citizen";
122
+ Foreigner: "Foreigner";
123
+ PrivateInstitution: "PrivateInstitution";
124
+ Official: "Official";
125
+ };
126
+ export type CaseFileTrackingAction = 'Created' | 'Updated' | 'EntryAdded' | 'EntryVoided' | 'ParticipantAdded' | 'ParticipantRemoved' | 'Closed' | 'Exported';
127
+ export declare const CaseFileTrackingAction: {
128
+ Created: "Created";
129
+ Updated: "Updated";
130
+ EntryAdded: "EntryAdded";
131
+ EntryVoided: "EntryVoided";
132
+ ParticipantAdded: "ParticipantAdded";
133
+ ParticipantRemoved: "ParticipantRemoved";
134
+ Closed: "Closed";
135
+ Exported: "Exported";
136
+ };
137
+ export type CaseFileAccessAction = 'Viewed' | 'FileDownloaded' | 'Exported';
138
+ export declare const CaseFileAccessAction: {
139
+ Viewed: "Viewed";
140
+ FileDownloaded: "FileDownloaded";
141
+ Exported: "Exported";
142
+ };
75
143
  export interface DocumentTypeEntity {
76
144
  id: string;
77
145
  name: string;
@@ -85,6 +153,7 @@ export interface DocumentTypeEntity {
85
153
  enabled: boolean;
86
154
  documents?: DocumentEntity[];
87
155
  annulledNumbers?: DocumentAnnulledNumberEntity[];
156
+ flowSteps?: DocumentTypeFlowStepEntity[];
88
157
  deleted: boolean;
89
158
  createdAt: string;
90
159
  updatedAt: string;
@@ -125,6 +194,7 @@ export interface DocumentEntity {
125
194
  annulledNumbers?: DocumentAnnulledNumberEntity[];
126
195
  recipients?: DocumentRecipientEntity[];
127
196
  deliveries?: DocumentDeliveryEntity[];
197
+ caseFileEntries?: CaseFileEntryEntity[];
128
198
  deleted: boolean;
129
199
  createdAt: string;
130
200
  updatedAt: string;
@@ -211,3 +281,147 @@ export interface DocumentDeliveryEntity {
211
281
  documentId: string;
212
282
  createdAt: string;
213
283
  }
284
+ export interface DocumentTypeFlowStepEntity {
285
+ id: string;
286
+ role: DocumentParticipantRole;
287
+ order: number;
288
+ type: DocumentFlowStepType;
289
+ employeeId?: string | null;
290
+ directorateCodeReference?: number | null;
291
+ name: string;
292
+ position?: string | null;
293
+ documentType?: DocumentTypeEntity;
294
+ documentTypeId: string;
295
+ createdAt: string;
296
+ }
297
+ export interface ProcedureEntity {
298
+ id: string;
299
+ name: string;
300
+ cpatId?: string | null;
301
+ cpatCode?: string | null;
302
+ description?: string | null;
303
+ enabled: boolean;
304
+ caseFiles?: CaseFileEntity[];
305
+ deleted: boolean;
306
+ createdAt: string;
307
+ updatedAt: string;
308
+ }
309
+ export interface CaseFileSequenceEntity {
310
+ year: number;
311
+ next: number;
312
+ }
313
+ export interface CaseFileEntity {
314
+ id: string;
315
+ code: string;
316
+ year: number;
317
+ number: number;
318
+ title: string;
319
+ subject: string;
320
+ summary?: string | null;
321
+ status: CaseFileStatus;
322
+ accessLevel: DocumentAccessLevel;
323
+ hasSensitiveData: boolean;
324
+ incorporationMechanism: CaseFileIncorporationMechanism;
325
+ schemaVersion: string;
326
+ procedure?: ProcedureEntity;
327
+ procedureId: string;
328
+ responsibleEmployeeId: string;
329
+ responsibleFullName: string;
330
+ responsiblePosition?: string | null;
331
+ closedAt?: string | null;
332
+ closedByEmployeeId?: string | null;
333
+ closedByFullName?: string | null;
334
+ closingNote?: string | null;
335
+ participants?: CaseFileParticipantEntity[];
336
+ actors?: CaseFileActorEntity[];
337
+ entries?: CaseFileEntryEntity[];
338
+ linkedFrom?: CaseFileEntryEntity[];
339
+ trackings?: CaseFileTrackingEntity[];
340
+ metadataChanges?: CaseFileMetadataChangeEntity[];
341
+ accesses?: CaseFileAccessEntity[];
342
+ createdAt: string;
343
+ updatedAt: string;
344
+ }
345
+ export interface CaseFileParticipantEntity {
346
+ id: string;
347
+ employeeId: string;
348
+ fullName: string;
349
+ position?: string | null;
350
+ addedByEmployeeId: string;
351
+ addedByFullName: string;
352
+ caseFile?: CaseFileEntity;
353
+ caseFileId: string;
354
+ createdAt: string;
355
+ }
356
+ export interface CaseFileActorEntity {
357
+ id: string;
358
+ relation: CaseFileActorRelation;
359
+ actorType: CaseFileActorType;
360
+ identifier?: string | null;
361
+ name: string;
362
+ caseFile?: CaseFileEntity;
363
+ caseFileId: string;
364
+ createdAt: string;
365
+ }
366
+ export interface CaseFileEntryEntity {
367
+ id: string;
368
+ sequence: number;
369
+ kind: CaseFileEntryKind;
370
+ actuationType: CaseFileActuationType;
371
+ title: string;
372
+ document?: DocumentEntity | null;
373
+ documentId?: string | null;
374
+ fileId?: string | null;
375
+ fileName?: string | null;
376
+ documentTypeName?: string | null;
377
+ originDate?: string | null;
378
+ author?: string | null;
379
+ keywords: string[];
380
+ accessLevel?: DocumentAccessLevel | null;
381
+ hasSensitiveData?: boolean | null;
382
+ linkedCaseFile?: CaseFileEntity | null;
383
+ linkedCaseFileId?: string | null;
384
+ sha256?: string | null;
385
+ size?: number | null;
386
+ hasAdvancedSignature: boolean;
387
+ incorporatedByEmployeeId: string;
388
+ incorporatedByFullName: string;
389
+ voidedAt?: string | null;
390
+ voidedByEmployeeId?: string | null;
391
+ voidedByFullName?: string | null;
392
+ voidReason?: string | null;
393
+ caseFile?: CaseFileEntity;
394
+ caseFileId: string;
395
+ createdAt: string;
396
+ }
397
+ export interface CaseFileTrackingEntity {
398
+ id: string;
399
+ action: CaseFileTrackingAction;
400
+ observation?: string | null;
401
+ employeeId?: string | null;
402
+ employeeFullName?: string | null;
403
+ caseFile?: CaseFileEntity;
404
+ caseFileId: string;
405
+ createdAt: string;
406
+ }
407
+ export interface CaseFileMetadataChangeEntity {
408
+ id: string;
409
+ field: string;
410
+ previousValue?: string | null;
411
+ newValue?: string | null;
412
+ employeeId: string;
413
+ employeeFullName: string;
414
+ caseFile?: CaseFileEntity;
415
+ caseFileId: string;
416
+ createdAt: string;
417
+ }
418
+ export interface CaseFileAccessEntity {
419
+ id: string;
420
+ action: CaseFileAccessAction;
421
+ entryId?: string | null;
422
+ employeeId: string;
423
+ employeeFullName: string;
424
+ caseFile?: CaseFileEntity;
425
+ caseFileId: string;
426
+ createdAt: string;
427
+ }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  // This file was auto-generated by prisma-generator-typescript-interfaces
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.DocumentInstruction = exports.DocumentDeliveryOrigin = exports.DocumentRecipientType = exports.DocumentAttachmentType = exports.DocumentTrackingAction = exports.DocumentParticipantStatus = exports.DocumentParticipantRole = exports.DocumentAccessLevel = exports.DocumentStatus = exports.DocumentCategory = void 0;
4
+ exports.CaseFileAccessAction = exports.CaseFileTrackingAction = exports.CaseFileActorType = exports.CaseFileActorRelation = exports.CaseFileEntryKind = exports.CaseFileActuationType = exports.CaseFileIncorporationMechanism = exports.CaseFileStatus = exports.DocumentInstruction = exports.DocumentDeliveryOrigin = exports.DocumentRecipientType = exports.DocumentAttachmentType = exports.DocumentFlowStepType = exports.DocumentTrackingAction = exports.DocumentParticipantStatus = exports.DocumentParticipantRole = exports.DocumentAccessLevel = exports.DocumentStatus = exports.DocumentCategory = void 0;
5
5
  exports.DocumentCategory = {
6
6
  Decree: 'Decree',
7
7
  Communication: 'Communication',
@@ -46,6 +46,11 @@ exports.DocumentTrackingAction = {
46
46
  Annulled: 'Annulled',
47
47
  Delivered: 'Delivered',
48
48
  Derived: 'Derived',
49
+ Reassigned: 'Reassigned',
50
+ };
51
+ exports.DocumentFlowStepType = {
52
+ Employee: 'Employee',
53
+ DirectorateHead: 'DirectorateHead',
49
54
  };
50
55
  exports.DocumentAttachmentType = {
51
56
  File: 'File',
@@ -66,3 +71,57 @@ exports.DocumentInstruction = {
66
71
  Respond: 'Respond',
67
72
  Archive: 'Archive',
68
73
  };
74
+ exports.CaseFileStatus = {
75
+ Open: 'Open',
76
+ Closed: 'Closed',
77
+ };
78
+ exports.CaseFileIncorporationMechanism = {
79
+ Manual: 'Manual',
80
+ WebService: 'WebService',
81
+ Mixed: 'Mixed',
82
+ CitizenRepository: 'CitizenRepository',
83
+ Interoperability: 'Interoperability',
84
+ };
85
+ exports.CaseFileActuationType = {
86
+ AdministrativeAct: 'AdministrativeAct',
87
+ Notification: 'Notification',
88
+ OfficialCommunication: 'OfficialCommunication',
89
+ Interoperability: 'Interoperability',
90
+ RequestReception: 'RequestReception',
91
+ Subfolder: 'Subfolder',
92
+ PowerRegistration: 'PowerRegistration',
93
+ };
94
+ exports.CaseFileEntryKind = {
95
+ Document: 'Document',
96
+ File: 'File',
97
+ CaseFile: 'CaseFile',
98
+ };
99
+ exports.CaseFileActorRelation = {
100
+ Responsible: 'Responsible',
101
+ Interested: 'Interested',
102
+ Author: 'Author',
103
+ Referred: 'Referred',
104
+ Recipient: 'Recipient',
105
+ MinisterOfFaith: 'MinisterOfFaith',
106
+ };
107
+ exports.CaseFileActorType = {
108
+ Citizen: 'Citizen',
109
+ Foreigner: 'Foreigner',
110
+ PrivateInstitution: 'PrivateInstitution',
111
+ Official: 'Official',
112
+ };
113
+ exports.CaseFileTrackingAction = {
114
+ Created: 'Created',
115
+ Updated: 'Updated',
116
+ EntryAdded: 'EntryAdded',
117
+ EntryVoided: 'EntryVoided',
118
+ ParticipantAdded: 'ParticipantAdded',
119
+ ParticipantRemoved: 'ParticipantRemoved',
120
+ Closed: 'Closed',
121
+ Exported: 'Exported',
122
+ };
123
+ exports.CaseFileAccessAction = {
124
+ Viewed: 'Viewed',
125
+ FileDownloaded: 'FileDownloaded',
126
+ Exported: 'Exported',
127
+ };
@@ -0,0 +1,149 @@
1
+ import { type CaseFileActorRelation, type CaseFileActorType, type CaseFileActuationType, type CaseFileEntity, type CaseFileStatus, type DocumentAccessLevel } from '../base/entities';
2
+ import { type CaseFileAddEntryResponseEntity, type CaseFileCreateResponseEntity, type CaseFileEntryFileResponseEntity, type CaseFileExportResponseEntity, type CaseFileGetAllResponseEntity, type CaseFileGetByIdResponseEntity, type CaseFileUpdateResponseEntity } from '../entities';
3
+ import { type RpcPage } from './contract';
4
+ import { type DocumentActor } from './document.contract';
5
+ /** Patrones NATS de `caseFile`: `<servicio>.<recurso>.<acción>`. */
6
+ export declare const CaseFilePatterns: {
7
+ readonly getAll: "gestorDocumental.caseFile.getAll";
8
+ readonly getById: "gestorDocumental.caseFile.getById";
9
+ readonly create: "gestorDocumental.caseFile.create";
10
+ readonly update: "gestorDocumental.caseFile.update";
11
+ readonly addEntry: "gestorDocumental.caseFile.addEntry";
12
+ readonly voidEntry: "gestorDocumental.caseFile.voidEntry";
13
+ readonly share: "gestorDocumental.caseFile.share";
14
+ readonly unshare: "gestorDocumental.caseFile.unshare";
15
+ readonly close: "gestorDocumental.caseFile.close";
16
+ readonly getEntryFile: "gestorDocumental.caseFile.getEntryFile";
17
+ readonly getExport: "gestorDocumental.caseFile.getExport";
18
+ };
19
+ /** Persona u organización relacionada con el expediente (MGDEE54). */
20
+ export interface CaseFileActorInput {
21
+ relation: CaseFileActorRelation;
22
+ actorType: CaseFileActorType;
23
+ identifier?: string | null;
24
+ name: string;
25
+ }
26
+ /** Metadatos del expediente que se ingresan a mano. */
27
+ export interface CaseFileWritePayload {
28
+ title: string;
29
+ subject: string;
30
+ summary?: string | null;
31
+ procedureId: string;
32
+ accessLevel: DocumentAccessLevel;
33
+ hasSensitiveData: boolean;
34
+ actors?: CaseFileActorInput[];
35
+ }
36
+ /** Actuación que se incorpora al índice: un documento del gestor, un archivo subido u otro expediente. */
37
+ export type CaseFileEntryInput = {
38
+ kind: 'Document';
39
+ actuationType: CaseFileActuationType;
40
+ documentId: string;
41
+ } | {
42
+ kind: 'File';
43
+ actuationType: CaseFileActuationType;
44
+ fileId: string;
45
+ fileName: string;
46
+ title: string;
47
+ documentTypeName?: string | null;
48
+ originDate?: string | null;
49
+ author?: string | null;
50
+ keywords: string[];
51
+ accessLevel: DocumentAccessLevel;
52
+ hasSensitiveData: boolean;
53
+ } | {
54
+ kind: 'CaseFile';
55
+ actuationType: CaseFileActuationType;
56
+ linkedCaseFileId: string;
57
+ };
58
+ /** Quién hace la operación (de la sesión) y si puede ver todos los expedientes. */
59
+ interface CaseFileActorPayload {
60
+ actor: DocumentActor;
61
+ viewAll?: boolean;
62
+ }
63
+ /** Ámbito del listado: los expedientes del funcionario (responsable o compartidos con él) o todos. */
64
+ export type CaseFileScope = 'mine' | 'all';
65
+ export interface CaseFileContract {
66
+ [CaseFilePatterns.getAll]: {
67
+ payload: {
68
+ pagination?: {
69
+ page?: number;
70
+ limit?: number;
71
+ };
72
+ filters?: {
73
+ search?: string;
74
+ status?: CaseFileStatus;
75
+ procedureId?: string;
76
+ scope?: CaseFileScope;
77
+ };
78
+ } & CaseFileActorPayload;
79
+ response: RpcPage<CaseFileGetAllResponseEntity[]>;
80
+ };
81
+ /** Por id o por su identificador (`EXP-2026-00001`), que es el del enlace persistente. Queda en el registro de accesos. */
82
+ [CaseFilePatterns.getById]: {
83
+ payload: {
84
+ id: string;
85
+ } & CaseFileActorPayload;
86
+ response: CaseFileGetByIdResponseEntity;
87
+ };
88
+ [CaseFilePatterns.create]: {
89
+ payload: CaseFileWritePayload & {
90
+ actor: DocumentActor;
91
+ };
92
+ response: CaseFileCreateResponseEntity;
93
+ };
94
+ [CaseFilePatterns.update]: {
95
+ payload: CaseFileWritePayload & Pick<CaseFileEntity, 'id'> & {
96
+ actor: DocumentActor;
97
+ };
98
+ response: CaseFileUpdateResponseEntity;
99
+ };
100
+ [CaseFilePatterns.addEntry]: {
101
+ payload: Pick<CaseFileEntity, 'id'> & {
102
+ entry: CaseFileEntryInput;
103
+ } & CaseFileActorPayload;
104
+ response: CaseFileAddEntryResponseEntity;
105
+ };
106
+ /** Deja una actuación sin efecto, con su motivo. No se elimina del índice. */
107
+ [CaseFilePatterns.voidEntry]: {
108
+ payload: Pick<CaseFileEntity, 'id'> & {
109
+ entryId: string;
110
+ reason: string;
111
+ actor: DocumentActor;
112
+ };
113
+ response: CaseFileUpdateResponseEntity;
114
+ };
115
+ [CaseFilePatterns.share]: {
116
+ payload: Pick<CaseFileEntity, 'id'> & {
117
+ employeeIds: string[];
118
+ actor: DocumentActor;
119
+ };
120
+ response: CaseFileUpdateResponseEntity;
121
+ };
122
+ [CaseFilePatterns.unshare]: {
123
+ payload: Pick<CaseFileEntity, 'id'> & {
124
+ participantId: string;
125
+ actor: DocumentActor;
126
+ };
127
+ response: CaseFileUpdateResponseEntity;
128
+ };
129
+ [CaseFilePatterns.close]: {
130
+ payload: Pick<CaseFileEntity, 'id'> & {
131
+ note?: string | null;
132
+ actor: DocumentActor;
133
+ };
134
+ response: CaseFileUpdateResponseEntity;
135
+ };
136
+ /** Archivo de una actuación del índice. Queda en el registro de accesos. */
137
+ [CaseFilePatterns.getEntryFile]: {
138
+ payload: Pick<CaseFileEntity, 'id'> & {
139
+ entryId: string;
140
+ } & CaseFileActorPayload;
141
+ response: CaseFileEntryFileResponseEntity;
142
+ };
143
+ /** Metadatos y archivos para exportar el expediente completo. Queda en la trazabilidad y en el registro de accesos. */
144
+ [CaseFilePatterns.getExport]: {
145
+ payload: Pick<CaseFileEntity, 'id'> & CaseFileActorPayload;
146
+ response: CaseFileExportResponseEntity;
147
+ };
148
+ }
149
+ export {};
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CaseFilePatterns = void 0;
4
+ /** Patrones NATS de `caseFile`: `<servicio>.<recurso>.<acción>`. */
5
+ exports.CaseFilePatterns = {
6
+ getAll: 'gestorDocumental.caseFile.getAll',
7
+ getById: 'gestorDocumental.caseFile.getById',
8
+ create: 'gestorDocumental.caseFile.create',
9
+ update: 'gestorDocumental.caseFile.update',
10
+ addEntry: 'gestorDocumental.caseFile.addEntry',
11
+ voidEntry: 'gestorDocumental.caseFile.voidEntry',
12
+ share: 'gestorDocumental.caseFile.share',
13
+ unshare: 'gestorDocumental.caseFile.unshare',
14
+ close: 'gestorDocumental.caseFile.close',
15
+ getEntryFile: 'gestorDocumental.caseFile.getEntryFile',
16
+ getExport: 'gestorDocumental.caseFile.getExport',
17
+ };
@@ -1,5 +1,5 @@
1
- import { type DocumentAccessLevel, type DocumentAttachmentEntity, type DocumentDeliveryEntity, type DocumentEntity, type DocumentInstruction, type DocumentStatus } from '../base/entities';
2
- import { type DocumentAnnulResponseEntity, type DocumentCloseDeliveryResponseEntity, type DocumentCreateResponseEntity, type DocumentDeriveResponseEntity, type DocumentDiscardResponseEntity, type DocumentGetAllResponseEntity, type DocumentGetByIdResponseEntity, type DocumentGetSummaryResponseEntity, type DocumentInboxItemEntity, type DocumentPublicFileResponseEntity, type DocumentReviewResponseEntity, type DocumentUpdateResponseEntity, type DocumentVerifyResponseEntity } from '../entities';
1
+ import { type DocumentAccessLevel, type DocumentAttachmentEntity, type DocumentDeliveryEntity, type DocumentEntity, type DocumentInstruction, type DocumentParticipantEntity, type DocumentStatus } from '../base/entities';
2
+ import { type DocumentAnnulResponseEntity, type DocumentCloseDeliveryResponseEntity, type DocumentCreateResponseEntity, type DocumentDeriveResponseEntity, type DocumentDiscardResponseEntity, type DocumentGetAllResponseEntity, type DocumentGetByIdResponseEntity, type DocumentGetSummaryResponseEntity, type DocumentInboxItemEntity, type DocumentPublicFileResponseEntity, type DocumentReassignResponseEntity, type DocumentReviewResponseEntity, type DocumentUpdateResponseEntity, type DocumentVerifyResponseEntity } from '../entities';
3
3
  import { type RpcPage } from './contract';
4
4
  /** Patrones NATS de `document`: `<servicio>.<recurso>.<acción>`. */
5
5
  export declare const DocumentPatterns: {
@@ -10,6 +10,7 @@ export declare const DocumentPatterns: {
10
10
  readonly create: "gestorDocumental.document.create";
11
11
  readonly update: "gestorDocumental.document.update";
12
12
  readonly review: "gestorDocumental.document.review";
13
+ readonly reassign: "gestorDocumental.document.reassign";
13
14
  readonly discard: "gestorDocumental.document.discard";
14
15
  readonly annul: "gestorDocumental.document.annul";
15
16
  readonly derive: "gestorDocumental.document.derive";
@@ -148,6 +149,20 @@ export interface DocumentContract {
148
149
  };
149
150
  response: DocumentReviewResponseEntity;
150
151
  };
152
+ /**
153
+ * Pasa un turno pendiente (de visación o de firma) a otro funcionario, por ausencia o por error, y lo deja en la
154
+ * trazabilidad con su motivo. Puede hacerlo quien redactó el documento; con `anyDocument`, quien lleva el registro.
155
+ */
156
+ [DocumentPatterns.reassign]: {
157
+ payload: Pick<DocumentEntity, 'id'> & {
158
+ participantId: DocumentParticipantEntity['id'];
159
+ employeeId: string;
160
+ reason: string;
161
+ actor: DocumentActor;
162
+ anyDocument?: boolean;
163
+ };
164
+ response: DocumentReassignResponseEntity;
165
+ };
151
166
  [DocumentPatterns.discard]: {
152
167
  payload: Pick<DocumentEntity, 'id'> & {
153
168
  actor: DocumentActor;
@@ -10,6 +10,7 @@ exports.DocumentPatterns = {
10
10
  create: 'gestorDocumental.document.create',
11
11
  update: 'gestorDocumental.document.update',
12
12
  review: 'gestorDocumental.document.review',
13
+ reassign: 'gestorDocumental.document.reassign',
13
14
  discard: 'gestorDocumental.document.discard',
14
15
  annul: 'gestorDocumental.document.annul',
15
16
  derive: 'gestorDocumental.document.derive',
@@ -1,4 +1,4 @@
1
- import { type DocumentCategory, type DocumentTypeEntity } from '../base/entities';
1
+ import { type DocumentCategory, type DocumentParticipantRole, type DocumentTypeEntity } from '../base/entities';
2
2
  import { type DocumentTypeCreateResponseEntity, type DocumentTypeGetAllResponseEntity, type DocumentTypeGetByIdResponseEntity, type DocumentTypeUpdateResponseEntity } from '../entities';
3
3
  import { type RpcPage } from './contract';
4
4
  /** Patrones NATS de `documentType`: `<servicio>.<recurso>.<acción>`. */
@@ -9,6 +9,21 @@ export declare const DocumentTypePatterns: {
9
9
  readonly update: "gestorDocumental.documentType.update";
10
10
  readonly setEnabled: "gestorDocumental.documentType.setEnabled";
11
11
  };
12
+ /**
13
+ * Paso del flujo sugerido de un tipo documental: un funcionario en particular, o quien dirija una dirección al
14
+ * momento de redactar (su jefatura o, con subrogancia activa, el subrogante). El nombre de la dirección lo resuelve
15
+ * el gateway; el navegador solo indica cuál es.
16
+ */
17
+ export type DocumentFlowStepInput = {
18
+ role: DocumentParticipantRole;
19
+ type: 'Employee';
20
+ employeeId: string;
21
+ } | {
22
+ role: DocumentParticipantRole;
23
+ type: 'DirectorateHead';
24
+ directorateCodeReference: number;
25
+ name: string;
26
+ };
12
27
  /** Datos de un tipo documental al crearlo o editarlo. */
13
28
  export interface DocumentTypeWritePayload {
14
29
  name: string;
@@ -19,6 +34,7 @@ export interface DocumentTypeWritePayload {
19
34
  resetsYearly?: boolean;
20
35
  directorateCodeReference?: number | null;
21
36
  enabled?: boolean;
37
+ flowSteps?: DocumentFlowStepInput[];
22
38
  }
23
39
  /**
24
40
  * Qué se envía y qué se responde en cada patrón. Generado desde los handlers y los DTO del microservicio.
@@ -1,8 +1,12 @@
1
+ import { type CaseFileContract } from './caseFile.contract';
1
2
  import { type DocumentContract } from './document.contract';
2
3
  import { type DocumentTypeContract } from './documentType.contract';
4
+ import { type ProcedureContract } from './procedure.contract';
3
5
  export * from './contract';
4
6
  export * from './document.contract';
5
7
  export * from './documentType.contract';
8
+ export * from './procedure.contract';
9
+ export * from './caseFile.contract';
6
10
  /** Patrones NATS de gestor-documental-ms, por recurso: `gestorDocumental.<recurso>.<acción>`. */
7
11
  export declare const GestorDocumentalPatterns: {
8
12
  readonly documentType: {
@@ -20,6 +24,7 @@ export declare const GestorDocumentalPatterns: {
20
24
  readonly create: "gestorDocumental.document.create";
21
25
  readonly update: "gestorDocumental.document.update";
22
26
  readonly review: "gestorDocumental.document.review";
27
+ readonly reassign: "gestorDocumental.document.reassign";
23
28
  readonly discard: "gestorDocumental.document.discard";
24
29
  readonly annul: "gestorDocumental.document.annul";
25
30
  readonly derive: "gestorDocumental.document.derive";
@@ -28,6 +33,26 @@ export declare const GestorDocumentalPatterns: {
28
33
  readonly getPublicFile: "gestorDocumental.document.getPublicFile";
29
34
  readonly getFilesFolder: "gestorDocumental.document.getFilesFolder";
30
35
  };
36
+ readonly procedure: {
37
+ readonly getAll: "gestorDocumental.procedure.getAll";
38
+ readonly getById: "gestorDocumental.procedure.getById";
39
+ readonly create: "gestorDocumental.procedure.create";
40
+ readonly update: "gestorDocumental.procedure.update";
41
+ readonly setEnabled: "gestorDocumental.procedure.setEnabled";
42
+ };
43
+ readonly caseFile: {
44
+ readonly getAll: "gestorDocumental.caseFile.getAll";
45
+ readonly getById: "gestorDocumental.caseFile.getById";
46
+ readonly create: "gestorDocumental.caseFile.create";
47
+ readonly update: "gestorDocumental.caseFile.update";
48
+ readonly addEntry: "gestorDocumental.caseFile.addEntry";
49
+ readonly voidEntry: "gestorDocumental.caseFile.voidEntry";
50
+ readonly share: "gestorDocumental.caseFile.share";
51
+ readonly unshare: "gestorDocumental.caseFile.unshare";
52
+ readonly close: "gestorDocumental.caseFile.close";
53
+ readonly getEntryFile: "gestorDocumental.caseFile.getEntryFile";
54
+ readonly getExport: "gestorDocumental.caseFile.getExport";
55
+ };
31
56
  };
32
57
  /** Contrato completo de gestor-documental-ms: la unión de los contratos de sus recursos. */
33
- export type GestorDocumentalContract = DocumentTypeContract & DocumentContract;
58
+ export type GestorDocumentalContract = DocumentTypeContract & DocumentContract & ProcedureContract & CaseFileContract;
@@ -15,13 +15,19 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.GestorDocumentalPatterns = void 0;
18
+ const caseFile_contract_1 = require("./caseFile.contract");
18
19
  const document_contract_1 = require("./document.contract");
19
20
  const documentType_contract_1 = require("./documentType.contract");
21
+ const procedure_contract_1 = require("./procedure.contract");
20
22
  __exportStar(require("./contract"), exports);
21
23
  __exportStar(require("./document.contract"), exports);
22
24
  __exportStar(require("./documentType.contract"), exports);
25
+ __exportStar(require("./procedure.contract"), exports);
26
+ __exportStar(require("./caseFile.contract"), exports);
23
27
  /** Patrones NATS de gestor-documental-ms, por recurso: `gestorDocumental.<recurso>.<acción>`. */
24
28
  exports.GestorDocumentalPatterns = {
25
29
  documentType: documentType_contract_1.DocumentTypePatterns,
26
30
  document: document_contract_1.DocumentPatterns,
31
+ procedure: procedure_contract_1.ProcedurePatterns,
32
+ caseFile: caseFile_contract_1.CaseFilePatterns,
27
33
  };