@muni-sanfer/types-gestor-documental 0.0.1-beta.15 → 0.0.1-beta.17

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 (59) hide show
  1. package/dist/base/entities.d.ts +63 -0
  2. package/dist/base/entities.js +12 -1
  3. package/dist/contracts/archivalSeries.contract.d.ts +50 -0
  4. package/dist/contracts/archivalSeries.contract.js +11 -0
  5. package/dist/contracts/caseFile.contract.d.ts +4 -0
  6. package/dist/contracts/document.contract.d.ts +12 -1
  7. package/dist/contracts/document.contract.js +1 -0
  8. package/dist/contracts/documentType.contract.d.ts +1 -0
  9. package/dist/contracts/holiday.contract.d.ts +30 -0
  10. package/dist/contracts/holiday.contract.js +9 -0
  11. package/dist/contracts/index.d.ts +37 -1
  12. package/dist/contracts/index.js +12 -0
  13. package/dist/contracts/scan.contract.d.ts +63 -0
  14. package/dist/contracts/scan.contract.js +12 -0
  15. package/dist/contracts/textSnippet.contract.d.ts +51 -0
  16. package/dist/contracts/textSnippet.contract.js +11 -0
  17. package/dist/entities/archivalSeries/archivalSeries.entity.d.ts +27 -0
  18. package/dist/entities/archivalSeries/archivalSeries.entity.js +2 -0
  19. package/dist/entities/archivalSeries/index.d.ts +1 -0
  20. package/dist/entities/archivalSeries/index.js +17 -0
  21. package/dist/entities/caseFile/caseFile.entity.d.ts +8 -0
  22. package/dist/entities/document/document.entity.d.ts +30 -0
  23. package/dist/entities/documentType/documentType.entity.d.ts +5 -0
  24. package/dist/entities/holiday/holiday.entity.d.ts +10 -0
  25. package/dist/entities/holiday/holiday.entity.js +2 -0
  26. package/dist/entities/holiday/index.d.ts +1 -0
  27. package/dist/entities/holiday/index.js +17 -0
  28. package/dist/entities/index.d.ts +4 -0
  29. package/dist/entities/index.js +4 -0
  30. package/dist/entities/scan/index.d.ts +1 -0
  31. package/dist/entities/scan/index.js +17 -0
  32. package/dist/entities/scan/scan.entity.d.ts +29 -0
  33. package/dist/entities/scan/scan.entity.js +2 -0
  34. package/dist/entities/textSnippet/index.d.ts +1 -0
  35. package/dist/entities/textSnippet/index.js +17 -0
  36. package/dist/entities/textSnippet/textSnippet.entity.d.ts +20 -0
  37. package/dist/entities/textSnippet/textSnippet.entity.js +2 -0
  38. package/package.json +1 -1
  39. package/src/base/entities.ts +71 -0
  40. package/src/contracts/archivalSeries.contract.ts +53 -0
  41. package/src/contracts/caseFile.contract.ts +4 -0
  42. package/src/contracts/document.contract.ts +14 -0
  43. package/src/contracts/documentType.contract.ts +2 -0
  44. package/src/contracts/holiday.contract.ts +16 -0
  45. package/src/contracts/index.ts +17 -1
  46. package/src/contracts/scan.contract.ts +52 -0
  47. package/src/contracts/textSnippet.contract.ts +53 -0
  48. package/src/entities/archivalSeries/archivalSeries.entity.ts +32 -0
  49. package/src/entities/archivalSeries/index.ts +1 -0
  50. package/src/entities/caseFile/caseFile.entity.ts +4 -0
  51. package/src/entities/document/document.entity.ts +30 -0
  52. package/src/entities/documentType/documentType.entity.ts +2 -0
  53. package/src/entities/holiday/holiday.entity.ts +11 -0
  54. package/src/entities/holiday/index.ts +1 -0
  55. package/src/entities/index.ts +4 -0
  56. package/src/entities/scan/index.ts +1 -0
  57. package/src/entities/scan/scan.entity.ts +32 -0
  58. package/src/entities/textSnippet/index.ts +1 -0
  59. package/src/entities/textSnippet/textSnippet.entity.ts +24 -0
