@muni-sanfer/types-gestor-documental 0.0.1-beta.1 → 0.0.1-beta.11

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 (74) hide show
  1. package/dist/base/entities.d.ts +436 -1
  2. package/dist/base/entities.js +98 -1
  3. package/dist/contracts/caseFile.contract.d.ts +159 -0
  4. package/dist/contracts/caseFile.contract.js +18 -0
  5. package/dist/contracts/document.contract.d.ts +163 -3
  6. package/dist/contracts/document.contract.js +8 -0
  7. package/dist/contracts/documentType.contract.d.ts +18 -1
  8. package/dist/contracts/index.d.ts +84 -1
  9. package/dist/contracts/index.js +18 -0
  10. package/dist/contracts/partsOffice.contract.d.ts +171 -0
  11. package/dist/contracts/partsOffice.contract.js +22 -0
  12. package/dist/contracts/procedure.contract.d.ts +50 -0
  13. package/dist/contracts/procedure.contract.js +11 -0
  14. package/dist/contracts/registerBook.contract.d.ts +27 -0
  15. package/dist/contracts/registerBook.contract.js +8 -0
  16. package/dist/contracts/signatureBatch.contract.d.ts +109 -0
  17. package/dist/contracts/signatureBatch.contract.js +12 -0
  18. package/dist/contracts/workFolder.contract.d.ts +114 -0
  19. package/dist/contracts/workFolder.contract.js +16 -0
  20. package/dist/entities/caseFile/caseFile.entity.d.ts +176 -0
  21. package/dist/entities/caseFile/caseFile.entity.js +2 -0
  22. package/dist/entities/caseFile/index.d.ts +1 -0
  23. package/dist/entities/caseFile/index.js +17 -0
  24. package/dist/entities/document/document.entity.d.ts +248 -1
  25. package/dist/entities/documentType/documentType.entity.d.ts +18 -1
  26. package/dist/entities/index.d.ts +6 -0
  27. package/dist/entities/index.js +6 -0
  28. package/dist/entities/partsOffice/index.d.ts +1 -0
  29. package/dist/entities/partsOffice/index.js +17 -0
  30. package/dist/entities/partsOffice/partsOffice.entity.d.ts +98 -0
  31. package/dist/entities/partsOffice/partsOffice.entity.js +2 -0
  32. package/dist/entities/procedure/index.d.ts +1 -0
  33. package/dist/entities/procedure/index.js +17 -0
  34. package/dist/entities/procedure/procedure.entity.d.ts +20 -0
  35. package/dist/entities/procedure/procedure.entity.js +2 -0
  36. package/dist/entities/registerBook/index.d.ts +1 -0
  37. package/dist/entities/registerBook/index.js +17 -0
  38. package/dist/entities/registerBook/registerBook.entity.d.ts +42 -0
  39. package/dist/entities/registerBook/registerBook.entity.js +2 -0
  40. package/dist/entities/signatureBatch/index.d.ts +1 -0
  41. package/dist/entities/signatureBatch/index.js +17 -0
  42. package/dist/entities/signatureBatch/signatureBatch.entity.d.ts +107 -0
  43. package/dist/entities/signatureBatch/signatureBatch.entity.js +2 -0
  44. package/dist/entities/workFolder/index.d.ts +1 -0
  45. package/dist/entities/workFolder/index.js +17 -0
  46. package/dist/entities/workFolder/workFolder.entity.d.ts +83 -0
  47. package/dist/entities/workFolder/workFolder.entity.js +2 -0
  48. package/package.json +1 -1
  49. package/src/base/entities.ts +509 -1
  50. package/src/contracts/caseFile.contract.ts +141 -0
  51. package/src/contracts/document.contract.ts +155 -0
  52. package/src/contracts/documentType.contract.ts +14 -1
  53. package/src/contracts/index.ts +26 -1
  54. package/src/contracts/partsOffice.contract.ts +120 -0
  55. package/src/contracts/procedure.contract.ts +53 -0
  56. package/src/contracts/registerBook.contract.ts +24 -0
  57. package/src/contracts/signatureBatch.contract.ts +96 -0
  58. package/src/contracts/workFolder.contract.ts +75 -0
  59. package/src/entities/caseFile/caseFile.entity.ts +204 -0
  60. package/src/entities/caseFile/index.ts +1 -0
  61. package/src/entities/document/document.entity.ts +259 -0
  62. package/src/entities/documentType/documentType.entity.ts +20 -1
  63. package/src/entities/index.ts +6 -0
  64. package/src/entities/partsOffice/index.ts +1 -0
  65. package/src/entities/partsOffice/partsOffice.entity.ts +103 -0
  66. package/src/entities/procedure/index.ts +1 -0
  67. package/src/entities/procedure/procedure.entity.ts +24 -0
  68. package/src/entities/registerBook/index.ts +1 -0
  69. package/src/entities/registerBook/registerBook.entity.ts +46 -0
  70. package/src/entities/signatureBatch/index.ts +1 -0
  71. package/src/entities/signatureBatch/signatureBatch.entity.ts +110 -0
  72. package/src/entities/workFolder/index.ts +1 -0
  73. package/src/entities/workFolder/workFolder.entity.ts +84 -0
  74. package/tsconfig.json +1 -3
