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

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 (146) hide show
  1. package/dist/base/entities.d.ts +607 -1
  2. package/dist/base/entities.js +133 -1
  3. package/dist/contracts/archivalSeries.contract.d.ts +50 -0
  4. package/dist/contracts/archivalSeries.contract.js +11 -0
  5. package/dist/contracts/audit.contract.d.ts +32 -0
  6. package/dist/contracts/audit.contract.js +8 -0
  7. package/dist/contracts/caseFile.contract.d.ts +262 -0
  8. package/dist/contracts/caseFile.contract.js +26 -0
  9. package/dist/contracts/document.contract.d.ts +145 -2
  10. package/dist/contracts/document.contract.js +9 -0
  11. package/dist/contracts/documentType.contract.d.ts +24 -1
  12. package/dist/contracts/holiday.contract.d.ts +30 -0
  13. package/dist/contracts/holiday.contract.js +9 -0
  14. package/dist/contracts/index.d.ts +162 -1
  15. package/dist/contracts/index.js +42 -0
  16. package/dist/contracts/indicators.contract.d.ts +103 -0
  17. package/dist/contracts/indicators.contract.js +15 -0
  18. package/dist/contracts/issuingEntity.contract.d.ts +52 -0
  19. package/dist/contracts/issuingEntity.contract.js +11 -0
  20. package/dist/contracts/partsOffice.contract.d.ts +177 -0
  21. package/dist/contracts/partsOffice.contract.js +23 -0
  22. package/dist/contracts/procedure.contract.d.ts +50 -0
  23. package/dist/contracts/procedure.contract.js +11 -0
  24. package/dist/contracts/registerBook.contract.d.ts +27 -0
  25. package/dist/contracts/registerBook.contract.js +8 -0
  26. package/dist/contracts/scan.contract.d.ts +63 -0
  27. package/dist/contracts/scan.contract.js +12 -0
  28. package/dist/contracts/signatureBatch.contract.d.ts +109 -0
  29. package/dist/contracts/signatureBatch.contract.js +12 -0
  30. package/dist/contracts/signatureCheck.contract.d.ts +14 -0
  31. package/dist/contracts/signatureCheck.contract.js +7 -0
  32. package/dist/contracts/textSnippet.contract.d.ts +51 -0
  33. package/dist/contracts/textSnippet.contract.js +11 -0
  34. package/dist/contracts/workFolder.contract.d.ts +114 -0
  35. package/dist/contracts/workFolder.contract.js +16 -0
  36. package/dist/entities/archivalSeries/archivalSeries.entity.d.ts +27 -0
  37. package/dist/entities/archivalSeries/archivalSeries.entity.js +2 -0
  38. package/dist/entities/archivalSeries/index.d.ts +1 -0
  39. package/dist/entities/archivalSeries/index.js +17 -0
  40. package/dist/entities/audit/audit.entity.d.ts +27 -0
  41. package/dist/entities/audit/audit.entity.js +2 -0
  42. package/dist/entities/audit/index.d.ts +1 -0
  43. package/dist/entities/audit/index.js +17 -0
  44. package/dist/entities/caseFile/caseFile.entity.d.ts +300 -0
  45. package/dist/entities/caseFile/caseFile.entity.js +2 -0
  46. package/dist/entities/caseFile/index.d.ts +1 -0
  47. package/dist/entities/caseFile/index.js +17 -0
  48. package/dist/entities/document/document.entity.d.ts +252 -0
  49. package/dist/entities/documentType/documentType.entity.d.ts +37 -1
  50. package/dist/entities/holiday/holiday.entity.d.ts +10 -0
  51. package/dist/entities/holiday/holiday.entity.js +2 -0
  52. package/dist/entities/holiday/index.d.ts +1 -0
  53. package/dist/entities/holiday/index.js +17 -0
  54. package/dist/entities/index.d.ts +14 -0
  55. package/dist/entities/index.js +14 -0
  56. package/dist/entities/indicators/index.d.ts +1 -0
  57. package/dist/entities/indicators/index.js +17 -0
  58. package/dist/entities/indicators/indicators.entity.d.ts +152 -0
  59. package/dist/entities/indicators/indicators.entity.js +2 -0
  60. package/dist/entities/issuingEntity/index.d.ts +1 -0
  61. package/dist/entities/issuingEntity/index.js +17 -0
  62. package/dist/entities/issuingEntity/issuingEntity.entity.d.ts +20 -0
  63. package/dist/entities/issuingEntity/issuingEntity.entity.js +2 -0
  64. package/dist/entities/partsOffice/index.d.ts +1 -0
  65. package/dist/entities/partsOffice/index.js +17 -0
  66. package/dist/entities/partsOffice/partsOffice.entity.d.ts +105 -0
  67. package/dist/entities/partsOffice/partsOffice.entity.js +2 -0
  68. package/dist/entities/procedure/index.d.ts +1 -0
  69. package/dist/entities/procedure/index.js +17 -0
  70. package/dist/entities/procedure/procedure.entity.d.ts +20 -0
  71. package/dist/entities/procedure/procedure.entity.js +2 -0
  72. package/dist/entities/registerBook/index.d.ts +1 -0
  73. package/dist/entities/registerBook/index.js +17 -0
  74. package/dist/entities/registerBook/registerBook.entity.d.ts +48 -0
  75. package/dist/entities/registerBook/registerBook.entity.js +2 -0
  76. package/dist/entities/scan/index.d.ts +1 -0
  77. package/dist/entities/scan/index.js +17 -0
  78. package/dist/entities/scan/scan.entity.d.ts +29 -0
  79. package/dist/entities/scan/scan.entity.js +2 -0
  80. package/dist/entities/signatureBatch/index.d.ts +1 -0
  81. package/dist/entities/signatureBatch/index.js +17 -0
  82. package/dist/entities/signatureBatch/signatureBatch.entity.d.ts +107 -0
  83. package/dist/entities/signatureBatch/signatureBatch.entity.js +2 -0
  84. package/dist/entities/signatureCheck/index.d.ts +1 -0
  85. package/dist/entities/signatureCheck/index.js +17 -0
  86. package/dist/entities/signatureCheck/signatureCheck.entity.d.ts +49 -0
  87. package/dist/entities/signatureCheck/signatureCheck.entity.js +2 -0
  88. package/dist/entities/textSnippet/index.d.ts +1 -0
  89. package/dist/entities/textSnippet/index.js +17 -0
  90. package/dist/entities/textSnippet/textSnippet.entity.d.ts +20 -0
  91. package/dist/entities/textSnippet/textSnippet.entity.js +2 -0
  92. package/dist/entities/workFolder/index.d.ts +1 -0
  93. package/dist/entities/workFolder/index.js +17 -0
  94. package/dist/entities/workFolder/workFolder.entity.d.ts +83 -0
  95. package/dist/entities/workFolder/workFolder.entity.js +2 -0
  96. package/package.json +1 -1
  97. package/src/base/entities.ts +716 -1
  98. package/src/contracts/archivalSeries.contract.ts +53 -0
  99. package/src/contracts/audit.contract.ts +30 -0
  100. package/src/contracts/caseFile.contract.ts +228 -0
  101. package/src/contracts/document.contract.ts +151 -2
  102. package/src/contracts/documentType.contract.ts +32 -2
  103. package/src/contracts/holiday.contract.ts +16 -0
  104. package/src/contracts/index.ts +58 -1
  105. package/src/contracts/indicators.contract.ts +80 -0
  106. package/src/contracts/issuingEntity.contract.ts +55 -0
  107. package/src/contracts/partsOffice.contract.ts +123 -0
  108. package/src/contracts/procedure.contract.ts +53 -0
  109. package/src/contracts/registerBook.contract.ts +24 -0
  110. package/src/contracts/scan.contract.ts +52 -0
  111. package/src/contracts/signatureBatch.contract.ts +96 -0
  112. package/src/contracts/signatureCheck.contract.ts +11 -0
  113. package/src/contracts/textSnippet.contract.ts +53 -0
  114. package/src/contracts/workFolder.contract.ts +75 -0
  115. package/src/entities/archivalSeries/archivalSeries.entity.ts +32 -0
  116. package/src/entities/archivalSeries/index.ts +1 -0
  117. package/src/entities/audit/audit.entity.ts +30 -0
  118. package/src/entities/audit/index.ts +1 -0
  119. package/src/entities/caseFile/caseFile.entity.ts +324 -0
  120. package/src/entities/caseFile/index.ts +1 -0
  121. package/src/entities/document/document.entity.ts +250 -0
  122. package/src/entities/documentType/documentType.entity.ts +31 -1
  123. package/src/entities/holiday/holiday.entity.ts +11 -0
  124. package/src/entities/holiday/index.ts +1 -0
  125. package/src/entities/index.ts +14 -0
  126. package/src/entities/indicators/index.ts +1 -0
  127. package/src/entities/indicators/indicators.entity.ts +157 -0
  128. package/src/entities/issuingEntity/index.ts +1 -0
  129. package/src/entities/issuingEntity/issuingEntity.entity.ts +24 -0
  130. package/src/entities/partsOffice/index.ts +1 -0
  131. package/src/entities/partsOffice/partsOffice.entity.ts +110 -0
  132. package/src/entities/procedure/index.ts +1 -0
  133. package/src/entities/procedure/procedure.entity.ts +24 -0
  134. package/src/entities/registerBook/index.ts +1 -0
  135. package/src/entities/registerBook/registerBook.entity.ts +52 -0
  136. package/src/entities/scan/index.ts +1 -0
  137. package/src/entities/scan/scan.entity.ts +32 -0
  138. package/src/entities/signatureBatch/index.ts +1 -0
  139. package/src/entities/signatureBatch/signatureBatch.entity.ts +110 -0
  140. package/src/entities/signatureCheck/index.ts +1 -0
  141. package/src/entities/signatureCheck/signatureCheck.entity.ts +51 -0
  142. package/src/entities/textSnippet/index.ts +1 -0
  143. package/src/entities/textSnippet/textSnippet.entity.ts +24 -0
  144. package/src/entities/workFolder/index.ts +1 -0
  145. package/src/entities/workFolder/workFolder.entity.ts +84 -0
  146. package/tsconfig.json +1 -3