@@ -0,0 +1,32 @@
1
+ import { ArchivalSeriesEntity } from '../../base/entities';
2
+
3
+ export interface ArchivalSeriesGetAllResponseEntity {
4
+ id: ArchivalSeriesEntity['id'];
5
+ code: ArchivalSeriesEntity['code'];
6
+ name: ArchivalSeriesEntity['name'];
7
+ section: ArchivalSeriesEntity['section'];
8
+ description: ArchivalSeriesEntity['description'];
9
+ enabled: ArchivalSeriesEntity['enabled'];
10
+ /** Cuántos tipos documentales y expedientes la usan. */
11
+ documentTypes: number;
12
+ caseFiles: number;
13
+ }
14
+
15
+ export type ArchivalSeriesGetByIdResponseEntity = ArchivalSeriesGetAllResponseEntity;
16
+
17
+ /** Cómo se cita una serie donde se usa: código y nombre. */
18
+ export interface ArchivalSeriesSummaryEntity {
19
+ id: string;
20
+ code: string;
21
+ name: string;
22
+ }
23
+
24
+ export interface ArchivalSeriesCreateResponseEntity {
25
+ id: ArchivalSeriesEntity['id'];
26
+ ok: boolean;
27
+ }
28
+
29
+ export interface ArchivalSeriesUpdateResponseEntity {
30
+ id: ArchivalSeriesEntity['id'];
31
+ ok: boolean;
32
+ }
@@ -0,0 +1 @@
1
+ export * from './archivalSeries.entity';
@@ -140,6 +140,10 @@ export interface CaseFileGetByIdResponseEntity extends CaseFileGetAllResponseEnt
140
140
  closingNote: CaseFileEntity['closingNote'];
141
141
  /** Expediente híbrido: tiene documentos en papel que no se pudieron digitalizar. */
142
142
  isHybrid: boolean;
143
+ /** MGDEE1_2: serie del Cuadro de Clasificación. */
144
+ archivalSeries: { id: string; code: string; name: string } | null;
145
+ /** MGDEE8_2: fin de la restricción de acceso. */
146
+ restrictionEndsAt: string | null;
143
147
  index: CaseFileEntryResponseEntity[];
144
148
  sharedWith: CaseFileParticipantResponseEntity[];
145
149
  actors: CaseFileActorResponseEntity[];
@@ -130,7 +130,14 @@ export interface DocumentGetAllResponseEntity {
130
130
  }
131
131
 
132
132
  /** Una entrada de la bandeja de recibidos: la entrega y el documento al que corresponde. */
133
+ /** Semáforo de un plazo pendiente: a tiempo, por vencer (2 días hábiles o menos) o vencido. */
134
+ export type DocumentDueStatus = 'OnTime' | 'DueSoon' | 'Overdue';
135
+
133
136
  export interface DocumentInboxItemEntity extends DocumentDeliveryResponseEntity {
137
+ /** Semáforo de lo pendiente con plazo (sin plazo o ya atendido, `null`). */
138
+ dueStatus: DocumentDueStatus | null;
139
+ /** Días hábiles que quedan, sin contar hoy (vencido: `null`). */
140
+ businessDaysLeft: number | null;
134
141
  document: DocumentLinkEntity;
135
142
  }
136
143
 
