@muni-sanfer/types-gestor-documental 0.0.1-beta.3 → 0.0.1-beta.30
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.
- package/dist/base/entities.d.ts +978 -1
- package/dist/base/entities.js +263 -1
- package/dist/contracts/accessRequest.contract.d.ts +109 -0
- package/dist/contracts/accessRequest.contract.js +12 -0
- package/dist/contracts/archivalSeries.contract.d.ts +56 -0
- package/dist/contracts/archivalSeries.contract.js +11 -0
- package/dist/contracts/audit.contract.d.ts +32 -0
- package/dist/contracts/audit.contract.js +8 -0
- package/dist/contracts/caseFile.contract.d.ts +262 -0
- package/dist/contracts/caseFile.contract.js +26 -0
- package/dist/contracts/dataProtection.contract.d.ts +251 -0
- package/dist/contracts/dataProtection.contract.js +23 -0
- package/dist/contracts/desk.contract.d.ts +86 -0
- package/dist/contracts/desk.contract.js +13 -0
- package/dist/contracts/document.contract.d.ts +130 -2
- package/dist/contracts/document.contract.js +8 -0
- package/dist/contracts/documentType.contract.d.ts +11 -1
- package/dist/contracts/holiday.contract.d.ts +30 -0
- package/dist/contracts/holiday.contract.js +9 -0
- package/dist/contracts/index.d.ts +234 -1
- package/dist/contracts/index.js +60 -0
- package/dist/contracts/indicators.contract.d.ts +103 -0
- package/dist/contracts/indicators.contract.js +15 -0
- package/dist/contracts/issuingEntity.contract.d.ts +52 -0
- package/dist/contracts/issuingEntity.contract.js +11 -0
- package/dist/contracts/partsOffice.contract.d.ts +263 -0
- package/dist/contracts/partsOffice.contract.js +27 -0
- package/dist/contracts/procedure.contract.d.ts +50 -0
- package/dist/contracts/procedure.contract.js +11 -0
- package/dist/contracts/registerBook.contract.d.ts +27 -0
- package/dist/contracts/registerBook.contract.js +8 -0
- package/dist/contracts/repositoryExport.contract.d.ts +57 -0
- package/dist/contracts/repositoryExport.contract.js +13 -0
- package/dist/contracts/retention.contract.d.ts +58 -0
- package/dist/contracts/retention.contract.js +11 -0
- package/dist/contracts/scan.contract.d.ts +63 -0
- package/dist/contracts/scan.contract.js +12 -0
- package/dist/contracts/signatureBatch.contract.d.ts +109 -0
- package/dist/contracts/signatureBatch.contract.js +12 -0
- package/dist/contracts/signatureCheck.contract.d.ts +14 -0
- package/dist/contracts/signatureCheck.contract.js +7 -0
- package/dist/contracts/textSnippet.contract.d.ts +51 -0
- package/dist/contracts/textSnippet.contract.js +11 -0
- package/dist/contracts/transparency.contract.d.ts +96 -0
- package/dist/contracts/transparency.contract.js +12 -0
- package/dist/contracts/workFolder.contract.d.ts +114 -0
- package/dist/contracts/workFolder.contract.js +16 -0
- package/dist/entities/accessRequest/accessRequest.entity.d.ts +73 -0
- package/dist/entities/accessRequest/accessRequest.entity.js +2 -0
- package/dist/entities/accessRequest/index.d.ts +1 -0
- package/dist/entities/accessRequest/index.js +17 -0
- package/dist/entities/archivalSeries/archivalSeries.entity.d.ts +32 -0
- package/dist/entities/archivalSeries/archivalSeries.entity.js +2 -0
- package/dist/entities/archivalSeries/index.d.ts +1 -0
- package/dist/entities/archivalSeries/index.js +17 -0
- package/dist/entities/audit/audit.entity.d.ts +27 -0
- package/dist/entities/audit/audit.entity.js +2 -0
- package/dist/entities/audit/index.d.ts +1 -0
- package/dist/entities/audit/index.js +17 -0
- package/dist/entities/caseFile/caseFile.entity.d.ts +302 -0
- package/dist/entities/caseFile/caseFile.entity.js +2 -0
- package/dist/entities/caseFile/index.d.ts +1 -0
- package/dist/entities/caseFile/index.js +17 -0
- package/dist/entities/dataProtection/dataProtection.entity.d.ts +174 -0
- package/dist/entities/dataProtection/dataProtection.entity.js +2 -0
- package/dist/entities/dataProtection/index.d.ts +1 -0
- package/dist/entities/dataProtection/index.js +17 -0
- package/dist/entities/desk/desk.entity.d.ts +21 -0
- package/dist/entities/desk/desk.entity.js +2 -0
- package/dist/entities/desk/index.d.ts +1 -0
- package/dist/entities/desk/index.js +17 -0
- package/dist/entities/document/document.entity.d.ts +256 -1
- package/dist/entities/documentType/documentType.entity.d.ts +23 -0
- package/dist/entities/holiday/holiday.entity.d.ts +10 -0
- package/dist/entities/holiday/holiday.entity.js +2 -0
- package/dist/entities/holiday/index.d.ts +1 -0
- package/dist/entities/holiday/index.js +17 -0
- package/dist/entities/index.d.ts +20 -0
- package/dist/entities/index.js +20 -0
- package/dist/entities/indicators/index.d.ts +1 -0
- package/dist/entities/indicators/index.js +17 -0
- package/dist/entities/indicators/indicators.entity.d.ts +152 -0
- package/dist/entities/indicators/indicators.entity.js +2 -0
- package/dist/entities/issuingEntity/index.d.ts +1 -0
- package/dist/entities/issuingEntity/index.js +17 -0
- package/dist/entities/issuingEntity/issuingEntity.entity.d.ts +20 -0
- package/dist/entities/issuingEntity/issuingEntity.entity.js +2 -0
- package/dist/entities/partsOffice/index.d.ts +1 -0
- package/dist/entities/partsOffice/index.js +17 -0
- package/dist/entities/partsOffice/partsOffice.entity.d.ts +137 -0
- package/dist/entities/partsOffice/partsOffice.entity.js +2 -0
- package/dist/entities/procedure/index.d.ts +1 -0
- package/dist/entities/procedure/index.js +17 -0
- package/dist/entities/procedure/procedure.entity.d.ts +20 -0
- package/dist/entities/procedure/procedure.entity.js +2 -0
- package/dist/entities/registerBook/index.d.ts +1 -0
- package/dist/entities/registerBook/index.js +17 -0
- package/dist/entities/registerBook/registerBook.entity.d.ts +48 -0
- package/dist/entities/registerBook/registerBook.entity.js +2 -0
- package/dist/entities/repositoryExport/index.d.ts +1 -0
- package/dist/entities/repositoryExport/index.js +17 -0
- package/dist/entities/repositoryExport/repositoryExport.entity.d.ts +124 -0
- package/dist/entities/repositoryExport/repositoryExport.entity.js +2 -0
- package/dist/entities/retention/index.d.ts +1 -0
- package/dist/entities/retention/index.js +17 -0
- package/dist/entities/retention/retention.entity.d.ts +49 -0
- package/dist/entities/retention/retention.entity.js +2 -0
- package/dist/entities/scan/index.d.ts +1 -0
- package/dist/entities/scan/index.js +17 -0
- package/dist/entities/scan/scan.entity.d.ts +29 -0
- package/dist/entities/scan/scan.entity.js +2 -0
- package/dist/entities/signatureBatch/index.d.ts +1 -0
- package/dist/entities/signatureBatch/index.js +17 -0
- package/dist/entities/signatureBatch/signatureBatch.entity.d.ts +107 -0
- package/dist/entities/signatureBatch/signatureBatch.entity.js +2 -0
- package/dist/entities/signatureCheck/index.d.ts +1 -0
- package/dist/entities/signatureCheck/index.js +17 -0
- package/dist/entities/signatureCheck/signatureCheck.entity.d.ts +49 -0
- package/dist/entities/signatureCheck/signatureCheck.entity.js +2 -0
- package/dist/entities/textSnippet/index.d.ts +1 -0
- package/dist/entities/textSnippet/index.js +17 -0
- package/dist/entities/textSnippet/textSnippet.entity.d.ts +20 -0
- package/dist/entities/textSnippet/textSnippet.entity.js +2 -0
- package/dist/entities/transparency/index.d.ts +1 -0
- package/dist/entities/transparency/index.js +17 -0
- package/dist/entities/transparency/transparency.entity.d.ts +77 -0
- package/dist/entities/transparency/transparency.entity.js +2 -0
- package/dist/entities/workFolder/index.d.ts +1 -0
- package/dist/entities/workFolder/index.js +17 -0
- package/dist/entities/workFolder/workFolder.entity.d.ts +83 -0
- package/dist/entities/workFolder/workFolder.entity.js +2 -0
- package/package.json +1 -1
- package/src/base/entities.ts +1163 -1
- package/src/contracts/accessRequest.contract.ts +81 -0
- package/src/contracts/archivalSeries.contract.ts +59 -0
- package/src/contracts/audit.contract.ts +30 -0
- package/src/contracts/caseFile.contract.ts +228 -0
- package/src/contracts/dataProtection.contract.ts +195 -0
- package/src/contracts/desk.contract.ts +68 -0
- package/src/contracts/document.contract.ts +133 -2
- package/src/contracts/documentType.contract.ts +25 -3
- package/src/contracts/holiday.contract.ts +16 -0
- package/src/contracts/index.ts +82 -1
- package/src/contracts/indicators.contract.ts +80 -0
- package/src/contracts/issuingEntity.contract.ts +55 -0
- package/src/contracts/partsOffice.contract.ts +199 -0
- package/src/contracts/procedure.contract.ts +53 -0
- package/src/contracts/registerBook.contract.ts +24 -0
- package/src/contracts/repositoryExport.contract.ts +54 -0
- package/src/contracts/retention.contract.ts +44 -0
- package/src/contracts/scan.contract.ts +52 -0
- package/src/contracts/signatureBatch.contract.ts +96 -0
- package/src/contracts/signatureCheck.contract.ts +11 -0
- package/src/contracts/textSnippet.contract.ts +53 -0
- package/src/contracts/transparency.contract.ts +55 -0
- package/src/contracts/workFolder.contract.ts +75 -0
- package/src/entities/accessRequest/accessRequest.entity.ts +78 -0
- package/src/entities/accessRequest/index.ts +1 -0
- package/src/entities/archivalSeries/archivalSeries.entity.ts +37 -0
- package/src/entities/archivalSeries/index.ts +1 -0
- package/src/entities/audit/audit.entity.ts +30 -0
- package/src/entities/audit/index.ts +1 -0
- package/src/entities/caseFile/caseFile.entity.ts +326 -0
- package/src/entities/caseFile/index.ts +1 -0
- package/src/entities/dataProtection/dataProtection.entity.ts +185 -0
- package/src/entities/dataProtection/index.ts +1 -0
- package/src/entities/desk/desk.entity.ts +24 -0
- package/src/entities/desk/index.ts +1 -0
- package/src/entities/document/document.entity.ts +252 -0
- package/src/entities/documentType/documentType.entity.ts +16 -0
- package/src/entities/holiday/holiday.entity.ts +11 -0
- package/src/entities/holiday/index.ts +1 -0
- package/src/entities/index.ts +20 -0
- package/src/entities/indicators/index.ts +1 -0
- package/src/entities/indicators/indicators.entity.ts +157 -0
- package/src/entities/issuingEntity/index.ts +1 -0
- package/src/entities/issuingEntity/issuingEntity.entity.ts +24 -0
- package/src/entities/partsOffice/index.ts +1 -0
- package/src/entities/partsOffice/partsOffice.entity.ts +138 -0
- package/src/entities/procedure/index.ts +1 -0
- package/src/entities/procedure/procedure.entity.ts +24 -0
- package/src/entities/registerBook/index.ts +1 -0
- package/src/entities/registerBook/registerBook.entity.ts +52 -0
- package/src/entities/repositoryExport/index.ts +1 -0
- package/src/entities/repositoryExport/repositoryExport.entity.ts +86 -0
- package/src/entities/retention/index.ts +1 -0
- package/src/entities/retention/retention.entity.ts +53 -0
- package/src/entities/scan/index.ts +1 -0
- package/src/entities/scan/scan.entity.ts +32 -0
- package/src/entities/signatureBatch/index.ts +1 -0
- package/src/entities/signatureBatch/signatureBatch.entity.ts +110 -0
- package/src/entities/signatureCheck/index.ts +1 -0
- package/src/entities/signatureCheck/signatureCheck.entity.ts +51 -0
- package/src/entities/textSnippet/index.ts +1 -0
- package/src/entities/textSnippet/textSnippet.entity.ts +24 -0
- package/src/entities/transparency/index.ts +1 -0
- package/src/entities/transparency/transparency.entity.ts +78 -0
- package/src/entities/workFolder/index.ts +1 -0
- package/src/entities/workFolder/workFolder.entity.ts +84 -0
- package/tsconfig.json +1 -3
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
+
type DocumentAccessAction,
|
|
2
3
|
type DocumentAccessLevel,
|
|
3
4
|
type DocumentAttachmentEntity,
|
|
4
5
|
type DocumentDeliveryEntity,
|
|
@@ -13,6 +14,9 @@ import {
|
|
|
13
14
|
type DocumentCreateResponseEntity,
|
|
14
15
|
type DocumentDeriveResponseEntity,
|
|
15
16
|
type DocumentDiscardResponseEntity,
|
|
17
|
+
type DocumentEmailCopyIssuedEntity,
|
|
18
|
+
type DocumentEmailCopyViewEntity,
|
|
19
|
+
type DocumentReminderEntity,
|
|
16
20
|
type DocumentGetAllResponseEntity,
|
|
17
21
|
type DocumentGetByIdResponseEntity,
|
|
18
22
|
type DocumentGetSummaryResponseEntity,
|
|
@@ -20,6 +24,11 @@ import {
|
|
|
20
24
|
type DocumentPublicFileResponseEntity,
|
|
21
25
|
type DocumentReassignResponseEntity,
|
|
22
26
|
type DocumentReviewResponseEntity,
|
|
27
|
+
type DocumentSignManyResponseEntity,
|
|
28
|
+
type DocumentAgendaResponseEntity,
|
|
29
|
+
type DocumentComposeResponseEntity,
|
|
30
|
+
type DocumentComposition,
|
|
31
|
+
type DocumentTrailExportEntity,
|
|
23
32
|
type DocumentUpdateResponseEntity,
|
|
24
33
|
type DocumentVerifyResponseEntity,
|
|
25
34
|
} from '../entities';
|
|
@@ -34,6 +43,7 @@ export const DocumentPatterns = {
|
|
|
34
43
|
create: 'gestorDocumental.document.create',
|
|
35
44
|
update: 'gestorDocumental.document.update',
|
|
36
45
|
review: 'gestorDocumental.document.review',
|
|
46
|
+
signMany: 'gestorDocumental.document.signMany',
|
|
37
47
|
reassign: 'gestorDocumental.document.reassign',
|
|
38
48
|
discard: 'gestorDocumental.document.discard',
|
|
39
49
|
annul: 'gestorDocumental.document.annul',
|
|
@@ -42,6 +52,13 @@ export const DocumentPatterns = {
|
|
|
42
52
|
verify: 'gestorDocumental.document.verify',
|
|
43
53
|
getPublicFile: 'gestorDocumental.document.getPublicFile',
|
|
44
54
|
getFilesFolder: 'gestorDocumental.document.getFilesFolder',
|
|
55
|
+
getAgenda: 'gestorDocumental.document.getAgenda',
|
|
56
|
+
exportTrail: 'gestorDocumental.document.exportTrail',
|
|
57
|
+
compose: 'gestorDocumental.document.compose',
|
|
58
|
+
issueEmailCopies: 'gestorDocumental.document.issueEmailCopies',
|
|
59
|
+
getEmailCopy: 'gestorDocumental.document.getEmailCopy',
|
|
60
|
+
getEmailCopyFile: 'gestorDocumental.document.getEmailCopyFile',
|
|
61
|
+
claimReminders: 'gestorDocumental.document.claimReminders',
|
|
45
62
|
} as const;
|
|
46
63
|
|
|
47
64
|
/**
|
|
@@ -93,6 +110,12 @@ export interface DocumentWritePayload extends Pick<DocumentEntity, 'subject' | '
|
|
|
93
110
|
attachments?: Pick<DocumentAttachmentEntity, 'name' | 'type' | 'fileId' | 'url'>[];
|
|
94
111
|
// Funcionarios que visan y que firman, en el orden en que les toca. Primero visan todos y después firman.
|
|
95
112
|
visaEmployeeIds: string[];
|
|
113
|
+
// Etapa de cada visador, en su orden ([1, 1, 2]: los dos primeros visan a la vez). Sin etapas, visan en cadena.
|
|
114
|
+
visaStages?: number[] | null;
|
|
115
|
+
// Al reenviar un documento rechazado, pedir de nuevo las visaciones ya hechas en vez de seguir donde quedó.
|
|
116
|
+
restartFlow?: boolean;
|
|
117
|
+
// Contenido redactado con una plantilla (el PDF ya armado va en `file`): se guarda para volver a editarlo.
|
|
118
|
+
composition?: DocumentComposition | null;
|
|
96
119
|
signatureEmployeeIds: string[];
|
|
97
120
|
// Firmas y visaciones en una hoja aparte al final, en vez de al pie de la última página.
|
|
98
121
|
signatureSheet?: boolean;
|
|
@@ -102,14 +125,71 @@ export interface DocumentWritePayload extends Pick<DocumentEntity, 'subject' | '
|
|
|
102
125
|
responseDueAt?: string | null;
|
|
103
126
|
// Documento al que este responde.
|
|
104
127
|
replyToDocumentId?: string | null;
|
|
128
|
+
// Instituciones (y usuarios) de DocDigital a quienes va: al terminar la firma pasa a Oficina de Partes.
|
|
129
|
+
externalRecipients?: DocumentExternalRecipientInput[];
|
|
130
|
+
// Fin de la restricción de acceso (ISO 8601), si no es público.
|
|
131
|
+
restrictionEndsAt?: string | null;
|
|
132
|
+
// Copia por correo a quienes están fuera del Estado: sale al finalizar o, si también va por DocDigital, al despacharlo.
|
|
133
|
+
emailCopies?: DocumentEmailCopyInput[];
|
|
105
134
|
action?: 'Submit';
|
|
106
135
|
actor: DocumentActor;
|
|
107
136
|
}
|
|
108
137
|
|
|
138
|
+
/** Persona u organización fuera del Estado que recibe una copia por correo. */
|
|
139
|
+
export interface DocumentEmailCopyInput {
|
|
140
|
+
name: string;
|
|
141
|
+
email: string;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/** Destinatario externo: una institución de DocDigital y, si se indica, uno de sus usuarios. */
|
|
145
|
+
export interface DocumentExternalRecipientInput {
|
|
146
|
+
entityId: number;
|
|
147
|
+
userId?: number | null;
|
|
148
|
+
}
|
|
149
|
+
|
|
109
150
|
/**
|
|
110
151
|
* Qué se envía y qué se responde en cada patrón. Generado desde los handlers y los DTO del microservicio.
|
|
111
152
|
*/
|
|
153
|
+
/** Una lectura que queda en el registro de accesos del documento. */
|
|
154
|
+
export interface DocumentAccessInput {
|
|
155
|
+
action: DocumentAccessAction;
|
|
156
|
+
fullName: string;
|
|
157
|
+
}
|
|
158
|
+
|
|
112
159
|
export interface DocumentContract {
|
|
160
|
+
/**
|
|
161
|
+
* Arma el PDF de un documento redactado con una plantilla oficial: membrete, estructura y espacio libre para el
|
|
162
|
+
* número, las visaciones, las firmas y el QR. Con `preview` lo entrega para verlo; si no, lo sube y entrega su
|
|
163
|
+
* `fileId` para guardarlo como el PDF del documento.
|
|
164
|
+
*/
|
|
165
|
+
[DocumentPatterns.compose]: {
|
|
166
|
+
payload: {
|
|
167
|
+
documentTypeId: string;
|
|
168
|
+
subject: string;
|
|
169
|
+
composition: DocumentComposition;
|
|
170
|
+
visaCount: number;
|
|
171
|
+
signatureCount: number;
|
|
172
|
+
signatureSheet?: boolean;
|
|
173
|
+
/** Unidad que emite, para el membrete. */
|
|
174
|
+
issuingUnitName?: string | null;
|
|
175
|
+
preview?: boolean;
|
|
176
|
+
actor: DocumentActor;
|
|
177
|
+
};
|
|
178
|
+
response: DocumentComposeResponseEntity;
|
|
179
|
+
};
|
|
180
|
+
/** Plazos del funcionario entre `from` y `to` (hasta 62 días), y lo que tiene vencido sin atender. */
|
|
181
|
+
[DocumentPatterns.getAgenda]: {
|
|
182
|
+
payload: { from: string; to: string; actor: DocumentActor };
|
|
183
|
+
response: DocumentAgendaResponseEntity;
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* Trazabilidad del documento en PDF: datos, flujo, hechos y huella de sus archivos. Con las mismas reglas de acceso
|
|
187
|
+
* del detalle. `generatedBy`: quién la descarga (va al pie).
|
|
188
|
+
*/
|
|
189
|
+
[DocumentPatterns.exportTrail]: {
|
|
190
|
+
payload: Pick<DocumentEntity, 'id'> & { actor?: DocumentActor; viewAll?: boolean; generatedBy: string };
|
|
191
|
+
response: DocumentTrailExportEntity;
|
|
192
|
+
};
|
|
113
193
|
[DocumentPatterns.getAll]: {
|
|
114
194
|
payload: {
|
|
115
195
|
pagination?: { page?: number; limit?: number };
|
|
@@ -121,6 +201,14 @@ export interface DocumentContract {
|
|
|
121
201
|
// Rango de fechas de creación (ISO 8601).
|
|
122
202
|
dateFrom?: string;
|
|
123
203
|
dateTo?: string;
|
|
204
|
+
// Búsqueda avanzada: número (del documento o folio de ingreso) y año, firmante, redactor y unidad emisora.
|
|
205
|
+
number?: number;
|
|
206
|
+
year?: number;
|
|
207
|
+
signerEmployeeId?: string;
|
|
208
|
+
authorEmployeeId?: string;
|
|
209
|
+
directorateCodeReference?: number;
|
|
210
|
+
// Texto completo, en el asunto y en el contenido del PDF.
|
|
211
|
+
text?: string;
|
|
124
212
|
};
|
|
125
213
|
// Obligatorio en todas las bandejas salvo `all`.
|
|
126
214
|
actor?: DocumentActor;
|
|
@@ -143,8 +231,9 @@ export interface DocumentContract {
|
|
|
143
231
|
[DocumentPatterns.getById]: {
|
|
144
232
|
// Con `actor`, el documento solo se entrega a su redactor y a quienes lo visan o firman, y la respuesta dice qué
|
|
145
233
|
// puede hacer con él. `viewAll` levanta esa restricción para quien tiene permiso de ver todos los documentos
|
|
146
|
-
// (historial), sin perder lo que puede hacer si además participa.
|
|
147
|
-
|
|
234
|
+
// (historial), sin perder lo que puede hacer si además participa. Con `access`, la lectura queda en el registro de
|
|
235
|
+
// accesos del documento a nombre de `fullName` (abrirlo varias veces seguidas cuenta una vez).
|
|
236
|
+
payload: Pick<DocumentEntity, 'id'> & { actor?: DocumentActor; viewAll?: boolean; access?: DocumentAccessInput };
|
|
148
237
|
response: DocumentGetByIdResponseEntity;
|
|
149
238
|
};
|
|
150
239
|
[DocumentPatterns.create]: {
|
|
@@ -168,6 +257,21 @@ export interface DocumentContract {
|
|
|
168
257
|
};
|
|
169
258
|
response: DocumentReviewResponseEntity;
|
|
170
259
|
};
|
|
260
|
+
/**
|
|
261
|
+
* Firma con un solo OTP varios documentos que el funcionario tiene en su turno de firma (los de un lote, o los que
|
|
262
|
+
* marcó en su bandeja). Cada uno queda firmado aparte; los que no caben en la solicitud quedan en `remaining`.
|
|
263
|
+
*/
|
|
264
|
+
[DocumentPatterns.signMany]: {
|
|
265
|
+
payload: {
|
|
266
|
+
ids: DocumentEntity['id'][];
|
|
267
|
+
observation?: string | null;
|
|
268
|
+
// Datos de quien firma, para el sello de la firma (los resuelve el gateway desde la sesión).
|
|
269
|
+
signer: { rut: string; fullName: string; role: string; areaName: string };
|
|
270
|
+
otp?: string;
|
|
271
|
+
actor: DocumentActor;
|
|
272
|
+
};
|
|
273
|
+
response: DocumentSignManyResponseEntity;
|
|
274
|
+
};
|
|
171
275
|
/**
|
|
172
276
|
* Pasa un turno pendiente (de visación o de firma) a otro funcionario, por ausencia o por error, y lo deja en la
|
|
173
277
|
* trazabilidad con su motivo. Puede hacerlo quien redactó el documento; con `anyDocument`, quien lleva el registro.
|
|
@@ -204,6 +308,8 @@ export interface DocumentContract {
|
|
|
204
308
|
note?: string | null;
|
|
205
309
|
// Plazo para atenderlo (ISO 8601).
|
|
206
310
|
dueAt?: string | null;
|
|
311
|
+
// O el plazo en días hábiles (Ley 19.880): el servicio calcula la fecha con los feriados cargados.
|
|
312
|
+
dueBusinessDays?: number | null;
|
|
207
313
|
actor: DocumentActor;
|
|
208
314
|
viewAll?: boolean;
|
|
209
315
|
};
|
|
@@ -224,6 +330,31 @@ export interface DocumentContract {
|
|
|
224
330
|
payload: { code: string };
|
|
225
331
|
response: DocumentPublicFileResponseEntity;
|
|
226
332
|
};
|
|
333
|
+
/**
|
|
334
|
+
* Emite las copias por correo pendientes de estos documentos, si ya corresponde (finalizado y, si va por DocDigital,
|
|
335
|
+
* despachado): genera el enlace de cada una. Se puede pedir de más: lo ya emitido no se repite.
|
|
336
|
+
*/
|
|
337
|
+
[DocumentPatterns.issueEmailCopies]: {
|
|
338
|
+
payload: { documentIds: string[] };
|
|
339
|
+
response: DocumentEmailCopyIssuedEntity[];
|
|
340
|
+
};
|
|
341
|
+
/** Sin sesión, con el token de la copia: el documento y quién lo emitió. */
|
|
342
|
+
[DocumentPatterns.getEmailCopy]: {
|
|
343
|
+
payload: { token: string };
|
|
344
|
+
response: DocumentEmailCopyViewEntity;
|
|
345
|
+
};
|
|
346
|
+
/**
|
|
347
|
+
* Recordatorios de plazos que corresponde enviar ahora: lo que vence en un día hábil y lo vencido sin atender. Cada
|
|
348
|
+
* uno se entrega una sola vez (queda marcado al reclamarlo), aunque lo pidan varias instancias del gateway a la vez.
|
|
349
|
+
*/
|
|
350
|
+
[DocumentPatterns.claimReminders]: {
|
|
351
|
+
payload: Record<string, never>;
|
|
352
|
+
response: DocumentReminderEntity[];
|
|
353
|
+
};
|
|
354
|
+
[DocumentPatterns.getEmailCopyFile]: {
|
|
355
|
+
payload: { token: string };
|
|
356
|
+
response: DocumentPublicFileResponseEntity;
|
|
357
|
+
};
|
|
227
358
|
/** Carpeta de Drive de los documentos y sus anexos: el gateway la pide antes de subir cada archivo. */
|
|
228
359
|
[DocumentPatterns.getFilesFolder]: {
|
|
229
360
|
payload: Record<string, never>;
|
|
@@ -21,9 +21,13 @@ export const DocumentTypePatterns = {
|
|
|
21
21
|
* momento de redactar (su jefatura o, con subrogancia activa, el subrogante). El nombre de la dirección lo resuelve
|
|
22
22
|
* el gateway; el navegador solo indica cuál es.
|
|
23
23
|
*/
|
|
24
|
-
export type DocumentFlowStepInput =
|
|
24
|
+
export type DocumentFlowStepInput = (
|
|
25
25
|
| { role: DocumentParticipantRole; type: 'Employee'; employeeId: string }
|
|
26
|
-
| { role: DocumentParticipantRole; type: 'DirectorateHead'; directorateCodeReference: number; name: string }
|
|
26
|
+
| { role: DocumentParticipantRole; type: 'DirectorateHead'; directorateCodeReference: number; name: string }
|
|
27
|
+
) & {
|
|
28
|
+
// Visa a la vez con el paso anterior (visación en paralelo). Solo en visaciones.
|
|
29
|
+
withPrevious?: boolean;
|
|
30
|
+
};
|
|
27
31
|
|
|
28
32
|
/** Datos de un tipo documental al crearlo o editarlo. */
|
|
29
33
|
export interface DocumentTypeWritePayload {
|
|
@@ -34,7 +38,18 @@ export interface DocumentTypeWritePayload {
|
|
|
34
38
|
// Próximo número que se asignará: permite partir desde el correlativo que la municipalidad ya lleva.
|
|
35
39
|
nextCorrelative?: number;
|
|
36
40
|
resetsYearly?: boolean;
|
|
41
|
+
// Sus documentos llevan número (por omisión, sí).
|
|
42
|
+
numbered?: boolean;
|
|
43
|
+
/** Transparencia Activa: sus documentos se publican cada mes, en esta sección del Portal. */
|
|
44
|
+
activeTransparency?: boolean;
|
|
45
|
+
transparencySection?: string | null;
|
|
37
46
|
directorateCodeReference?: number | null;
|
|
47
|
+
// Serie documental del Cuadro de Clasificación (sin valor: sin clasificar).
|
|
48
|
+
archivalSeriesId?: string | null;
|
|
49
|
+
// Entidad emisora (sin valor: la municipalidad).
|
|
50
|
+
issuingEntityId?: string | null;
|
|
51
|
+
// Tipo cuyo correlativo comparte (sin valor: el suyo propio).
|
|
52
|
+
sharesNumberingWithId?: string | null;
|
|
38
53
|
enabled?: boolean;
|
|
39
54
|
// Flujo sugerido, en el orden en que les toca dentro de cada rol. Al editar, si no viene, el flujo no cambia.
|
|
40
55
|
flowSteps?: DocumentFlowStepInput[];
|
|
@@ -48,7 +63,14 @@ export interface DocumentTypeContract {
|
|
|
48
63
|
// sin `page` y `limit` responde todos los tipos en una sola página
|
|
49
64
|
payload: {
|
|
50
65
|
pagination?: { page?: number; limit?: number };
|
|
51
|
-
filters?: {
|
|
66
|
+
filters?: {
|
|
67
|
+
search?: string;
|
|
68
|
+
enabled?: boolean;
|
|
69
|
+
category?: DocumentCategory;
|
|
70
|
+
// Solo los que puede usar quien redacta: los de toda la municipalidad y los de estas direcciones (o de una
|
|
71
|
+
// entidad emisora por la que actúan).
|
|
72
|
+
usableByDirectorates?: number[];
|
|
73
|
+
};
|
|
52
74
|
};
|
|
53
75
|
response: RpcPage<DocumentTypeGetAllResponseEntity[]>;
|
|
54
76
|
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type HolidayRemoveResponseEntity, type HolidayResponseEntity } from '../entities';
|
|
2
|
+
|
|
3
|
+
/** Patrones NATS de `holiday`: feriados para contar días hábiles. */
|
|
4
|
+
export const HolidayPatterns = {
|
|
5
|
+
getAll: 'gestorDocumental.holiday.getAll',
|
|
6
|
+
create: 'gestorDocumental.holiday.create',
|
|
7
|
+
remove: 'gestorDocumental.holiday.remove',
|
|
8
|
+
} as const;
|
|
9
|
+
|
|
10
|
+
export interface HolidayContract {
|
|
11
|
+
/** Feriados de un año, en orden. */
|
|
12
|
+
[HolidayPatterns.getAll]: { payload: { year: number }; response: HolidayResponseEntity[] };
|
|
13
|
+
/** `date` como «AAAA-MM-DD». */
|
|
14
|
+
[HolidayPatterns.create]: { payload: { date: string; name: string }; response: HolidayResponseEntity };
|
|
15
|
+
[HolidayPatterns.remove]: { payload: { id: string }; response: HolidayRemoveResponseEntity };
|
|
16
|
+
}
|
package/src/contracts/index.ts
CHANGED
|
@@ -1,15 +1,96 @@
|
|
|
1
|
+
import { CaseFilePatterns, type CaseFileContract } from './caseFile.contract';
|
|
1
2
|
import { DocumentPatterns, type DocumentContract } from './document.contract';
|
|
2
3
|
import { DocumentTypePatterns, type DocumentTypeContract } from './documentType.contract';
|
|
4
|
+
import { IssuingEntityPatterns, type IssuingEntityContract } from './issuingEntity.contract';
|
|
5
|
+
import { ArchivalSeriesPatterns, type ArchivalSeriesContract } from './archivalSeries.contract';
|
|
6
|
+
import { TextSnippetPatterns, type TextSnippetContract } from './textSnippet.contract';
|
|
7
|
+
import { HolidayPatterns, type HolidayContract } from './holiday.contract';
|
|
8
|
+
import { IndicatorsPatterns, type IndicatorsContract } from './indicators.contract';
|
|
9
|
+
import { AuditPatterns, type AuditContract } from './audit.contract';
|
|
10
|
+
import { SignatureCheckPatterns, type SignatureCheckContract } from './signatureCheck.contract';
|
|
11
|
+
import { RepositoryExportPatterns, type RepositoryExportContract } from './repositoryExport.contract';
|
|
12
|
+
import { RetentionPatterns, type RetentionContract } from './retention.contract';
|
|
13
|
+
import { AccessRequestPatterns, type AccessRequestContract } from './accessRequest.contract';
|
|
14
|
+
import { TransparencyPatterns, type TransparencyContract } from './transparency.contract';
|
|
15
|
+
import { DataProtectionPatterns, type DataProtectionContract } from './dataProtection.contract';
|
|
16
|
+
import { DeskPatterns, type DeskContract } from './desk.contract';
|
|
17
|
+
import { ScanPatterns, type ScanContract } from './scan.contract';
|
|
18
|
+
import { PartsOfficePatterns, type PartsOfficeContract } from './partsOffice.contract';
|
|
19
|
+
import { ProcedurePatterns, type ProcedureContract } from './procedure.contract';
|
|
20
|
+
import { RegisterBookPatterns, type RegisterBookContract } from './registerBook.contract';
|
|
21
|
+
import { SignatureBatchPatterns, type SignatureBatchContract } from './signatureBatch.contract';
|
|
22
|
+
import { WorkFolderPatterns, type WorkFolderContract } from './workFolder.contract';
|
|
3
23
|
|
|
4
24
|
export * from './contract';
|
|
5
25
|
export * from './document.contract';
|
|
6
26
|
export * from './documentType.contract';
|
|
27
|
+
export * from './procedure.contract';
|
|
28
|
+
export * from './issuingEntity.contract';
|
|
29
|
+
export * from './caseFile.contract';
|
|
30
|
+
export * from './partsOffice.contract';
|
|
31
|
+
export * from './registerBook.contract';
|
|
32
|
+
export * from './signatureBatch.contract';
|
|
33
|
+
export * from './workFolder.contract';
|
|
34
|
+
export * from './scan.contract';
|
|
35
|
+
export * from './archivalSeries.contract';
|
|
36
|
+
export * from './textSnippet.contract';
|
|
37
|
+
export * from './holiday.contract';
|
|
38
|
+
export * from './indicators.contract';
|
|
39
|
+
export * from './audit.contract';
|
|
40
|
+
export * from './signatureCheck.contract';
|
|
41
|
+
export * from './repositoryExport.contract';
|
|
42
|
+
export * from './retention.contract';
|
|
43
|
+
export * from './accessRequest.contract';
|
|
44
|
+
export * from './transparency.contract';
|
|
45
|
+
export * from './dataProtection.contract';
|
|
46
|
+
export * from './desk.contract';
|
|
7
47
|
|
|
8
48
|
/** Patrones NATS de gestor-documental-ms, por recurso: `gestorDocumental.<recurso>.<acción>`. */
|
|
9
49
|
export const GestorDocumentalPatterns = {
|
|
10
50
|
documentType: DocumentTypePatterns,
|
|
11
51
|
document: DocumentPatterns,
|
|
52
|
+
procedure: ProcedurePatterns,
|
|
53
|
+
issuingEntity: IssuingEntityPatterns,
|
|
54
|
+
caseFile: CaseFilePatterns,
|
|
55
|
+
partsOffice: PartsOfficePatterns,
|
|
56
|
+
registerBook: RegisterBookPatterns,
|
|
57
|
+
signatureBatch: SignatureBatchPatterns,
|
|
58
|
+
workFolder: WorkFolderPatterns,
|
|
59
|
+
scan: ScanPatterns,
|
|
60
|
+
archivalSeries: ArchivalSeriesPatterns,
|
|
61
|
+
textSnippet: TextSnippetPatterns,
|
|
62
|
+
holiday: HolidayPatterns,
|
|
63
|
+
indicators: IndicatorsPatterns,
|
|
64
|
+
audit: AuditPatterns,
|
|
65
|
+
signatureCheck: SignatureCheckPatterns,
|
|
66
|
+
repositoryExport: RepositoryExportPatterns,
|
|
67
|
+
retention: RetentionPatterns,
|
|
68
|
+
accessRequest: AccessRequestPatterns,
|
|
69
|
+
transparency: TransparencyPatterns,
|
|
70
|
+
dataProtection: DataProtectionPatterns,
|
|
71
|
+
desk: DeskPatterns,
|
|
12
72
|
} as const;
|
|
13
73
|
|
|
14
74
|
/** Contrato completo de gestor-documental-ms: la unión de los contratos de sus recursos. */
|
|
15
|
-
export type GestorDocumentalContract = DocumentTypeContract &
|
|
75
|
+
export type GestorDocumentalContract = DocumentTypeContract &
|
|
76
|
+
DocumentContract &
|
|
77
|
+
ProcedureContract &
|
|
78
|
+
IssuingEntityContract &
|
|
79
|
+
CaseFileContract &
|
|
80
|
+
PartsOfficeContract &
|
|
81
|
+
RegisterBookContract &
|
|
82
|
+
SignatureBatchContract &
|
|
83
|
+
WorkFolderContract &
|
|
84
|
+
ScanContract &
|
|
85
|
+
ArchivalSeriesContract &
|
|
86
|
+
TextSnippetContract &
|
|
87
|
+
HolidayContract &
|
|
88
|
+
IndicatorsContract &
|
|
89
|
+
AuditContract &
|
|
90
|
+
SignatureCheckContract &
|
|
91
|
+
RepositoryExportContract &
|
|
92
|
+
RetentionContract &
|
|
93
|
+
AccessRequestContract &
|
|
94
|
+
TransparencyContract &
|
|
95
|
+
DataProtectionContract &
|
|
96
|
+
DeskContract;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type IndicatorsFileEntity,
|
|
3
|
+
type ManagementIndicatorsEntity,
|
|
4
|
+
type QualityMetricSettingResponseEntity,
|
|
5
|
+
type QualityReportEntity,
|
|
6
|
+
type ServiceOutageRemoveResponseEntity,
|
|
7
|
+
type ServiceOutageResponseEntity,
|
|
8
|
+
} from '../entities';
|
|
9
|
+
import { type QualityMetricKey, type ServiceOutageKind } from '../base/entities';
|
|
10
|
+
|
|
11
|
+
/** Patrones NATS de `indicators`: indicadores de gestión y Plan de Mejora Continua (DS 11/2023). */
|
|
12
|
+
export const IndicatorsPatterns = {
|
|
13
|
+
getManagement: 'gestorDocumental.indicators.getManagement',
|
|
14
|
+
getQuality: 'gestorDocumental.indicators.getQuality',
|
|
15
|
+
export: 'gestorDocumental.indicators.export',
|
|
16
|
+
updateQualityMetric: 'gestorDocumental.indicators.updateQualityMetric',
|
|
17
|
+
getOutages: 'gestorDocumental.indicators.getOutages',
|
|
18
|
+
createOutage: 'gestorDocumental.indicators.createOutage',
|
|
19
|
+
updateOutage: 'gestorDocumental.indicators.updateOutage',
|
|
20
|
+
removeOutage: 'gestorDocumental.indicators.removeOutage',
|
|
21
|
+
getOutageCertificate: 'gestorDocumental.indicators.getOutageCertificate',
|
|
22
|
+
} as const;
|
|
23
|
+
|
|
24
|
+
/** Período: días de Chile «AAAA-MM-DD», hasta dos años. */
|
|
25
|
+
export interface IndicatorsPeriodQuery {
|
|
26
|
+
from: string;
|
|
27
|
+
to: string;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface ManagementIndicatorsQuery extends IndicatorsPeriodQuery {
|
|
31
|
+
documentTypeId?: string | null;
|
|
32
|
+
directorateCode?: number | null;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface ServiceOutageInput {
|
|
36
|
+
kind: ServiceOutageKind;
|
|
37
|
+
startedAt: string;
|
|
38
|
+
endedAt?: string | null;
|
|
39
|
+
cause: string;
|
|
40
|
+
affectedServices?: string | null;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface IndicatorsContract {
|
|
44
|
+
[IndicatorsPatterns.getManagement]: { payload: ManagementIndicatorsQuery; response: ManagementIndicatorsEntity };
|
|
45
|
+
[IndicatorsPatterns.getQuality]: { payload: IndicatorsPeriodQuery; response: QualityReportEntity };
|
|
46
|
+
/**
|
|
47
|
+
* Indicadores y Plan de Mejora en una planilla Excel. `generatedBy`: quién la descarga. `unitNames`: nombre de cada
|
|
48
|
+
* unidad (`c:<código de dirección>` o `d:<id de departamento>`), que el ms no conoce.
|
|
49
|
+
*/
|
|
50
|
+
[IndicatorsPatterns.export]: {
|
|
51
|
+
payload: ManagementIndicatorsQuery & { generatedBy: string; unitNames?: Record<string, string> };
|
|
52
|
+
response: IndicatorsFileEntity;
|
|
53
|
+
};
|
|
54
|
+
/** Umbral y, en las métricas declaradas, su valor y respaldo. */
|
|
55
|
+
[IndicatorsPatterns.updateQualityMetric]: {
|
|
56
|
+
payload: {
|
|
57
|
+
key: QualityMetricKey;
|
|
58
|
+
threshold: number;
|
|
59
|
+
declaredValue?: number | null;
|
|
60
|
+
declaredNote?: string | null;
|
|
61
|
+
actor: { fullName: string };
|
|
62
|
+
};
|
|
63
|
+
response: QualityMetricSettingResponseEntity;
|
|
64
|
+
};
|
|
65
|
+
[IndicatorsPatterns.getOutages]: { payload: { year: number }; response: ServiceOutageResponseEntity[] };
|
|
66
|
+
[IndicatorsPatterns.createOutage]: {
|
|
67
|
+
payload: ServiceOutageInput & { actor: { employeeId: string; fullName: string } };
|
|
68
|
+
response: ServiceOutageResponseEntity;
|
|
69
|
+
};
|
|
70
|
+
[IndicatorsPatterns.updateOutage]: {
|
|
71
|
+
payload: ServiceOutageInput & { id: string; actor: { employeeId: string; fullName: string } };
|
|
72
|
+
response: ServiceOutageResponseEntity;
|
|
73
|
+
};
|
|
74
|
+
[IndicatorsPatterns.removeOutage]: { payload: { id: string }; response: ServiceOutageRemoveResponseEntity };
|
|
75
|
+
/** Certificado de indisponibilidad (DS 10/2023) en PDF, de una caída ya terminada. */
|
|
76
|
+
[IndicatorsPatterns.getOutageCertificate]: {
|
|
77
|
+
payload: { id: string; generatedBy: string };
|
|
78
|
+
response: IndicatorsFileEntity;
|
|
79
|
+
};
|
|
80
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { type IssuingEntityEntity } from '../base/entities';
|
|
2
|
+
import {
|
|
3
|
+
type IssuingEntityCreateResponseEntity,
|
|
4
|
+
type IssuingEntityGetAllResponseEntity,
|
|
5
|
+
type IssuingEntityGetByIdResponseEntity,
|
|
6
|
+
type IssuingEntityUpdateResponseEntity,
|
|
7
|
+
} from '../entities';
|
|
8
|
+
import { type RpcPage } from './contract';
|
|
9
|
+
|
|
10
|
+
/** Patrones NATS de `issuingEntity`: `<servicio>.<recurso>.<acción>`. */
|
|
11
|
+
export const IssuingEntityPatterns = {
|
|
12
|
+
getAll: 'gestorDocumental.issuingEntity.getAll',
|
|
13
|
+
getById: 'gestorDocumental.issuingEntity.getById',
|
|
14
|
+
create: 'gestorDocumental.issuingEntity.create',
|
|
15
|
+
update: 'gestorDocumental.issuingEntity.update',
|
|
16
|
+
setEnabled: 'gestorDocumental.issuingEntity.setEnabled',
|
|
17
|
+
} as const;
|
|
18
|
+
|
|
19
|
+
/** Datos de una entidad emisora al crearla o editarla. */
|
|
20
|
+
export interface IssuingEntityWritePayload {
|
|
21
|
+
name: string;
|
|
22
|
+
shortName?: string | null;
|
|
23
|
+
/** Direcciones (código de caschile) cuyos funcionarios actúan por la entidad. */
|
|
24
|
+
directorateCodeReferences: number[];
|
|
25
|
+
/** Su entidad en DocDigital, entre las asociadas a las credenciales del gestor. */
|
|
26
|
+
docDigitalEntityId?: number | null;
|
|
27
|
+
enabled?: boolean;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface IssuingEntityContract {
|
|
31
|
+
[IssuingEntityPatterns.getAll]: {
|
|
32
|
+
// sin `page` y `limit` responde todas en una sola página
|
|
33
|
+
payload: {
|
|
34
|
+
pagination?: { page?: number; limit?: number };
|
|
35
|
+
filters?: { search?: string; enabled?: boolean };
|
|
36
|
+
};
|
|
37
|
+
response: RpcPage<IssuingEntityGetAllResponseEntity[]>;
|
|
38
|
+
};
|
|
39
|
+
[IssuingEntityPatterns.getById]: {
|
|
40
|
+
payload: Pick<IssuingEntityEntity, 'id'>;
|
|
41
|
+
response: IssuingEntityGetByIdResponseEntity;
|
|
42
|
+
};
|
|
43
|
+
[IssuingEntityPatterns.create]: {
|
|
44
|
+
payload: IssuingEntityWritePayload;
|
|
45
|
+
response: IssuingEntityCreateResponseEntity;
|
|
46
|
+
};
|
|
47
|
+
[IssuingEntityPatterns.update]: {
|
|
48
|
+
payload: IssuingEntityWritePayload & Pick<IssuingEntityEntity, 'id'>;
|
|
49
|
+
response: IssuingEntityUpdateResponseEntity;
|
|
50
|
+
};
|
|
51
|
+
[IssuingEntityPatterns.setEnabled]: {
|
|
52
|
+
payload: Pick<IssuingEntityEntity, 'id' | 'enabled'>;
|
|
53
|
+
response: IssuingEntityUpdateResponseEntity;
|
|
54
|
+
};
|
|
55
|
+
}
|