@@ -0,0 +1,110 @@
1
+ import { type PdfSignatureReportEntity } from '../signatureCheck';
2
+ import {
3
+ type DocumentDispatchResponseEntity,
4
+ type DocumentExternalRecipientResponseEntity,
5
+ type DocumentLinkEntity,
6
+ } from '../document';
7
+
8
+ /** Institución del Estado en DocDigital. */
9
+ export interface DocDigitalEntityEntity {
10
+ id: number;
11
+ name: string;
12
+ /** Organismo al que pertenece (la entidad padre). */
13
+ organism: string | null;
14
+ }
15
+
16
+ /** Usuario habilitado de una institución en DocDigital. */
17
+ export interface DocDigitalUserEntity {
18
+ id: number;
19
+ name: string;
20
+ position: string | null;
21
+ }
22
+
23
+ export interface DocDigitalDocumentTypeEntity {
24
+ id: number;
25
+ name: string;
26
+ }
27
+
28
+ /** Si DocDigital está configurado en el gestor y cada cuánto se revisa lo recibido. */
29
+ export interface PartsOfficeStatusEntity {
30
+ configured: boolean;
31
+ syncMinutes: number;
32
+ }
33
+
34
+ /** Totales del Panel de Partes. */
35
+ export interface PartsOfficeSummaryEntity {
36
+ toDispatch: number;
37
+ received: number;
38
+ }
39
+
40
+ /** Documento firmado que va a otras instituciones: lo despacha Oficina de Partes. */
41
+ export interface PartsOfficeDispatchEntity extends DocumentDispatchResponseEntity {
42
+ document: DocumentLinkEntity & { accessLevel: string };
43
+ externalRecipients: DocumentExternalRecipientResponseEntity[];
44
+ /** A nombre de quién sale: la entidad emisora del tipo documental o la municipalidad. */
45
+ issuerName: string;
46
+ createdAt: string;
47
+ }
48
+
49
+ /** Documento que llegó por DocDigital. */
50
+ export interface PartsOfficeInboundEntity {
51
+ id: string;
52
+ docDigitalDocumentId: string;
53
+ status: 'Pending' | 'Registered' | 'Returned';
54
+ subject: string;
55
+ description: string | null;
56
+ folio: string | null;
57
+ folioDate: string | null;
58
+ typeName: string | null;
59
+ reserved: boolean;
60
+ /** Entidad propia a la que llegó (la municipalidad o una entidad emisora). */
61
+ recipientEntityName: string | null;
62
+ senderEntityName: string | null;
63
+ senderName: string | null;
64
+ senderPosition: string | null;
65
+ fileName: string | null;
66
+ hasFile: boolean;
67
+ /** Revisión de las firmas del documento principal al recibirlo. */
68
+ signatureCheck: PdfSignatureReportEntity | null;
69
+ attachments: { name: string; url: string | null; hasFile: boolean }[];
70
+ createdAt: string;
71
+ registeredAt: string | null;
72
+ registeredByFullName: string | null;
73
+ acknowledgedAt: string | null;
74
+ acknowledgeError: string | null;
75
+ returnedAt: string | null;
76
+ returnedByFullName: string | null;
77
+ returnReason: string | null;
78
+ /** El documento con que quedó ingresado al gestor. */
79
+ document: { id: string; intakeNumber: number | null; intakeYear: number | null } | null;
80
+ }
81
+
82
+ export interface PartsOfficeOkResponseEntity {
83
+ id: string;
84
+ ok: boolean;
85
+ /** Documento al que corresponde el despacho (al despachar o devolver). */
86
+ documentId?: string;
87
+ }
88
+
89
+ export interface PartsOfficeSyncResponseEntity {
90
+ /** Recibidos nuevos que se trajeron. */
91
+ created: number;
92
+ /** Los que no se pudieron traer (se reintentan en la próxima revisión). */
93
+ failed: number;
94
+ }
95
+
96
+ export interface PartsOfficeRegisterResponseEntity {
97
+ id: string;
98
+ documentId: string;
99
+ intakeNumber: number;
100
+ intakeYear: number;
101
+ /** `false` si DocDigital no aceptó el acuse de recibo: se puede reintentar. */
102
+ acknowledged: boolean;
103
+ ok: boolean;
104
+ }
105
+
106
+ /** Archivo de un recibido, ya copiado al gestor. */
107
+ export interface PartsOfficeFileEntity {
108
+ fileId: string;
109
+ fileName: string;
110
+ }
@@ -0,0 +1 @@
1
+ export * from './procedure.entity';
@@ -0,0 +1,24 @@
1
+ import { ProcedureEntity } from '../../base/entities';
2
+
3
+ export interface ProcedureGetAllResponseEntity {
4
+ id: ProcedureEntity['id'];
5
+ name: ProcedureEntity['name'];
6
+ cpatId: ProcedureEntity['cpatId'];
7
+ cpatCode: ProcedureEntity['cpatCode'];
8
+ description: ProcedureEntity['description'];
9
+ enabled: ProcedureEntity['enabled'];
10
+ /** Cuántos expedientes pertenecen a este procedimiento. */
11
+ caseFiles: number;
12
+ }
13
+
14
+ export type ProcedureGetByIdResponseEntity = ProcedureGetAllResponseEntity;
15
+
16
+ export interface ProcedureCreateResponseEntity {
17
+ id: ProcedureEntity['id'];
18
+ ok: boolean;
19
+ }
20
+
21
+ export interface ProcedureUpdateResponseEntity {
22
+ id: ProcedureEntity['id'];
23
+ ok: boolean;
24
+ }
@@ -0,0 +1 @@
1
+ export * from './registerBook.entity';
@@ -0,0 +1,52 @@
1
+ /** Libro de registro: el de un tipo documental (sus números) o el de ingresos de Oficina de Partes. */
2
+ export type RegisterBookKind = 'documentType' | 'intake';
3
+
4
+ /**
5
+ * Estado de un número en el libro: vigente, en tramitación (numerado con la primera firma, aún sin todas las firmas),
6
+ * documento anulado, número anulado por un rechazo, o número sin registro en el gestor (un salto en la numeración).
7
+ */
8
+ export type RegisterBookRowState = 'Valid' | 'InProgress' | 'Annulled' | 'NumberAnnulled' | 'Unused';
9
+
10
+ export interface RegisterBookRowEntity {
11
+ number: number;
12
+ /** Fecha del número (o del ingreso), en ISO 8601. `null` en un salto. */
13
+ date: string | null;
14
+ state: RegisterBookRowState;
15
+ documentId: string | null;
16
+ subject: string | null;
17
+ /** Quién redactó el documento (o, en el libro de ingresos, quién lo ingresó). */
18
+ author: string | null;
19
+ signers: string[];
20
+ /** Libro de ingresos: institución que lo envió y su folio. */
21
+ sender: string | null;
22
+ externalFolio: string | null;
23
+ /** Libro de ingresos: a quiénes se derivó. */
24
+ recipients: string[];
25
+ /** Despacho por DocDigital: «DocDigital N° 777001 · 14-10-2026». */
26
+ dispatch: string | null;
27
+ /** Motivo de la anulación (del documento o del número). */
28
+ observation: string | null;
29
+ /** Numeración compartida: tipo documental del número (`null` en un salto o si el libro es de un solo tipo). */
30
+ documentTypeName: string | null;
31
+ }
32
+
33
+ export interface RegisterBookEntity {
34
+ kind: RegisterBookKind;
35
+ /** «Decreto alcaldicio exento» o «Ingresos de Oficina de Partes». */
36
+ title: string;
37
+ /** Quién lleva el libro: la entidad emisora del tipo o la municipalidad. */
38
+ issuerName: string;
39
+ /** Numeración compartida: los tipos que numeran en la serie del libro (vacío si es de un solo tipo). */
40
+ series: string[];
41
+ year: number;
42
+ month: number | null;
43
+ rows: RegisterBookRowEntity[];
44
+ totals: Record<RegisterBookRowState, number>;
45
+ }
46
+
47
+ /** Libro exportado, listo para descargar. */
48
+ export interface RegisterBookExportEntity {
49
+ fileName: string;
50
+ contentType: string;
51
+ contentBase64: string;
52
+ }
@@ -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 './signatureBatch.entity';
@@ -0,0 +1,110 @@
1
+ import {
2
+ type DocumentAccessLevel,
3
+ type DocumentEntity,
4
+ type DocumentParticipantRole,
5
+ type DocumentStatus,
6
+ type SignatureBatchEntity,
7
+ } from '../../base/entities';
8
+ import { type DocumentSignManyResponseEntity, type DocumentSignManyResultEntity } from '../document';
9
+
10
+ /**
11
+ * Estado de un lote, deducido del de sus documentos: en tramitación mientras alguno lo esté; devuelto si no queda
12
+ * ninguno en tramitación y alguno volvió a su redactor; finalizado si todos terminaron (o se anularon después).
13
+ */
14
+ export type SignatureBatchStatus = 'InProgress' | 'Returned' | 'Finished';
15
+
16
+ /** Lista de lotes: los que esperan al funcionario, los que redactó o todos en que participa. */
17
+ export type SignatureBatchTab = 'pending' | 'created' | 'participated';
18
+
19
+ /** Cuántos documentos del lote hay en cada situación. */
20
+ export interface SignatureBatchCountsEntity {
21
+ total: number;
22
+ inProgress: number;
23
+ finished: number;
24
+ /** Devueltos a su redactor (rechazados), para corregirlos y reenviarlos. */
25
+ returned: number;
26
+ annulled: number;
27
+ }
28
+
29
+ export interface SignatureBatchGetAllResponseEntity {
30
+ id: string;
31
+ name: string;
32
+ documentType: { id: string; name: string };
33
+ createdByEmployeeId: string;
34
+ createdByFullName: string;
35
+ createdAt: SignatureBatchEntity['createdAt'];
36
+ status: SignatureBatchStatus;
37
+ counts: SignatureBatchCountsEntity;
38
+ /** Documentos del lote que esperan al funcionario que consulta, por rol. */
39
+ myPending: { visa: number; signature: number };
40
+ }
41
+
42
+ /** Un documento del lote, con su turno vigente. */
43
+ export interface SignatureBatchDocumentEntity {
44
+ id: string;
45
+ subject: string;
46
+ status: DocumentStatus;
47
+ correlative: number | null;
48
+ correlativeYear: number | null;
49
+ numberedAt: DocumentEntity['numberedAt'];
50
+ verificationCode: string | null;
51
+ originalFileName: string;
52
+ currentTurn: { employeeId: string; fullName: string; role: DocumentParticipantRole } | null;
53
+ /** Si el turno vigente es del funcionario que consulta, qué le toca hacer. */
54
+ myTurn: DocumentParticipantRole | null;
55
+ }
56
+
57
+ export interface SignatureBatchGetByIdResponseEntity extends SignatureBatchGetAllResponseEntity {
58
+ documentType: { id: string; name: string; abbreviation: string | null; numbered: boolean };
59
+ keywords: string[];
60
+ accessLevel: DocumentAccessLevel;
61
+ hasSensitiveData: boolean;
62
+ /** Visadores y firmantes del lote, en orden (los del primer documento: todos parten con el mismo flujo). */
63
+ flow: {
64
+ role: DocumentParticipantRole;
65
+ stage: number;
66
+ employeeId: string;
67
+ fullName: string;
68
+ position: string | null;
69
+ }[];
70
+ documents: SignatureBatchDocumentEntity[];
71
+ }
72
+
73
+ /** A quién le quedó el turno después de una operación sobre el lote: para avisarle una sola vez por lote. */
74
+ export interface SignatureBatchTurnEntity {
75
+ employeeId: string;
76
+ fullName: string;
77
+ role: DocumentParticipantRole;
78
+ count: number;
79
+ }
80
+
81
+ /** Lo que el gateway necesita para avisar: el lote, su redactor, a quién le toca ahora y cuántos terminaron. */
82
+ export interface SignatureBatchOutcomeEntity {
83
+ id: string;
84
+ name: string;
85
+ createdByEmployeeId: string;
86
+ nextTurns: SignatureBatchTurnEntity[];
87
+ /** Documentos que quedaron finalizados con esta operación. */
88
+ finished: number;
89
+ }
90
+
91
+ export interface SignatureBatchCreateResponseEntity extends SignatureBatchOutcomeEntity {
92
+ ok: boolean;
93
+ documentIds: string[];
94
+ }
95
+
96
+ export interface SignatureBatchVisaResponseEntity extends SignatureBatchOutcomeEntity {
97
+ ok: boolean;
98
+ visaed: number;
99
+ /** Los que no se pudieron visar, con el motivo. */
100
+ failures: DocumentSignManyResultEntity[];
101
+ }
102
+
103
+ export type SignatureBatchSignResponseEntity = SignatureBatchOutcomeEntity & DocumentSignManyResponseEntity;
104
+
105
+ export interface SignatureBatchRejectResponseEntity extends SignatureBatchOutcomeEntity {
106
+ ok: boolean;
107
+ /** Documentos devueltos a su redactor. */
108
+ rejected: number;
109
+ observation: string;
110
+ }
@@ -0,0 +1 @@
1
+ export * from './signatureCheck.entity';
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Resultado de una firma o del archivo completo: válida, inválida (algo no cuadra) o indeterminada (lo firmado está
3
+ * íntegro, pero falta confirmar algo: la cadena de confianza, la vigencia o cambios posteriores sin firmar).
4
+ */
5
+ export type PdfSignatureStatus = 'Valid' | 'Invalid' | 'Indeterminate';
6
+
7
+ /** Una firma electrónica de un PDF, como se pudo comprobar. */
8
+ export interface PdfSignatureEntity {
9
+ /** Orden en el archivo: 1 es la primera. */
10
+ index: number;
11
+ /** Firma de una persona o sello de tiempo del documento. */
12
+ kind: 'Signature' | 'Timestamp';
13
+ signerName: string | null;
14
+ /** Identificador del titular en el certificado (en Chile, suele ser el RUN). */
15
+ signerSerialNumber: string | null;
16
+ organization: string | null;
17
+ issuerName: string | null;
18
+ certificateSerial: string | null;
19
+ certificateValidFrom: string | null;
20
+ certificateValidTo: string | null;
21
+ signingTime: string | null;
22
+ /** De dónde sale la hora de la firma: sello de tiempo (la más confiable), el certificado firmado o el PDF. */
23
+ signingTimeSource: 'Timestamp' | 'SignedAttribute' | 'PdfDate' | null;
24
+ reason: string | null;
25
+ location: string | null;
26
+ hasTimestamp: boolean;
27
+ /** Lo firmado no cambió y la firma corresponde al certificado. */
28
+ intact: boolean;
29
+ /** La firma abarca el archivo completo (las anteriores a la última, solo su versión). */
30
+ coversWholeDocument: boolean;
31
+ /** El certificado estaba vigente al firmar. `null` si no se sabe cuándo se firmó. */
32
+ certificateValidAtSigning: boolean | null;
33
+ /** Cadena hasta un certificado raíz de confianza. `null` si no hay raíces configuradas. */
34
+ trusted: boolean | null;
35
+ status: PdfSignatureStatus;
36
+ /** Lo que no cuadra o no se pudo confirmar, en palabras. */
37
+ problems: string[];
38
+ }
39
+
40
+ /** Revisión de las firmas de un PDF. */
41
+ export interface PdfSignatureReportEntity {
42
+ checkedAt: string;
43
+ status: 'NoSignatures' | PdfSignatureStatus;
44
+ signatures: PdfSignatureEntity[];
45
+ /** Hay contenido agregado después de la última firma, que no está firmado. */
46
+ modifiedAfterLastSignature: boolean;
47
+ /** Se configuraron certificados raíz para confirmar la cadena de confianza. */
48
+ trustConfigured: boolean;
49
+ /** Huella SHA-256 del archivo revisado. */
50
+ fileSha256: string;
51
+ }
@@ -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
+ }
@@ -0,0 +1 @@
1
+ export * from './workFolder.entity';
@@ -0,0 +1,84 @@
1
+ import {
2
+ type CaseFileActuationType,
3
+ type DocumentAccessLevel,
4
+ type DocumentStatus,
5
+ type WorkFolderItemKind,
6
+ } from '../../base/entities';
7
+
8
+ export interface WorkFolderGetAllResponseEntity {
9
+ id: string;
10
+ name: string;
11
+ description: string | null;
12
+ ownerEmployeeId: string;
13
+ ownerFullName: string;
14
+ itemCount: number;
15
+ participantCount: number;
16
+ /** Expediente en que se convirtió: desde ahí la carpeta queda solo de consulta. */
17
+ caseFile: { id: string; code: string } | null;
18
+ createdAt: string;
19
+ updatedAt: string;
20
+ /** Quien consulta es su responsable. */
21
+ isOwner: boolean;
22
+ }
23
+
24
+ export interface WorkFolderItemResponseEntity {
25
+ id: string;
26
+ kind: WorkFolderItemKind;
27
+ title: string;
28
+ /** Documento del gestor (si es uno). */
29
+ document: {
30
+ id: string;
31
+ status: DocumentStatus;
32
+ documentType: { name: string; abbreviation: string | null };
33
+ correlative: number | null;
34
+ correlativeYear: number | null;
35
+ intakeNumber: number | null;
36
+ intakeYear: number | null;
37
+ } | null;
38
+ /** Archivo subido (si es uno). Se descarga por la carpeta, que comprueba el acceso. */
39
+ fileId: string | null;
40
+ fileName: string | null;
41
+ addedByEmployeeId: string;
42
+ addedByFullName: string;
43
+ createdAt: string;
44
+ /** Lo puede quitar quien consulta: el responsable o quien lo agregó, mientras no se convierta en expediente. */
45
+ canRemove: boolean;
46
+ }
47
+
48
+ export interface WorkFolderGetByIdResponseEntity extends WorkFolderGetAllResponseEntity {
49
+ participants: { id: string; employeeId: string; fullName: string }[];
50
+ items: WorkFolderItemResponseEntity[];
51
+ /** Editar, compartir y convertir: solo el responsable, mientras no se haya convertido. */
52
+ canEdit: boolean;
53
+ /** Agregar ítems: el responsable y aquellos con quienes se compartió, mientras no se haya convertido. */
54
+ canAdd: boolean;
55
+ }
56
+
57
+ export interface WorkFolderWriteResponseEntity {
58
+ id: string;
59
+ ok: boolean;
60
+ }
61
+
62
+ /** La carpeta convertida en expediente: cuántos ítems entraron a su índice y cuántos no (documentos sin finalizar). */
63
+ export interface WorkFolderConvertResponseEntity {
64
+ id: string;
65
+ caseFileId: string;
66
+ code: string;
67
+ added: number;
68
+ skipped: number;
69
+ ok: boolean;
70
+ }
71
+
72
+ /** Metadatos del expediente que nace de una carpeta (los mismos de un expediente nuevo). */
73
+ export interface WorkFolderConvertInput {
74
+ title: string;
75
+ subject: string;
76
+ summary?: string | null;
77
+ procedureId: string;
78
+ accessLevel: DocumentAccessLevel;
79
+ hasSensitiveData: boolean;
80
+ /** Tipo de actuación con que entran los documentos al índice. */
81
+ actuationType: CaseFileActuationType;
82
+ /** Palabras clave de los archivos subidos (metadato obligatorio de cada actuación). */
83
+ keywords: string[];
84
+ }
package/tsconfig.json CHANGED
@@ -9,7 +9,5 @@
9
9
  "skipLibCheck": true,
10
10
  "rootDir": "./src"
11
11
  },
12
- "include": [
13
- "src"
14
- ]
12
+ "include": ["src"]
15
13
  }