@muni-sanfer/types-gestor-documental 0.0.1-beta.8 → 0.0.1-beta.9

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.
@@ -1,5 +1,5 @@
1
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 DocumentUpdateResponseEntity, type DocumentVerifyResponseEntity } from '../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 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: {
@@ -19,6 +19,8 @@ export declare const DocumentPatterns: {
19
19
  readonly verify: "gestorDocumental.document.verify";
20
20
  readonly getPublicFile: "gestorDocumental.document.getPublicFile";
21
21
  readonly getFilesFolder: "gestorDocumental.document.getFilesFolder";
22
+ readonly getAgenda: "gestorDocumental.document.getAgenda";
23
+ readonly exportTrail: "gestorDocumental.document.exportTrail";
22
24
  };
23
25
  /**
24
26
  * Funcionario que hace la operación y sus áreas (direcciones y departamentos a los que pertenece o que dirige). Lo
@@ -89,6 +91,27 @@ export interface DocumentExternalRecipientInput {
89
91
  * Qué se envía y qué se responde en cada patrón. Generado desde los handlers y los DTO del microservicio.
90
92
  */
91
93
  export interface DocumentContract {
94
+ /** Plazos del funcionario entre `from` y `to` (hasta 62 días), y lo que tiene vencido sin atender. */
95
+ [DocumentPatterns.getAgenda]: {
96
+ payload: {
97
+ from: string;
98
+ to: string;
99
+ actor: DocumentActor;
100
+ };
101
+ response: DocumentAgendaResponseEntity;
102
+ };
103
+ /**
104
+ * Trazabilidad del documento en PDF: datos, flujo, hechos y huella de sus archivos. Con las mismas reglas de acceso
105
+ * del detalle. `generatedBy`: quién la descarga (va al pie).
106
+ */
107
+ [DocumentPatterns.exportTrail]: {
108
+ payload: Pick<DocumentEntity, 'id'> & {
109
+ actor?: DocumentActor;
110
+ viewAll?: boolean;
111
+ generatedBy: string;
112
+ };
113
+ response: DocumentTrailExportEntity;
114
+ };
92
115
  [DocumentPatterns.getAll]: {
93
116
  payload: {
94
117
  pagination?: {
@@ -19,4 +19,6 @@ exports.DocumentPatterns = {
19
19
  verify: 'gestorDocumental.document.verify',
20
20
  getPublicFile: 'gestorDocumental.document.getPublicFile',
21
21
  getFilesFolder: 'gestorDocumental.document.getFilesFolder',
22
+ getAgenda: 'gestorDocumental.document.getAgenda',
23
+ exportTrail: 'gestorDocumental.document.exportTrail',
22
24
  };
@@ -39,6 +39,8 @@ export declare const GestorDocumentalPatterns: {
39
39
  readonly verify: "gestorDocumental.document.verify";
40
40
  readonly getPublicFile: "gestorDocumental.document.getPublicFile";
41
41
  readonly getFilesFolder: "gestorDocumental.document.getFilesFolder";
42
+ readonly getAgenda: "gestorDocumental.document.getAgenda";
43
+ readonly exportTrail: "gestorDocumental.document.exportTrail";
42
44
  };
43
45
  readonly procedure: {
44
46
  readonly getAll: "gestorDocumental.procedure.getAll";
@@ -310,3 +310,46 @@ export interface DocumentReassignResponseEntity {
310
310
  id: DocumentEntity['id'];
311
311
  ok: boolean;
312
312
  }
313
+ /**
314
+ * Un plazo en la agenda de un funcionario: lo que recibió (como destinatario o por derivación) y debe atender, o un
315
+ * documento que envió y del que espera respuesta.
316
+ */
317
+ export interface DocumentAgendaItemEntity {
318
+ kind: 'Received' | 'Sent';
319
+ /** La entrega (lo recibido) o el documento (lo enviado). */
320
+ id: string;
321
+ documentId: DocumentEntity['id'];
322
+ subject: DocumentEntity['subject'];
323
+ documentType: {
324
+ name: string;
325
+ abbreviation: string | null;
326
+ };
327
+ correlative: DocumentEntity['correlative'];
328
+ correlativeYear: DocumentEntity['correlativeYear'];
329
+ intakeNumber: DocumentEntity['intakeNumber'];
330
+ intakeYear: DocumentEntity['intakeYear'];
331
+ /** Plazo, en ISO 8601. */
332
+ dueAt: string;
333
+ /** Lo recibido: cuándo lo marcó como atendido (sin valor si sigue pendiente). */
334
+ closedAt: string | null;
335
+ /** Lo recibido: la providencia y quién lo derivó. */
336
+ instruction: DocumentDeliveryEntity['instruction'] | null;
337
+ sentByFullName: string | null;
338
+ /** Lo enviado: a cuántos les llegó y cuántos aún no lo atienden. */
339
+ recipients: {
340
+ total: number;
341
+ pending: number;
342
+ } | null;
343
+ }
344
+ export interface DocumentAgendaResponseEntity {
345
+ /** Plazos dentro del período pedido. */
346
+ items: DocumentAgendaItemEntity[];
347
+ /** Lo recibido con el plazo vencido y sin atender, de cualquier fecha (los 50 más antiguos). */
348
+ overdue: DocumentAgendaItemEntity[];
349
+ }
350
+ /** Trazabilidad de un documento en PDF, lista para descargar. */
351
+ export interface DocumentTrailExportEntity {
352
+ fileName: string;
353
+ contentType: string;
354
+ contentBase64: string;
355
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@muni-sanfer/types-gestor-documental",
3
- "version": "0.0.1-beta.8",
3
+ "version": "0.0.1-beta.9",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -21,6 +21,8 @@ import {
21
21
  type DocumentReassignResponseEntity,
22
22
  type DocumentReviewResponseEntity,
23
23
  type DocumentSignManyResponseEntity,
24
+ type DocumentAgendaResponseEntity,
25
+ type DocumentTrailExportEntity,
24
26
  type DocumentUpdateResponseEntity,
25
27
  type DocumentVerifyResponseEntity,
26
28
  } from '../entities';
@@ -44,6 +46,8 @@ export const DocumentPatterns = {
44
46
  verify: 'gestorDocumental.document.verify',
45
47
  getPublicFile: 'gestorDocumental.document.getPublicFile',
46
48
  getFilesFolder: 'gestorDocumental.document.getFilesFolder',
49
+ getAgenda: 'gestorDocumental.document.getAgenda',
50
+ exportTrail: 'gestorDocumental.document.exportTrail',
47
51
  } as const;
48
52
 
49
53
  /**
@@ -124,6 +128,19 @@ export interface DocumentExternalRecipientInput {
124
128
  * Qué se envía y qué se responde en cada patrón. Generado desde los handlers y los DTO del microservicio.
125
129
  */
126
130
  export interface DocumentContract {
131
+ /** Plazos del funcionario entre `from` y `to` (hasta 62 días), y lo que tiene vencido sin atender. */
132
+ [DocumentPatterns.getAgenda]: {
133
+ payload: { from: string; to: string; actor: DocumentActor };
134
+ response: DocumentAgendaResponseEntity;
135
+ };
136
+ /**
137
+ * Trazabilidad del documento en PDF: datos, flujo, hechos y huella de sus archivos. Con las mismas reglas de acceso
138
+ * del detalle. `generatedBy`: quién la descarga (va al pie).
139
+ */
140
+ [DocumentPatterns.exportTrail]: {
141
+ payload: Pick<DocumentEntity, 'id'> & { actor?: DocumentActor; viewAll?: boolean; generatedBy: string };
142
+ response: DocumentTrailExportEntity;
143
+ };
127
144
  [DocumentPatterns.getAll]: {
128
145
  payload: {
129
146
  pagination?: { page?: number; limit?: number };
@@ -355,3 +355,43 @@ export interface DocumentReassignResponseEntity {
355
355
  id: DocumentEntity['id'];
356
356
  ok: boolean;
357
357
  }
358
+
359
+ /**
360
+ * Un plazo en la agenda de un funcionario: lo que recibió (como destinatario o por derivación) y debe atender, o un
361
+ * documento que envió y del que espera respuesta.
362
+ */
363
+ export interface DocumentAgendaItemEntity {
364
+ kind: 'Received' | 'Sent';
365
+ /** La entrega (lo recibido) o el documento (lo enviado). */
366
+ id: string;
367
+ documentId: DocumentEntity['id'];
368
+ subject: DocumentEntity['subject'];
369
+ documentType: { name: string; abbreviation: string | null };
370
+ correlative: DocumentEntity['correlative'];
371
+ correlativeYear: DocumentEntity['correlativeYear'];
372
+ intakeNumber: DocumentEntity['intakeNumber'];
373
+ intakeYear: DocumentEntity['intakeYear'];
374
+ /** Plazo, en ISO 8601. */
375
+ dueAt: string;
376
+ /** Lo recibido: cuándo lo marcó como atendido (sin valor si sigue pendiente). */
377
+ closedAt: string | null;
378
+ /** Lo recibido: la providencia y quién lo derivó. */
379
+ instruction: DocumentDeliveryEntity['instruction'] | null;
380
+ sentByFullName: string | null;
381
+ /** Lo enviado: a cuántos les llegó y cuántos aún no lo atienden. */
382
+ recipients: { total: number; pending: number } | null;
383
+ }
384
+
385
+ export interface DocumentAgendaResponseEntity {
386
+ /** Plazos dentro del período pedido. */
387
+ items: DocumentAgendaItemEntity[];
388
+ /** Lo recibido con el plazo vencido y sin atender, de cualquier fecha (los 50 más antiguos). */
389
+ overdue: DocumentAgendaItemEntity[];
390
+ }
391
+
392
+ /** Trazabilidad de un documento en PDF, lista para descargar. */
393
+ export interface DocumentTrailExportEntity {
394
+ fileName: string;
395
+ contentType: string;
396
+ contentBase64: string;
397
+ }