@@ -0,0 +1,159 @@
1
+ import { type CaseFileActorRelation, type CaseFileActorType, type CaseFileActuationType, type CaseFileEntity, type CaseFileStatus, type DocumentAccessLevel } from '../base/entities';
2
+ import { type CaseFileAddBatchResponseEntity, 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 addBatch: "gestorDocumental.caseFile.addBatch";
13
+ readonly voidEntry: "gestorDocumental.caseFile.voidEntry";
14
+ readonly share: "gestorDocumental.caseFile.share";
15
+ readonly unshare: "gestorDocumental.caseFile.unshare";
16
+ readonly close: "gestorDocumental.caseFile.close";
17
+ readonly getEntryFile: "gestorDocumental.caseFile.getEntryFile";
18
+ readonly getExport: "gestorDocumental.caseFile.getExport";
19
+ };
20
+ /** Persona u organización relacionada con el expediente (MGDEE54). */
21
+ export interface CaseFileActorInput {
22
+ relation: CaseFileActorRelation;
23
+ actorType: CaseFileActorType;
24
+ identifier?: string | null;
25
+ name: string;
26
+ }
27
+ /** Metadatos del expediente que se ingresan a mano. */
28
+ export interface CaseFileWritePayload {
29
+ title: string;
30
+ subject: string;
31
+ summary?: string | null;
32
+ procedureId: string;
33
+ accessLevel: DocumentAccessLevel;
34
+ hasSensitiveData: boolean;
35
+ actors?: CaseFileActorInput[];
36
+ }
37
+ /** Actuación que se incorpora al índice: un documento del gestor, un archivo subido u otro expediente. */
38
+ export type CaseFileEntryInput = {
39
+ kind: 'Document';
40
+ actuationType: CaseFileActuationType;
41
+ documentId: string;
42
+ } | {
43
+ kind: 'File';
44
+ actuationType: CaseFileActuationType;
45
+ fileId: string;
46
+ fileName: string;
47
+ title: string;
48
+ documentTypeName?: string | null;
49
+ originDate?: string | null;
50
+ author?: string | null;
51
+ keywords: string[];
52
+ accessLevel: DocumentAccessLevel;
53
+ hasSensitiveData: boolean;
54
+ } | {
55
+ kind: 'CaseFile';
56
+ actuationType: CaseFileActuationType;
57
+ linkedCaseFileId: string;
58
+ };
59
+ /** Quién hace la operación (de la sesión) y si puede ver todos los expedientes. */
60
+ interface CaseFileActorPayload {
61
+ actor: DocumentActor;
62
+ viewAll?: boolean;
63
+ }
64
+ /** Ámbito del listado: los expedientes del funcionario (responsable o compartidos con él) o todos. */
65
+ export type CaseFileScope = 'mine' | 'all';
66
+ export interface CaseFileContract {
67
+ [CaseFilePatterns.getAll]: {
68
+ payload: {
69
+ pagination?: {
70
+ page?: number;
71
+ limit?: number;
72
+ };
73
+ filters?: {
74
+ search?: string;
75
+ status?: CaseFileStatus;
76
+ procedureId?: string;
77
+ scope?: CaseFileScope;
78
+ };
79
+ } & CaseFileActorPayload;
80
+ response: RpcPage<CaseFileGetAllResponseEntity[]>;
81
+ };
82
+ /** Por id o por su identificador (`EXP-2026-00001`), que es el del enlace persistente. Queda en el registro de accesos. */
83
+ [CaseFilePatterns.getById]: {
84
+ payload: {
85
+ id: string;
86
+ } & CaseFileActorPayload;
87
+ response: CaseFileGetByIdResponseEntity;
88
+ };
89
+ [CaseFilePatterns.create]: {
90
+ payload: CaseFileWritePayload & {
91
+ actor: DocumentActor;
92
+ };
93
+ response: CaseFileCreateResponseEntity;
94
+ };
95
+ [CaseFilePatterns.update]: {
96
+ payload: CaseFileWritePayload & Pick<CaseFileEntity, 'id'> & {
97
+ actor: DocumentActor;
98
+ };
99
+ response: CaseFileUpdateResponseEntity;
100
+ };
101
+ /** Incorpora los documentos finalizados de un lote de firma, en su orden; omite los que ya están en el expediente. */
102
+ [CaseFilePatterns.addBatch]: {
103
+ payload: {
104
+ id: string;
105
+ batchId: string;
106
+ actuationType: CaseFileActuationType;
107
+ } & CaseFileActorPayload;
108
+ response: CaseFileAddBatchResponseEntity;
109
+ };
110
+ [CaseFilePatterns.addEntry]: {
111
+ payload: Pick<CaseFileEntity, 'id'> & {
112
+ entry: CaseFileEntryInput;
113
+ } & CaseFileActorPayload;
114
+ response: CaseFileAddEntryResponseEntity;
115
+ };
116
+ /** Deja una actuación sin efecto, con su motivo. No se elimina del índice. */
117
+ [CaseFilePatterns.voidEntry]: {
118
+ payload: Pick<CaseFileEntity, 'id'> & {
119
+ entryId: string;
120
+ reason: string;
121
+ actor: DocumentActor;
122
+ };
123
+ response: CaseFileUpdateResponseEntity;
124
+ };
125
+ [CaseFilePatterns.share]: {
126
+ payload: Pick<CaseFileEntity, 'id'> & {
127
+ employeeIds: string[];
128
+ actor: DocumentActor;
129
+ };
130
+ response: CaseFileUpdateResponseEntity;
131
+ };
132
+ [CaseFilePatterns.unshare]: {
133
+ payload: Pick<CaseFileEntity, 'id'> & {
134
+ participantId: string;
135
+ actor: DocumentActor;
136
+ };
137
+ response: CaseFileUpdateResponseEntity;
138
+ };
139
+ [CaseFilePatterns.close]: {
140
+ payload: Pick<CaseFileEntity, 'id'> & {
141
+ note?: string | null;
142
+ actor: DocumentActor;
143
+ };
144
+ response: CaseFileUpdateResponseEntity;
145
+ };
146
+ /** Archivo de una actuación del índice. Queda en el registro de accesos. */
147
+ [CaseFilePatterns.getEntryFile]: {
148
+ payload: Pick<CaseFileEntity, 'id'> & {
149
+ entryId: string;
150
+ } & CaseFileActorPayload;
151
+ response: CaseFileEntryFileResponseEntity;
152
+ };
153
+ /** Metadatos y archivos para exportar el expediente completo. Queda en la trazabilidad y en el registro de accesos. */
154
+ [CaseFilePatterns.getExport]: {
155
+ payload: Pick<CaseFileEntity, 'id'> & CaseFileActorPayload;
156
+ response: CaseFileExportResponseEntity;
157
+ };
158
+ }
159
+ export {};
@@ -0,0 +1,18 @@
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
+ addBatch: 'gestorDocumental.caseFile.addBatch',
12
+ voidEntry: 'gestorDocumental.caseFile.voidEntry',
13
+ share: 'gestorDocumental.caseFile.share',
14
+ unshare: 'gestorDocumental.caseFile.unshare',
15
+ close: 'gestorDocumental.caseFile.close',
16
+ getEntryFile: 'gestorDocumental.caseFile.getEntryFile',
17
+ getExport: 'gestorDocumental.caseFile.getExport',
18
+ };
@@ -1,19 +1,27 @@
1
- import { type DocumentAccessLevel, type DocumentAttachmentEntity, type DocumentEntity, type DocumentStatus } from '../base/entities';
2
- import { type DocumentAnnulResponseEntity, type DocumentCreateResponseEntity, type DocumentDiscardResponseEntity, type DocumentGetAllResponseEntity, type DocumentGetByIdResponseEntity, type DocumentGetSummaryResponseEntity, 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 DocumentSignManyResponseEntity, type DocumentAgendaResponseEntity, type DocumentComposeResponseEntity, type DocumentComposition, type DocumentTrailExportEntity, 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: {
6
6
  readonly getAll: "gestorDocumental.document.getAll";
7
+ readonly getInbox: "gestorDocumental.document.getInbox";
7
8
  readonly getSummary: "gestorDocumental.document.getSummary";
8
9
  readonly getById: "gestorDocumental.document.getById";
9
10
  readonly create: "gestorDocumental.document.create";
10
11
  readonly update: "gestorDocumental.document.update";
11
12
  readonly review: "gestorDocumental.document.review";
13
+ readonly signMany: "gestorDocumental.document.signMany";
14
+ readonly reassign: "gestorDocumental.document.reassign";
12
15
  readonly discard: "gestorDocumental.document.discard";
13
16
  readonly annul: "gestorDocumental.document.annul";
17
+ readonly derive: "gestorDocumental.document.derive";
18
+ readonly closeDelivery: "gestorDocumental.document.closeDelivery";
14
19
  readonly verify: "gestorDocumental.document.verify";
15
20
  readonly getPublicFile: "gestorDocumental.document.getPublicFile";
16
21
  readonly getFilesFolder: "gestorDocumental.document.getFilesFolder";
22
+ readonly getAgenda: "gestorDocumental.document.getAgenda";
23
+ readonly exportTrail: "gestorDocumental.document.exportTrail";
24
+ readonly compose: "gestorDocumental.document.compose";
17
25
  };
18
26
  /**
19
27
  * Funcionario que hace la operación y sus áreas (direcciones y departamentos a los que pertenece o que dirige). Lo
@@ -25,7 +33,27 @@ export interface DocumentActor {
25
33
  departmentIds: string[];
26
34
  }
27
35
  /** Bandeja desde la que se lista. Todas son del funcionario (`actor`), salvo `all`. */
28
- export type DocumentBucket = 'created' | 'toVisa' | 'toSign' | 'participated' | 'all';
36
+ export type DocumentBucket = 'created' | 'sent' | 'toVisa' | 'toSign' | 'participated' | 'all';
37
+ /**
38
+ * Destinatario de un documento o de una derivación: una persona o un área completa. El gateway resuelve el nombre del
39
+ * área y quiénes la integran hoy; el navegador solo indica cuál es.
40
+ */
41
+ export type DocumentRecipientInput = {
42
+ type: 'Employee';
43
+ employeeId: string;
44
+ } | {
45
+ type: 'Directorate';
46
+ directorateCodeReference: number;
47
+ name: string;
48
+ memberEmployeeIds: string[];
49
+ } | {
50
+ type: 'Department';
51
+ departmentId: string;
52
+ name: string;
53
+ memberEmployeeIds: string[];
54
+ };
55
+ /** Qué parte de la bandeja de recibidos se lista: lo que falta atender, lo ya atendido, o todo. */
56
+ export type DocumentInboxState = 'pending' | 'closed' | 'all';
29
57
  /** Qué hace con el documento quien tiene el turno. */
30
58
  export type DocumentReviewAction = 'Visa' | 'Sign' | 'Reject';
31
59
  /**
@@ -44,15 +72,68 @@ export interface DocumentWritePayload extends Pick<DocumentEntity, 'subject' | '
44
72
  };
45
73
  attachments?: Pick<DocumentAttachmentEntity, 'name' | 'type' | 'fileId' | 'url'>[];
46
74
  visaEmployeeIds: string[];
75
+ visaStages?: number[] | null;
76
+ restartFlow?: boolean;
77
+ composition?: DocumentComposition | null;
47
78
  signatureEmployeeIds: string[];
48
79
  signatureSheet?: boolean;
80
+ recipients?: DocumentRecipientInput[];
81
+ responseDueAt?: string | null;
82
+ replyToDocumentId?: string | null;
83
+ externalRecipients?: DocumentExternalRecipientInput[];
49
84
  action?: 'Submit';
50
85
  actor: DocumentActor;
51
86
  }
87
+ /** Destinatario externo: una institución de DocDigital y, si se indica, uno de sus usuarios. */
88
+ export interface DocumentExternalRecipientInput {
89
+ entityId: number;
90
+ userId?: number | null;
91
+ }
52
92
  /**
53
93
  * Qué se envía y qué se responde en cada patrón. Generado desde los handlers y los DTO del microservicio.
54
94
  */
55
95
  export interface DocumentContract {
96
+ /**
97
+ * Arma el PDF de un documento redactado con una plantilla oficial: membrete, estructura y espacio libre para el
98
+ * número, las visaciones, las firmas y el QR. Con `preview` lo entrega para verlo; si no, lo sube y entrega su
99
+ * `fileId` para guardarlo como el PDF del documento.
100
+ */
101
+ [DocumentPatterns.compose]: {
102
+ payload: {
103
+ documentTypeId: string;
104
+ subject: string;
105
+ composition: DocumentComposition;
106
+ visaCount: number;
107
+ signatureCount: number;
108
+ signatureSheet?: boolean;
109
+ /** Unidad que emite, para el membrete. */
110
+ issuingUnitName?: string | null;
111
+ preview?: boolean;
112
+ actor: DocumentActor;
113
+ };
114
+ response: DocumentComposeResponseEntity;
115
+ };
116
+ /** Plazos del funcionario entre `from` y `to` (hasta 62 días), y lo que tiene vencido sin atender. */
117
+ [DocumentPatterns.getAgenda]: {
118
+ payload: {
119
+ from: string;
120
+ to: string;
121
+ actor: DocumentActor;
122
+ };
123
+ response: DocumentAgendaResponseEntity;
124
+ };
125
+ /**
126
+ * Trazabilidad del documento en PDF: datos, flujo, hechos y huella de sus archivos. Con las mismas reglas de acceso
127
+ * del detalle. `generatedBy`: quién la descarga (va al pie).
128
+ */
129
+ [DocumentPatterns.exportTrail]: {
130
+ payload: Pick<DocumentEntity, 'id'> & {
131
+ actor?: DocumentActor;
132
+ viewAll?: boolean;
133
+ generatedBy: string;
134
+ };
135
+ response: DocumentTrailExportEntity;
136
+ };
56
137
  [DocumentPatterns.getAll]: {
57
138
  payload: {
58
139
  pagination?: {
@@ -66,11 +147,32 @@ export interface DocumentContract {
66
147
  documentTypeId?: string;
67
148
  dateFrom?: string;
68
149
  dateTo?: string;
150
+ number?: number;
151
+ year?: number;
152
+ signerEmployeeId?: string;
153
+ authorEmployeeId?: string;
154
+ directorateCodeReference?: number;
155
+ text?: string;
69
156
  };
70
157
  actor?: DocumentActor;
71
158
  };
72
159
  response: RpcPage<DocumentGetAllResponseEntity[]>;
73
160
  };
161
+ /** Bandeja de recibidos de un funcionario: lo que le llegó como destinatario o por derivación. */
162
+ [DocumentPatterns.getInbox]: {
163
+ payload: {
164
+ pagination?: {
165
+ page?: number;
166
+ limit?: number;
167
+ };
168
+ filters?: {
169
+ search?: string;
170
+ state?: DocumentInboxState;
171
+ };
172
+ actor: DocumentActor;
173
+ };
174
+ response: RpcPage<DocumentInboxItemEntity[]>;
175
+ };
74
176
  [DocumentPatterns.getSummary]: {
75
177
  payload: {
76
178
  actor: DocumentActor;
@@ -107,6 +209,39 @@ export interface DocumentContract {
107
209
  };
108
210
  response: DocumentReviewResponseEntity;
109
211
  };
212
+ /**
213
+ * Firma con un solo OTP varios documentos que el funcionario tiene en su turno de firma (los de un lote, o los que
214
+ * marcó en su bandeja). Cada uno queda firmado aparte; los que no caben en la solicitud quedan en `remaining`.
215
+ */
216
+ [DocumentPatterns.signMany]: {
217
+ payload: {
218
+ ids: DocumentEntity['id'][];
219
+ observation?: string | null;
220
+ signer: {
221
+ rut: string;
222
+ fullName: string;
223
+ role: string;
224
+ areaName: string;
225
+ };
226
+ otp?: string;
227
+ actor: DocumentActor;
228
+ };
229
+ response: DocumentSignManyResponseEntity;
230
+ };
231
+ /**
232
+ * Pasa un turno pendiente (de visación o de firma) a otro funcionario, por ausencia o por error, y lo deja en la
233
+ * trazabilidad con su motivo. Puede hacerlo quien redactó el documento; con `anyDocument`, quien lleva el registro.
234
+ */
235
+ [DocumentPatterns.reassign]: {
236
+ payload: Pick<DocumentEntity, 'id'> & {
237
+ participantId: DocumentParticipantEntity['id'];
238
+ employeeId: string;
239
+ reason: string;
240
+ actor: DocumentActor;
241
+ anyDocument?: boolean;
242
+ };
243
+ response: DocumentReassignResponseEntity;
244
+ };
110
245
  [DocumentPatterns.discard]: {
111
246
  payload: Pick<DocumentEntity, 'id'> & {
112
247
  actor: DocumentActor;
@@ -121,6 +256,31 @@ export interface DocumentContract {
121
256
  };
122
257
  response: DocumentAnnulResponseEntity;
123
258
  };
259
+ /**
260
+ * Deriva un documento finalizado a otros funcionarios o áreas, con su providencia (qué se espera de ellos) y,
261
+ * si corresponde, un plazo. Puede hacerlo quien lo tiene a su alcance: su redactor, quien lo visó o firmó, quien lo
262
+ * recibió y, con `viewAll`, quien consulta el historial.
263
+ */
264
+ [DocumentPatterns.derive]: {
265
+ payload: Pick<DocumentEntity, 'id'> & {
266
+ recipients: DocumentRecipientInput[];
267
+ instruction: DocumentInstruction;
268
+ note?: string | null;
269
+ dueAt?: string | null;
270
+ actor: DocumentActor;
271
+ viewAll?: boolean;
272
+ };
273
+ response: DocumentDeriveResponseEntity;
274
+ };
275
+ /** Quien recibió un documento lo marca como atendido, con una nota opcional. */
276
+ [DocumentPatterns.closeDelivery]: {
277
+ payload: {
278
+ deliveryId: DocumentDeliveryEntity['id'];
279
+ note?: string | null;
280
+ actor: DocumentActor;
281
+ };
282
+ response: DocumentCloseDeliveryResponseEntity;
283
+ };
124
284
  /** Comprobación pública de un documento con el código que lleva impreso. No exige sesión. */
125
285
  [DocumentPatterns.verify]: {
126
286
  payload: {
@@ -4,14 +4,22 @@ exports.DocumentPatterns = void 0;
4
4
  /** Patrones NATS de `document`: `<servicio>.<recurso>.<acción>`. */
5
5
  exports.DocumentPatterns = {
6
6
  getAll: 'gestorDocumental.document.getAll',
7
+ getInbox: 'gestorDocumental.document.getInbox',
7
8
  getSummary: 'gestorDocumental.document.getSummary',
8
9
  getById: 'gestorDocumental.document.getById',
9
10
  create: 'gestorDocumental.document.create',
10
11
  update: 'gestorDocumental.document.update',
11
12
  review: 'gestorDocumental.document.review',
13
+ signMany: 'gestorDocumental.document.signMany',
14
+ reassign: 'gestorDocumental.document.reassign',
12
15
  discard: 'gestorDocumental.document.discard',
13
16
  annul: 'gestorDocumental.document.annul',
17
+ derive: 'gestorDocumental.document.derive',
18
+ closeDelivery: 'gestorDocumental.document.closeDelivery',
14
19
  verify: 'gestorDocumental.document.verify',
15
20
  getPublicFile: 'gestorDocumental.document.getPublicFile',
16
21
  getFilesFolder: 'gestorDocumental.document.getFilesFolder',
22
+ getAgenda: 'gestorDocumental.document.getAgenda',
23
+ exportTrail: 'gestorDocumental.document.exportTrail',
24
+ compose: 'gestorDocumental.document.compose',
17
25
  };
@@ -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;
@@ -17,8 +32,10 @@ export interface DocumentTypeWritePayload {
17
32
  description?: string | null;
18
33
  nextCorrelative?: number;
19
34
  resetsYearly?: boolean;
35
+ numbered?: boolean;
20
36
  directorateCodeReference?: number | null;
21
37
  enabled?: boolean;
38
+ flowSteps?: DocumentFlowStepInput[];
22
39
  }
23
40
  /**
24
41
  * Qué se envía y qué se responde en cada patrón. Generado desde los handlers y los DTO del microservicio.
@@ -1,8 +1,20 @@
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 PartsOfficeContract } from './partsOffice.contract';
5
+ import { type ProcedureContract } from './procedure.contract';
6
+ import { type RegisterBookContract } from './registerBook.contract';
7
+ import { type SignatureBatchContract } from './signatureBatch.contract';
8
+ import { type WorkFolderContract } from './workFolder.contract';
3
9
  export * from './contract';
4
10
  export * from './document.contract';
5
11
  export * from './documentType.contract';
12
+ export * from './procedure.contract';
13
+ export * from './caseFile.contract';
14
+ export * from './partsOffice.contract';
15
+ export * from './registerBook.contract';
16
+ export * from './signatureBatch.contract';
17
+ export * from './workFolder.contract';
6
18
  /** Patrones NATS de gestor-documental-ms, por recurso: `gestorDocumental.<recurso>.<acción>`. */
7
19
  export declare const GestorDocumentalPatterns: {
8
20
  readonly documentType: {
@@ -14,17 +26,88 @@ export declare const GestorDocumentalPatterns: {
14
26
  };
15
27
  readonly document: {
16
28
  readonly getAll: "gestorDocumental.document.getAll";
29
+ readonly getInbox: "gestorDocumental.document.getInbox";
17
30
  readonly getSummary: "gestorDocumental.document.getSummary";
18
31
  readonly getById: "gestorDocumental.document.getById";
19
32
  readonly create: "gestorDocumental.document.create";
20
33
  readonly update: "gestorDocumental.document.update";
21
34
  readonly review: "gestorDocumental.document.review";
35
+ readonly signMany: "gestorDocumental.document.signMany";
36
+ readonly reassign: "gestorDocumental.document.reassign";
22
37
  readonly discard: "gestorDocumental.document.discard";
23
38
  readonly annul: "gestorDocumental.document.annul";
39
+ readonly derive: "gestorDocumental.document.derive";
40
+ readonly closeDelivery: "gestorDocumental.document.closeDelivery";
24
41
  readonly verify: "gestorDocumental.document.verify";
25
42
  readonly getPublicFile: "gestorDocumental.document.getPublicFile";
26
43
  readonly getFilesFolder: "gestorDocumental.document.getFilesFolder";
44
+ readonly getAgenda: "gestorDocumental.document.getAgenda";
45
+ readonly exportTrail: "gestorDocumental.document.exportTrail";
46
+ readonly compose: "gestorDocumental.document.compose";
47
+ };
48
+ readonly procedure: {
49
+ readonly getAll: "gestorDocumental.procedure.getAll";
50
+ readonly getById: "gestorDocumental.procedure.getById";
51
+ readonly create: "gestorDocumental.procedure.create";
52
+ readonly update: "gestorDocumental.procedure.update";
53
+ readonly setEnabled: "gestorDocumental.procedure.setEnabled";
54
+ };
55
+ readonly caseFile: {
56
+ readonly getAll: "gestorDocumental.caseFile.getAll";
57
+ readonly getById: "gestorDocumental.caseFile.getById";
58
+ readonly create: "gestorDocumental.caseFile.create";
59
+ readonly update: "gestorDocumental.caseFile.update";
60
+ readonly addEntry: "gestorDocumental.caseFile.addEntry";
61
+ readonly addBatch: "gestorDocumental.caseFile.addBatch";
62
+ readonly voidEntry: "gestorDocumental.caseFile.voidEntry";
63
+ readonly share: "gestorDocumental.caseFile.share";
64
+ readonly unshare: "gestorDocumental.caseFile.unshare";
65
+ readonly close: "gestorDocumental.caseFile.close";
66
+ readonly getEntryFile: "gestorDocumental.caseFile.getEntryFile";
67
+ readonly getExport: "gestorDocumental.caseFile.getExport";
68
+ };
69
+ readonly partsOffice: {
70
+ readonly getStatus: "gestorDocumental.partsOffice.getStatus";
71
+ readonly getSummary: "gestorDocumental.partsOffice.getSummary";
72
+ readonly getEntities: "gestorDocumental.partsOffice.getEntities";
73
+ readonly getUsers: "gestorDocumental.partsOffice.getUsers";
74
+ readonly getDocumentTypes: "gestorDocumental.partsOffice.getDocumentTypes";
75
+ readonly getDispatches: "gestorDocumental.partsOffice.getDispatches";
76
+ readonly dispatch: "gestorDocumental.partsOffice.dispatch";
77
+ readonly returnDispatch: "gestorDocumental.partsOffice.returnDispatch";
78
+ readonly resendDispatch: "gestorDocumental.partsOffice.resendDispatch";
79
+ readonly getDispatchFile: "gestorDocumental.partsOffice.getDispatchFile";
80
+ readonly getInbound: "gestorDocumental.partsOffice.getInbound";
81
+ readonly syncInbound: "gestorDocumental.partsOffice.syncInbound";
82
+ readonly registerInbound: "gestorDocumental.partsOffice.registerInbound";
83
+ readonly acknowledgeInbound: "gestorDocumental.partsOffice.acknowledgeInbound";
84
+ readonly returnInbound: "gestorDocumental.partsOffice.returnInbound";
85
+ readonly getInboundFile: "gestorDocumental.partsOffice.getInboundFile";
86
+ };
87
+ readonly registerBook: {
88
+ readonly get: "gestorDocumental.registerBook.get";
89
+ readonly export: "gestorDocumental.registerBook.export";
90
+ };
91
+ readonly signatureBatch: {
92
+ readonly getAll: "gestorDocumental.signatureBatch.getAll";
93
+ readonly getById: "gestorDocumental.signatureBatch.getById";
94
+ readonly create: "gestorDocumental.signatureBatch.create";
95
+ readonly visa: "gestorDocumental.signatureBatch.visa";
96
+ readonly sign: "gestorDocumental.signatureBatch.sign";
97
+ readonly reject: "gestorDocumental.signatureBatch.reject";
98
+ };
99
+ readonly workFolder: {
100
+ readonly getAll: "gestorDocumental.workFolder.getAll";
101
+ readonly getById: "gestorDocumental.workFolder.getById";
102
+ readonly create: "gestorDocumental.workFolder.create";
103
+ readonly update: "gestorDocumental.workFolder.update";
104
+ readonly share: "gestorDocumental.workFolder.share";
105
+ readonly unshare: "gestorDocumental.workFolder.unshare";
106
+ readonly addItem: "gestorDocumental.workFolder.addItem";
107
+ readonly removeItem: "gestorDocumental.workFolder.removeItem";
108
+ readonly remove: "gestorDocumental.workFolder.remove";
109
+ readonly convert: "gestorDocumental.workFolder.convert";
27
110
  };
28
111
  };
29
112
  /** Contrato completo de gestor-documental-ms: la unión de los contratos de sus recursos. */
30
- export type GestorDocumentalContract = DocumentTypeContract & DocumentContract;
113
+ export type GestorDocumentalContract = DocumentTypeContract & DocumentContract & ProcedureContract & CaseFileContract & PartsOfficeContract & RegisterBookContract & SignatureBatchContract & WorkFolderContract;
@@ -15,13 +15,31 @@ 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 partsOffice_contract_1 = require("./partsOffice.contract");
22
+ const procedure_contract_1 = require("./procedure.contract");
23
+ const registerBook_contract_1 = require("./registerBook.contract");
24
+ const signatureBatch_contract_1 = require("./signatureBatch.contract");
25
+ const workFolder_contract_1 = require("./workFolder.contract");
20
26
  __exportStar(require("./contract"), exports);
21
27
  __exportStar(require("./document.contract"), exports);
22
28
  __exportStar(require("./documentType.contract"), exports);
29
+ __exportStar(require("./procedure.contract"), exports);
30
+ __exportStar(require("./caseFile.contract"), exports);
31
+ __exportStar(require("./partsOffice.contract"), exports);
32
+ __exportStar(require("./registerBook.contract"), exports);
33
+ __exportStar(require("./signatureBatch.contract"), exports);
34
+ __exportStar(require("./workFolder.contract"), exports);
23
35
  /** Patrones NATS de gestor-documental-ms, por recurso: `gestorDocumental.<recurso>.<acción>`. */
24
36
  exports.GestorDocumentalPatterns = {
25
37
  documentType: documentType_contract_1.DocumentTypePatterns,
26
38
  document: document_contract_1.DocumentPatterns,
39
+ procedure: procedure_contract_1.ProcedurePatterns,
40
+ caseFile: caseFile_contract_1.CaseFilePatterns,
41
+ partsOffice: partsOffice_contract_1.PartsOfficePatterns,
42
+ registerBook: registerBook_contract_1.RegisterBookPatterns,
43
+ signatureBatch: signatureBatch_contract_1.SignatureBatchPatterns,
44
+ workFolder: workFolder_contract_1.WorkFolderPatterns,
27
45
  };