@@ -138,6 +145,10 @@ export interface DocumentGetByIdResponseEntity {
138
145
  id: DocumentEntity['id'];
139
146
  // Quién lo emite: la entidad emisora del tipo (Educación, Salud, Juzgado) o la municipalidad.
140
147
  issuerName: string;
148
+ // Serie documental del Cuadro de Clasificación (la de su tipo documental; MGDDE1_2).
149
+ archivalSeries: { id: string; code: string; name: string } | null;
150
+ // Fin de la restricción de acceso: desde entonces se consulta como público si no tiene datos sensibles.
151
+ restrictionEndsAt: string | null;
141
152
  subject: DocumentEntity['subject'];
142
153
  keywords: DocumentEntity['keywords'];
143
154
  accessLevel: DocumentEntity['accessLevel'];
@@ -372,6 +383,10 @@ export interface DocumentReassignResponseEntity {
372
383
  */
373
384
  export interface DocumentAgendaItemEntity {
374
385
  kind: 'Received' | 'Sent';
386
+ /** Semáforo de lo pendiente (atendido o ya respondido por todos: `null`). */
387
+ dueStatus: DocumentDueStatus | null;
388
+ /** Días hábiles que quedan, sin contar hoy (vencido: `null`). */
389
+ businessDaysLeft: number | null;
375
390
  /** La entrega (lo recibido) o el documento (lo enviado). */
376
391
  id: string;
377
392
  documentId: DocumentEntity['id'];
@@ -491,3 +506,18 @@ export interface DocumentEmailCopyViewEntity {
491
506
  verificationCode: string | null;
492
507
  signers: { fullName: string; position: string | null; signedAt: string | null }[];
493
508
  }
509
+
510
+ /** Recordatorio de un plazo: al recibido y, si venció, también a su jefatura (la resuelve el gateway). */
511
+ export interface DocumentReminderEntity {
512
+ deliveryId: string;
513
+ kind: 'DueSoon' | 'Overdue';
514
+ employeeId: string;
515
+ fullName: string;
516
+ documentId: string;
517
+ /** Cómo se cita: «D.E. N° 590/2026», el folio de ingreso o el tipo. */
518
+ folio: string;
519
+ subject: string;
520
+ dueAt: string;
521
+ instruction: DocumentDeliveryEntity['instruction'];
522
+ sentByFullName: string | null;
523
+ }
@@ -27,6 +27,8 @@ export interface DocumentTypeGetAllResponseEntity {
27
27
  // Sin numeración, sus documentos solo llevan fecha, código de verificación y QR.
28
28
  numbered: DocumentTypeEntity['numbered'];
29
29
  directorateCodeReference: DocumentTypeEntity['directorateCodeReference'];
30
+ // Serie documental del Cuadro de Clasificación a la que van sus documentos (MGDDE1_2).
31
+ archivalSeries: { id: string; code: string; name: string } | null;
30
32
  // Entidad que emite sus documentos (Educación, Salud, Juzgado). `null`: la municipalidad.
31
33
  issuingEntity: { id: string; name: string; shortName: string | null } | null;
32
34
  // Tipo cuyo correlativo comparte: sus números salen de esa serie (y `nextCorrelative`, `correlativeYear` y
@@ -0,0 +1,11 @@
1
+ /** Feriado: el día («AAAA-MM-DD») no cuenta como hábil en los plazos. */
2
+ export interface HolidayResponseEntity {
3
+ id: string;
4
+ date: string;
5
+ name: string;
6
+ }
7
+
8
+ export interface HolidayRemoveResponseEntity {
9
+ id: string;
10
+ ok: boolean;
11
+ }
@@ -0,0 +1 @@
1
+ export * from './holiday.entity';
@@ -7,3 +7,7 @@ export * from './partsOffice';
7
7
  export * from './registerBook';
8
8
  export * from './signatureBatch';
9
9
  export * from './workFolder';
10
+ export * from './scan';
11
+ export * from './archivalSeries';
12
+ export * from './textSnippet';
13
+ export * from './holiday';
@@ -0,0 +1 @@
1
+ export * from './scan.entity';
@@ -0,0 +1,32 @@
1
+ /** Sesión recién abierta: el token y el QR viajan solo aquí. */
2
+ export interface ScanSessionCreateResponseEntity {
3
+ id: string;
4
+ token: string;
5
+ /** Dirección que abre el celular, con el token. */
6
+ url: string;
7
+ /** El QR de esa dirección, como imagen PNG en data URL. */
8
+ qrDataUrl: string;
9
+ expiresAt: string;
10
+ }
11
+
12
+ /** Estado de la sesión, como lo ve en el escritorio quien la abrió. */
13
+ export interface ScanSessionResponseEntity {
14
+ id: string;
15
+ status: 'Open' | 'Ready';
16
+ pageCount: number;
17
+ expiresAt: string;
18
+ fileName: string | null;
19
+ }
20
+
21
+ export interface ScanSessionFileResponseEntity {
22
+ fileId: string;
23
+ fileName: string;
24
+ }
25
+
26
+ /** La sesión como la ve el celular. */
27
+ export interface ScanSessionPublicEntity {
28
+ status: 'Open' | 'Ready';
29
+ pageCount: number;
30
+ maxPages: number;
31
+ expiresAt: string;
32
+ }
@@ -0,0 +1 @@
1
+ export * from './textSnippet.entity';
@@ -0,0 +1,24 @@
1
+ import { TextSnippetEntity } from '../../base/entities';
2
+
3
+ /** Texto de la biblioteca de vistos y cláusulas. */
4
+ export interface TextSnippetGetAllResponseEntity {
5
+ id: TextSnippetEntity['id'];
6
+ title: TextSnippetEntity['title'];
7
+ text: TextSnippetEntity['text'];
8
+ section: TextSnippetEntity['section'];
9
+ keywords: TextSnippetEntity['keywords'];
10
+ enabled: TextSnippetEntity['enabled'];
11
+ updatedAt: TextSnippetEntity['updatedAt'];
12
+ }
13
+
14
+ export type TextSnippetGetByIdResponseEntity = TextSnippetGetAllResponseEntity;
15
+
16
+ export interface TextSnippetCreateResponseEntity {
17
+ id: TextSnippetEntity['id'];
18
+ ok: boolean;
19
+ }
20
+
21
+ export interface TextSnippetUpdateResponseEntity {
22
+ id: TextSnippetEntity['id'];
23
+ ok: boolean;
24
+ }