@muni-sanfer/types-gestor-documental 0.0.1-beta.4 → 0.0.1-beta.40

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 (223) hide show
  1. package/dist/base/entities.d.ts +1000 -4
  2. package/dist/base/entities.js +247 -1
  3. package/dist/contracts/accessRequest.contract.d.ts +109 -0
  4. package/dist/contracts/accessRequest.contract.js +12 -0
  5. package/dist/contracts/archivalSeries.contract.d.ts +56 -0
  6. package/dist/contracts/archivalSeries.contract.js +11 -0
  7. package/dist/contracts/audit.contract.d.ts +32 -0
  8. package/dist/contracts/audit.contract.js +8 -0
  9. package/dist/contracts/caseFile.contract.d.ts +124 -1
  10. package/dist/contracts/caseFile.contract.js +10 -0
  11. package/dist/contracts/dataProtection.contract.d.ts +256 -0
  12. package/dist/contracts/dataProtection.contract.js +23 -0
  13. package/dist/contracts/desk.contract.d.ts +88 -0
  14. package/dist/contracts/desk.contract.js +13 -0
  15. package/dist/contracts/document.contract.d.ts +214 -3
  16. package/dist/contracts/document.contract.js +15 -0
  17. package/dist/contracts/documentTemplate.contract.d.ts +58 -0
  18. package/dist/contracts/documentTemplate.contract.js +12 -0
  19. package/dist/contracts/documentType.contract.d.ts +13 -1
  20. package/dist/contracts/draftingRequest.contract.d.ts +94 -0
  21. package/dist/contracts/draftingRequest.contract.js +11 -0
  22. package/dist/contracts/holiday.contract.d.ts +30 -0
  23. package/dist/contracts/holiday.contract.js +9 -0
  24. package/dist/contracts/index.d.ts +255 -1
  25. package/dist/contracts/index.js +66 -0
  26. package/dist/contracts/indicators.contract.d.ts +103 -0
  27. package/dist/contracts/indicators.contract.js +15 -0
  28. package/dist/contracts/issuingEntity.contract.d.ts +52 -0
  29. package/dist/contracts/issuingEntity.contract.js +11 -0
  30. package/dist/contracts/mailIntake.contract.d.ts +61 -0
  31. package/dist/contracts/mailIntake.contract.js +15 -0
  32. package/dist/contracts/partsOffice.contract.d.ts +263 -0
  33. package/dist/contracts/partsOffice.contract.js +27 -0
  34. package/dist/contracts/push.contract.d.ts +59 -0
  35. package/dist/contracts/push.contract.js +14 -0
  36. package/dist/contracts/registerBook.contract.d.ts +27 -0
  37. package/dist/contracts/registerBook.contract.js +8 -0
  38. package/dist/contracts/repositoryExport.contract.d.ts +57 -0
  39. package/dist/contracts/repositoryExport.contract.js +13 -0
  40. package/dist/contracts/retention.contract.d.ts +58 -0
  41. package/dist/contracts/retention.contract.js +11 -0
  42. package/dist/contracts/scan.contract.d.ts +63 -0
  43. package/dist/contracts/scan.contract.js +12 -0
  44. package/dist/contracts/signatureBatch.contract.d.ts +109 -0
  45. package/dist/contracts/signatureBatch.contract.js +12 -0
  46. package/dist/contracts/signatureCheck.contract.d.ts +14 -0
  47. package/dist/contracts/signatureCheck.contract.js +7 -0
  48. package/dist/contracts/textSnippet.contract.d.ts +51 -0
  49. package/dist/contracts/textSnippet.contract.js +11 -0
  50. package/dist/contracts/transparency.contract.d.ts +96 -0
  51. package/dist/contracts/transparency.contract.js +12 -0
  52. package/dist/contracts/workFolder.contract.d.ts +114 -0
  53. package/dist/contracts/workFolder.contract.js +16 -0
  54. package/dist/entities/accessRequest/accessRequest.entity.d.ts +73 -0
  55. package/dist/entities/accessRequest/accessRequest.entity.js +2 -0
  56. package/dist/entities/accessRequest/index.d.ts +1 -0
  57. package/dist/entities/accessRequest/index.js +17 -0
  58. package/dist/entities/archivalSeries/archivalSeries.entity.d.ts +32 -0
  59. package/dist/entities/archivalSeries/archivalSeries.entity.js +2 -0
  60. package/dist/entities/archivalSeries/index.d.ts +1 -0
  61. package/dist/entities/archivalSeries/index.js +17 -0
  62. package/dist/entities/audit/audit.entity.d.ts +30 -0
  63. package/dist/entities/audit/audit.entity.js +2 -0
  64. package/dist/entities/audit/index.d.ts +1 -0
  65. package/dist/entities/audit/index.js +17 -0
  66. package/dist/entities/caseFile/caseFile.entity.d.ts +135 -0
  67. package/dist/entities/dataProtection/dataProtection.entity.d.ts +180 -0
  68. package/dist/entities/dataProtection/dataProtection.entity.js +2 -0
  69. package/dist/entities/dataProtection/index.d.ts +1 -0
  70. package/dist/entities/dataProtection/index.js +17 -0
  71. package/dist/entities/desk/desk.entity.d.ts +25 -0
  72. package/dist/entities/desk/desk.entity.js +2 -0
  73. package/dist/entities/desk/index.d.ts +1 -0
  74. package/dist/entities/desk/index.js +17 -0
  75. package/dist/entities/document/document.entity.d.ts +436 -1
  76. package/dist/entities/documentTemplate/documentTemplate.entity.d.ts +51 -0
  77. package/dist/entities/documentTemplate/documentTemplate.entity.js +2 -0
  78. package/dist/entities/documentTemplate/index.d.ts +1 -0
  79. package/dist/entities/documentTemplate/index.js +17 -0
  80. package/dist/entities/documentType/documentType.entity.d.ts +25 -0
  81. package/dist/entities/draftingRequest/draftingRequest.entity.d.ts +76 -0
  82. package/dist/entities/draftingRequest/draftingRequest.entity.js +2 -0
  83. package/dist/entities/draftingRequest/index.d.ts +1 -0
  84. package/dist/entities/draftingRequest/index.js +17 -0
  85. package/dist/entities/holiday/holiday.entity.d.ts +10 -0
  86. package/dist/entities/holiday/holiday.entity.js +2 -0
  87. package/dist/entities/holiday/index.d.ts +1 -0
  88. package/dist/entities/holiday/index.js +17 -0
  89. package/dist/entities/index.d.ts +22 -0
  90. package/dist/entities/index.js +22 -0
  91. package/dist/entities/indicators/index.d.ts +1 -0
  92. package/dist/entities/indicators/index.js +17 -0
  93. package/dist/entities/indicators/indicators.entity.d.ts +152 -0
  94. package/dist/entities/indicators/indicators.entity.js +2 -0
  95. package/dist/entities/issuingEntity/index.d.ts +1 -0
  96. package/dist/entities/issuingEntity/index.js +17 -0
  97. package/dist/entities/issuingEntity/issuingEntity.entity.d.ts +20 -0
  98. package/dist/entities/issuingEntity/issuingEntity.entity.js +2 -0
  99. package/dist/entities/mailIntake/index.d.ts +1 -0
  100. package/dist/entities/mailIntake/index.js +17 -0
  101. package/dist/entities/mailIntake/mailIntake.entity.d.ts +51 -0
  102. package/dist/entities/mailIntake/mailIntake.entity.js +2 -0
  103. package/dist/entities/partsOffice/index.d.ts +1 -0
  104. package/dist/entities/partsOffice/index.js +17 -0
  105. package/dist/entities/partsOffice/partsOffice.entity.d.ts +137 -0
  106. package/dist/entities/partsOffice/partsOffice.entity.js +2 -0
  107. package/dist/entities/push/index.d.ts +1 -0
  108. package/dist/entities/push/index.js +17 -0
  109. package/dist/entities/push/push.entity.d.ts +28 -0
  110. package/dist/entities/push/push.entity.js +2 -0
  111. package/dist/entities/registerBook/index.d.ts +1 -0
  112. package/dist/entities/registerBook/index.js +17 -0
  113. package/dist/entities/registerBook/registerBook.entity.d.ts +48 -0
  114. package/dist/entities/registerBook/registerBook.entity.js +2 -0
  115. package/dist/entities/repositoryExport/index.d.ts +1 -0
  116. package/dist/entities/repositoryExport/index.js +17 -0
  117. package/dist/entities/repositoryExport/repositoryExport.entity.d.ts +124 -0
  118. package/dist/entities/repositoryExport/repositoryExport.entity.js +2 -0
  119. package/dist/entities/retention/index.d.ts +1 -0
  120. package/dist/entities/retention/index.js +17 -0
  121. package/dist/entities/retention/retention.entity.d.ts +49 -0
  122. package/dist/entities/retention/retention.entity.js +2 -0
  123. package/dist/entities/scan/index.d.ts +1 -0
  124. package/dist/entities/scan/index.js +17 -0
  125. package/dist/entities/scan/scan.entity.d.ts +29 -0
  126. package/dist/entities/scan/scan.entity.js +2 -0
  127. package/dist/entities/signatureBatch/index.d.ts +1 -0
  128. package/dist/entities/signatureBatch/index.js +17 -0
  129. package/dist/entities/signatureBatch/signatureBatch.entity.d.ts +107 -0
  130. package/dist/entities/signatureBatch/signatureBatch.entity.js +2 -0
  131. package/dist/entities/signatureCheck/index.d.ts +1 -0
  132. package/dist/entities/signatureCheck/index.js +17 -0
  133. package/dist/entities/signatureCheck/signatureCheck.entity.d.ts +60 -0
  134. package/dist/entities/signatureCheck/signatureCheck.entity.js +2 -0
  135. package/dist/entities/textSnippet/index.d.ts +1 -0
  136. package/dist/entities/textSnippet/index.js +17 -0
  137. package/dist/entities/textSnippet/textSnippet.entity.d.ts +20 -0
  138. package/dist/entities/textSnippet/textSnippet.entity.js +2 -0
  139. package/dist/entities/transparency/index.d.ts +1 -0
  140. package/dist/entities/transparency/index.js +17 -0
  141. package/dist/entities/transparency/transparency.entity.d.ts +77 -0
  142. package/dist/entities/transparency/transparency.entity.js +2 -0
  143. package/dist/entities/workFolder/index.d.ts +1 -0
  144. package/dist/entities/workFolder/index.js +17 -0
  145. package/dist/entities/workFolder/workFolder.entity.d.ts +83 -0
  146. package/dist/entities/workFolder/workFolder.entity.js +2 -0
  147. package/package.json +1 -1
  148. package/src/base/entities.ts +1170 -4
  149. package/src/contracts/accessRequest.contract.ts +81 -0
  150. package/src/contracts/archivalSeries.contract.ts +59 -0
  151. package/src/contracts/audit.contract.ts +30 -0
  152. package/src/contracts/caseFile.contract.ts +107 -2
  153. package/src/contracts/dataProtection.contract.ts +197 -0
  154. package/src/contracts/desk.contract.ts +72 -0
  155. package/src/contracts/document.contract.ts +197 -2
  156. package/src/contracts/documentTemplate.contract.ts +61 -0
  157. package/src/contracts/documentType.contract.ts +29 -3
  158. package/src/contracts/draftingRequest.contract.ts +73 -0
  159. package/src/contracts/holiday.contract.ts +16 -0
  160. package/src/contracts/index.ts +92 -1
  161. package/src/contracts/indicators.contract.ts +80 -0
  162. package/src/contracts/issuingEntity.contract.ts +55 -0
  163. package/src/contracts/mailIntake.contract.ts +49 -0
  164. package/src/contracts/partsOffice.contract.ts +199 -0
  165. package/src/contracts/push.contract.ts +41 -0
  166. package/src/contracts/registerBook.contract.ts +24 -0
  167. package/src/contracts/repositoryExport.contract.ts +54 -0
  168. package/src/contracts/retention.contract.ts +44 -0
  169. package/src/contracts/scan.contract.ts +52 -0
  170. package/src/contracts/signatureBatch.contract.ts +96 -0
  171. package/src/contracts/signatureCheck.contract.ts +11 -0
  172. package/src/contracts/textSnippet.contract.ts +53 -0
  173. package/src/contracts/transparency.contract.ts +55 -0
  174. package/src/contracts/workFolder.contract.ts +75 -0
  175. package/src/entities/accessRequest/accessRequest.entity.ts +78 -0
  176. package/src/entities/accessRequest/index.ts +1 -0
  177. package/src/entities/archivalSeries/archivalSeries.entity.ts +37 -0
  178. package/src/entities/archivalSeries/index.ts +1 -0
  179. package/src/entities/audit/audit.entity.ts +41 -0
  180. package/src/entities/audit/index.ts +1 -0
  181. package/src/entities/caseFile/caseFile.entity.ts +132 -0
  182. package/src/entities/dataProtection/dataProtection.entity.ts +191 -0
  183. package/src/entities/dataProtection/index.ts +1 -0
  184. package/src/entities/desk/desk.entity.ts +28 -0
  185. package/src/entities/desk/index.ts +1 -0
  186. package/src/entities/document/document.entity.ts +412 -0
  187. package/src/entities/documentTemplate/documentTemplate.entity.ts +58 -0
  188. package/src/entities/documentTemplate/index.ts +1 -0
  189. package/src/entities/documentType/documentType.entity.ts +19 -0
  190. package/src/entities/draftingRequest/draftingRequest.entity.ts +78 -0
  191. package/src/entities/draftingRequest/index.ts +1 -0
  192. package/src/entities/holiday/holiday.entity.ts +11 -0
  193. package/src/entities/holiday/index.ts +1 -0
  194. package/src/entities/index.ts +22 -0
  195. package/src/entities/indicators/index.ts +1 -0
  196. package/src/entities/indicators/indicators.entity.ts +157 -0
  197. package/src/entities/issuingEntity/index.ts +1 -0
  198. package/src/entities/issuingEntity/issuingEntity.entity.ts +24 -0
  199. package/src/entities/mailIntake/index.ts +1 -0
  200. package/src/entities/mailIntake/mailIntake.entity.ts +55 -0
  201. package/src/entities/partsOffice/index.ts +1 -0
  202. package/src/entities/partsOffice/partsOffice.entity.ts +138 -0
  203. package/src/entities/push/index.ts +1 -0
  204. package/src/entities/push/push.entity.ts +31 -0
  205. package/src/entities/registerBook/index.ts +1 -0
  206. package/src/entities/registerBook/registerBook.entity.ts +52 -0
  207. package/src/entities/repositoryExport/index.ts +1 -0
  208. package/src/entities/repositoryExport/repositoryExport.entity.ts +86 -0
  209. package/src/entities/retention/index.ts +1 -0
  210. package/src/entities/retention/retention.entity.ts +53 -0
  211. package/src/entities/scan/index.ts +1 -0
  212. package/src/entities/scan/scan.entity.ts +32 -0
  213. package/src/entities/signatureBatch/index.ts +1 -0
  214. package/src/entities/signatureBatch/signatureBatch.entity.ts +110 -0
  215. package/src/entities/signatureCheck/index.ts +1 -0
  216. package/src/entities/signatureCheck/signatureCheck.entity.ts +63 -0
  217. package/src/entities/textSnippet/index.ts +1 -0
  218. package/src/entities/textSnippet/textSnippet.entity.ts +24 -0
  219. package/src/entities/transparency/index.ts +1 -0
  220. package/src/entities/transparency/transparency.entity.ts +78 -0
  221. package/src/entities/workFolder/index.ts +1 -0
  222. package/src/entities/workFolder/workFolder.entity.ts +84 -0
  223. package/tsconfig.json +1 -3
@@ -1,13 +1,16 @@
1
1
  import {
2
+ type CommunicationMeans,
2
3
  DocumentAnnulledNumberEntity,
3
4
  DocumentAttachmentEntity,
4
5
  DocumentDeliveryEntity,
5
6
  DocumentEntity,
6
7
  DocumentParticipantEntity,
7
8
  DocumentRecipientEntity,
9
+ type DocumentStatus,
8
10
  DocumentTrackingEntity,
9
11
  DocumentTypeEntity,
10
12
  } from '../../base/entities';
13
+ import { type DocumentDraftingRequestEntity } from '../draftingRequest/draftingRequest.entity';
11
14
 
12
15
  /** Tipo documental de un documento, con lo necesario para citarlo. */
13
16
  export interface DocumentTypeSummaryEntity {
@@ -21,6 +24,8 @@ export interface DocumentParticipantResponseEntity {
21
24
  id: DocumentParticipantEntity['id'];
22
25
  role: DocumentParticipantEntity['role'];
23
26
  order: DocumentParticipantEntity['order'];
27
+ /** Los visadores de una misma etapa visan a la vez. */
28
+ stage: DocumentParticipantEntity['stage'];
24
29
  status: DocumentParticipantEntity['status'];
25
30
  employeeId: DocumentParticipantEntity['employeeId'];
26
31
  fullName: DocumentParticipantEntity['fullName'];
@@ -72,6 +77,41 @@ export interface DocumentLinkEntity {
72
77
  createdByFullName: DocumentEntity['createdByFullName'];
73
78
  finishedAt: DocumentEntity['finishedAt'];
74
79
  documentType: DocumentTypeSummaryEntity;
80
+ /** Folio de ingreso de Oficina de Partes, si llegó por DocDigital. */
81
+ intakeNumber: DocumentEntity['intakeNumber'];
82
+ intakeYear: DocumentEntity['intakeYear'];
83
+ }
84
+
85
+ /** Institución (y usuario) de DocDigital a la que va dirigido un documento. */
86
+ export interface DocumentExternalRecipientResponseEntity {
87
+ id: string;
88
+ entityId: number;
89
+ entityName: string;
90
+ userId: number | null;
91
+ userName: string | null;
92
+ userPosition: string | null;
93
+ }
94
+
95
+ /** Despacho de un documento por DocDigital. */
96
+ export interface DocumentDispatchResponseEntity {
97
+ id: string;
98
+ status: 'Pending' | 'Dispatched' | 'Returned';
99
+ folio: string | null;
100
+ docDigitalTypeName: string | null;
101
+ docDigitalDocumentId: string | null;
102
+ dispatchedAt: string | null;
103
+ dispatchedByFullName: string | null;
104
+ returnedAt: string | null;
105
+ returnedByFullName: string | null;
106
+ returnReason: string | null;
107
+ /** Registro por contingencia: salió por otro medio porque no se pudo por DocDigital. */
108
+ contingency: {
109
+ means: CommunicationMeans;
110
+ sentTo: string | null;
111
+ reason: string | null;
112
+ /** Nombre del comprobante, si se adjuntó. */
113
+ receiptName: string | null;
114
+ } | null;
75
115
  }
76
116
 
77
117
  export interface DocumentGetAllResponseEntity {
@@ -87,23 +127,48 @@ export interface DocumentGetAllResponseEntity {
87
127
  createdByEmployeeId: DocumentEntity['createdByEmployeeId'];
88
128
  createdByFullName: DocumentEntity['createdByFullName'];
89
129
  documentType: DocumentTypeSummaryEntity;
130
+ intakeNumber: DocumentEntity['intakeNumber'];
131
+ intakeYear: DocumentEntity['intakeYear'];
132
+ origin: DocumentEntity['origin'];
133
+ /** Con búsqueda de texto completo: el fragmento donde aparece lo buscado, con lo encontrado entre ⟦ y ⟧. */
134
+ snippet?: string | null;
90
135
  // A quién le toca visar o firmar (null si el documento no está en tramitación).
91
136
  currentParticipant: Pick<DocumentParticipantResponseEntity, 'role' | 'employeeId' | 'fullName'> | null;
137
+ // Cuántos más tienen el turno a la vez (visación en paralelo).
138
+ otherCurrentCount: number;
92
139
  // A cuántos funcionarios llegó y cuántos ya lo abrieron (null si aún no se distribuye a nadie).
93
140
  distribution: { total: number; read: number } | null;
94
141
  }
95
142
 
96
143
  /** Una entrada de la bandeja de recibidos: la entrega y el documento al que corresponde. */
144
+ /** Semáforo de un plazo pendiente: a tiempo, por vencer (2 días hábiles o menos) o vencido. */
145
+ export type DocumentDueStatus = 'OnTime' | 'DueSoon' | 'Overdue';
146
+
97
147
  export interface DocumentInboxItemEntity extends DocumentDeliveryResponseEntity {
148
+ /** Semáforo de lo pendiente con plazo (sin plazo o ya atendido, `null`). */
149
+ dueStatus: DocumentDueStatus | null;
150
+ /** Días hábiles que quedan, sin contar hoy (vencido: `null`). */
151
+ businessDaysLeft: number | null;
98
152
  document: DocumentLinkEntity;
99
153
  }
100
154
 
101
155
  export interface DocumentGetByIdResponseEntity {
102
156
  id: DocumentEntity['id'];
157
+ // Quién lo emite: la entidad emisora del tipo (Educación, Salud, Juzgado) o la municipalidad.
158
+ issuerName: string;
159
+ // Serie documental del Cuadro de Clasificación (la de su tipo documental; MGDDE1_2).
160
+ archivalSeries: { id: string; code: string; name: string } | null;
161
+ // Fin de la restricción de acceso: desde entonces se consulta como público si no tiene datos sensibles.
162
+ restrictionEndsAt: string | null;
103
163
  subject: DocumentEntity['subject'];
104
164
  keywords: DocumentEntity['keywords'];
105
165
  accessLevel: DocumentEntity['accessLevel'];
106
166
  hasSensitiveData: DocumentEntity['hasSensitiveData'];
167
+ /**
168
+ * Formato del archivo vigente: la conformidad PDF/A que declara («PDF/A-2B») o «PDF». `null` si no se revisó (los
169
+ * documentos anteriores a esta revisión, o aún sin firmar).
170
+ */
171
+ fileFormat: DocumentEntity['fileFormat'];
107
172
  status: DocumentEntity['status'];
108
173
  correlative: DocumentEntity['correlative'];
109
174
  correlativeYear: DocumentEntity['correlativeYear'];
@@ -144,9 +209,32 @@ export interface DocumentGetByIdResponseEntity {
144
209
  deliveries: DocumentDeliveryResponseEntity[];
145
210
  // Documento al que este responde, y los que le responden (solo los ya finalizados, más los propios de quien consulta).
146
211
  replyTo: DocumentLinkEntity | null;
212
+ /** Lote de firma al que pertenece. */
213
+ batch: { id: string; name: string } | null;
214
+ /** Contenido redactado en el sistema con una plantilla, para volver a editarlo (sin valor si se subió un PDF). */
215
+ composition: DocumentComposition | null;
216
+ /**
217
+ * Revisión del borrador antes de enviarlo a tramitación, si su tipo la exige: qué dirección revisa, las rondas (la
218
+ * más reciente primero) y si la versión vigente ya está aprobada. `null` si el tipo no la exige.
219
+ */
220
+ draftReview: DocumentDraftReviewInfoEntity | null;
221
+ /** Solicitud de redacción que atiende, si se redactó a pedido de otra área. */
222
+ draftingRequest: DocumentDraftingRequestEntity | null;
147
223
  replies: DocumentLinkEntity[];
148
224
  /** Expedientes en que está incorporado y que quien consulta puede ver. */
149
225
  caseFiles: { id: string; code: string; title: string; status: 'Open' | 'Closed' }[];
226
+ /** De dónde viene: del gestor o recibido por DocDigital, con su folio de ingreso y los datos de quien lo envió. */
227
+ origin: DocumentEntity['origin'];
228
+ intakeNumber: DocumentEntity['intakeNumber'];
229
+ intakeYear: DocumentEntity['intakeYear'];
230
+ externalFolio: DocumentEntity['externalFolio'];
231
+ externalSender: DocumentEntity['externalSender'];
232
+ externalDate: DocumentEntity['externalDate'];
233
+ /** Instituciones de DocDigital a quienes va dirigido, y su despacho por Oficina de Partes. */
234
+ externalRecipients: DocumentExternalRecipientResponseEntity[];
235
+ dispatch: DocumentDispatchResponseEntity | null;
236
+ // Copias por correo a quienes están fuera del Estado, con su envío y apertura.
237
+ emailCopies: DocumentEmailCopyResponseEntity[];
150
238
  documentType: DocumentTypeSummaryEntity;
151
239
  participants: DocumentParticipantResponseEntity[];
152
240
  attachments: {
@@ -160,6 +248,8 @@ export interface DocumentGetByIdResponseEntity {
160
248
  id: DocumentTrackingEntity['id'];
161
249
  action: DocumentTrackingEntity['action'];
162
250
  observation: DocumentTrackingEntity['observation'];
251
+ // Huella SHA-256 del PDF en ese hecho (firma, despacho o ingreso por DocDigital).
252
+ sha256: DocumentTrackingEntity['sha256'];
163
253
  employeeId: DocumentTrackingEntity['employeeId'];
164
254
  employeeFullName: DocumentTrackingEntity['employeeFullName'];
165
255
  createdAt: DocumentTrackingEntity['createdAt'];
@@ -175,6 +265,10 @@ export interface DocumentGetByIdResponseEntity {
175
265
  canReply: boolean;
176
266
  // Es quien redactó un documento en tramitación: puede pasar un turno pendiente a otro funcionario.
177
267
  canReassign: boolean;
268
+ /** Quien consulta redactó el documento (o lo ingresó, si llegó por DocDigital). */
269
+ isAuthor: boolean;
270
+ /** Le toca aprobar o devolver el borrador: es la jefatura de la revisión pendiente. */
271
+ canResolveDraftReview: boolean;
178
272
  // Sus propias entregas de este documento (puede tener más de una si además se lo derivaron).
179
273
  inbox: DocumentDeliveryResponseEntity[];
180
274
  };
@@ -186,6 +280,12 @@ export interface DocumentGetByIdResponseEntity {
186
280
  export interface DocumentGetSummaryResponseEntity {
187
281
  toVisa: number;
188
282
  toSign: number;
283
+ /** Borradores que esperan su revisión (como jefatura de la dirección que los revisa). */
284
+ toReview: number;
285
+ /** Solicitudes de redacción: sin tomar dirigidas a su dirección, y tomadas por él aún sin atender. */
286
+ draftingRequests: { pending: number; taken: number };
287
+ /** Lotes de firma con documentos en su turno (los documentos de un lote no se cuentan en `toVisa` ni `toSign`). */
288
+ batches: { toVisa: number; toSign: number };
189
289
  created: {
190
290
  drafted: number;
191
291
  inProgress: number;
@@ -216,6 +316,29 @@ export interface DocumentReviewResponseEntity {
216
316
  status: DocumentEntity['status'];
217
317
  }
218
318
 
319
+ /** Resultado de un documento en una firma de varios documentos. */
320
+ export interface DocumentSignManyResultEntity {
321
+ id: DocumentEntity['id'];
322
+ ok: boolean;
323
+ /** Estado en que quedó, si se firmó. */
324
+ status?: DocumentEntity['status'];
325
+ /** Por qué no se firmó. */
326
+ message?: string;
327
+ }
328
+
329
+ /**
330
+ * Firma de varios documentos con un solo OTP. FirmaGob admite 5 MB por solicitud: los que no cupieron quedan en
331
+ * `remaining`, en el turno del firmante, para firmarlos con un OTP nuevo.
332
+ */
333
+ export interface DocumentSignManyResponseEntity {
334
+ results: DocumentSignManyResultEntity[];
335
+ signed: number;
336
+ failed: number;
337
+ remaining: DocumentEntity['id'][];
338
+ /** FirmaGob avisó que el OTP venció antes de firmar todos los documentos de la solicitud. */
339
+ otpExpired: boolean;
340
+ }
341
+
219
342
  export interface DocumentDiscardResponseEntity {
220
343
  id: DocumentEntity['id'];
221
344
  ok: boolean;
@@ -242,6 +365,8 @@ export interface DocumentVerifyResponseEntity {
242
365
  state: DocumentVerificationState;
243
366
  verificationCode: string;
244
367
  documentType: Pick<DocumentTypeSummaryEntity, 'name' | 'abbreviation'>;
368
+ // Quién lo emite: la entidad emisora del tipo (Educación, Salud, Juzgado) o la municipalidad.
369
+ issuerName: string;
245
370
  correlative: DocumentEntity['correlative'];
246
371
  correlativeYear: DocumentEntity['correlativeYear'];
247
372
  numberedAt: DocumentEntity['numberedAt'];
@@ -280,3 +405,290 @@ export interface DocumentReassignResponseEntity {
280
405
  id: DocumentEntity['id'];
281
406
  ok: boolean;
282
407
  }
408
+
409
+ /**
410
+ * Un plazo en la agenda de un funcionario: lo que recibió (como destinatario o por derivación) y debe atender, o un
411
+ * documento que envió y del que espera respuesta.
412
+ */
413
+ export interface DocumentAgendaItemEntity {
414
+ kind: 'Received' | 'Sent';
415
+ /** Semáforo de lo pendiente (atendido o ya respondido por todos: `null`). */
416
+ dueStatus: DocumentDueStatus | null;
417
+ /** Días hábiles que quedan, sin contar hoy (vencido: `null`). */
418
+ businessDaysLeft: number | null;
419
+ /** La entrega (lo recibido) o el documento (lo enviado). */
420
+ id: string;
421
+ documentId: DocumentEntity['id'];
422
+ subject: DocumentEntity['subject'];
423
+ documentType: { name: string; abbreviation: string | null };
424
+ correlative: DocumentEntity['correlative'];
425
+ correlativeYear: DocumentEntity['correlativeYear'];
426
+ intakeNumber: DocumentEntity['intakeNumber'];
427
+ intakeYear: DocumentEntity['intakeYear'];
428
+ /** Plazo, en ISO 8601. */
429
+ dueAt: string;
430
+ /** Lo recibido: cuándo lo marcó como atendido (sin valor si sigue pendiente). */
431
+ closedAt: string | null;
432
+ /** Lo recibido: la providencia y quién lo derivó. */
433
+ instruction: DocumentDeliveryEntity['instruction'] | null;
434
+ sentByFullName: string | null;
435
+ /** Lo enviado: a cuántos les llegó y cuántos aún no lo atienden. */
436
+ recipients: { total: number; pending: number } | null;
437
+ }
438
+
439
+ export interface DocumentAgendaResponseEntity {
440
+ /** Plazos dentro del período pedido. */
441
+ items: DocumentAgendaItemEntity[];
442
+ /** Lo recibido con el plazo vencido y sin atender, de cualquier fecha (los 50 más antiguos). */
443
+ overdue: DocumentAgendaItemEntity[];
444
+ }
445
+
446
+ /** Trazabilidad de un documento en PDF, lista para descargar. */
447
+ export interface DocumentTrailExportEntity {
448
+ fileName: string;
449
+ contentType: string;
450
+ contentBase64: string;
451
+ }
452
+
453
+ /** Plantilla oficial con que se redacta un documento en el sistema. */
454
+ export type DocumentTemplateKind = 'Decree' | 'Office' | 'Memorandum' | 'General';
455
+
456
+ /** Formato de un trozo de texto en el editor del gestor. */
457
+ export type RichMark = 'bold' | 'italic' | 'underline';
458
+
459
+ /**
460
+ * Texto con su formato, o un campo de la plantilla (`field`: su clave), que se reemplaza por su valor al armar el PDF.
461
+ * Un salto de línea dentro del texto (`\n`) es un salto de línea del párrafo.
462
+ */
463
+ export type RichInline = { text: string; marks?: RichMark[] } | { field: string };
464
+
465
+ export type RichAlign = 'left' | 'center' | 'right' | 'justify';
466
+
467
+ /** Numeración de una lista: viñetas, «1.» o la de los decretos, «1.-». */
468
+ export type RichListStyle = 'bullet' | 'decimal' | 'decree';
469
+
470
+ /**
471
+ * Cómo se ve una tabla: con bordes (`grid`), o como las líneas «DE:», «A:», «MAT.:» de un oficio, con la etiqueta en
472
+ * negrita y sin bordes (`labels`, o `labelsRight`, en la mitad derecha, como «ANT.» y «MAT.» de un oficio).
473
+ */
474
+ export type RichTableVariant = 'grid' | 'labels' | 'labelsRight';
475
+
476
+ /**
477
+ * Un bloque del texto. Los de una plantilla pueden ser fijos (`locked`): quien redacta no los cambia. Las listas son
478
+ * bloques seguidos del mismo estilo (su nivel es la sangría, desde 0); un título o un párrafo reinicia la numeración.
479
+ */
480
+ export type RichBlock =
481
+ | { id: string; type: 'paragraph'; align?: RichAlign; locked?: boolean; content: RichInline[] }
482
+ | { id: string; type: 'heading'; level: 1 | 2; align?: RichAlign; locked?: boolean; content: RichInline[] }
483
+ | { id: string; type: 'listItem'; list: RichListStyle; level: number; locked?: boolean; content: RichInline[] }
484
+ /** `rows[fila][columna]`: el contenido de cada celda. */
485
+ | { id: string; type: 'table'; variant: RichTableVariant; locked?: boolean; rows: RichInline[][][] }
486
+ | { id: string; type: 'rule'; locked?: boolean }
487
+ | { id: string; type: 'pageBreak'; locked?: boolean };
488
+
489
+ /**
490
+ * Campo de una plantilla, con el valor que le dio quien redacta. `materia` es el asunto del documento: no se escribe
491
+ * aparte.
492
+ */
493
+ export interface RichField {
494
+ key: string;
495
+ label: string;
496
+ value: string;
497
+ required?: boolean;
498
+ }
499
+
500
+ /**
501
+ * Contenido de un documento redactado en el sistema. Cada plantilla tiene su estructura; los párrafos son texto
502
+ * (un salto de línea dentro de un párrafo se respeta). La materia es el asunto del documento.
503
+ */
504
+ export type DocumentComposition =
505
+ | {
506
+ template: 'Decree';
507
+ /** VISTOS: las normas y antecedentes. */
508
+ vistos: string[];
509
+ /** CONSIDERANDO: cada fundamento, numerado. */
510
+ considerando: string[];
511
+ /** DECRETO: cada punto resolutivo, numerado. */
512
+ resolutive: string[];
513
+ /** Fórmula de cierre: «Anótese, comuníquese y archívese». */
514
+ closing: string;
515
+ distribution: string[];
516
+ }
517
+ | {
518
+ template: 'Office';
519
+ /** ANT.: antecedentes (otro oficio, una solicitud). */
520
+ antecedents?: string | null;
521
+ from: string;
522
+ to: string;
523
+ body: string[];
524
+ closing: string;
525
+ distribution: string[];
526
+ }
527
+ | {
528
+ template: 'Memorandum';
529
+ from: string;
530
+ to: string;
531
+ body: string[];
532
+ closing?: string | null;
533
+ distribution: string[];
534
+ }
535
+ | { template: 'General'; title: string; body: string[]; closing?: string | null }
536
+ /**
537
+ * Redactado con el editor del gestor: los bloques del texto, los campos de la plantilla con su valor y la
538
+ * distribución. `templateKey` y `templateVersion`: de qué plantilla salió, si salió de una.
539
+ */
540
+ | {
541
+ template: 'Rich';
542
+ templateKey?: string | null;
543
+ templateVersion?: number | null;
544
+ blocks: RichBlock[];
545
+ fields: RichField[];
546
+ distribution: string[];
547
+ };
548
+
549
+ /** PDF armado con una plantilla: para la vista previa (`contentBase64`) o ya subido (`fileId`). */
550
+ export interface DocumentComposeResponseEntity {
551
+ fileName: string;
552
+ fileId?: string;
553
+ contentBase64?: string;
554
+ }
555
+
556
+ /** Copia por correo de un documento, como la ve quien lo consulta en el gestor. */
557
+ export interface DocumentEmailCopyResponseEntity {
558
+ id: string;
559
+ name: string;
560
+ email: string;
561
+ /** Cuándo se envió (sin valor: aún no corresponde). */
562
+ issuedAt: string | null;
563
+ expiresAt: string | null;
564
+ openedAt: string | null;
565
+ downloadCount: number;
566
+ }
567
+
568
+ /** Copia recién emitida: el gateway le envía el enlace a su destinatario. El token viaja solo aquí. */
569
+ export interface DocumentEmailCopyIssuedEntity {
570
+ copyId: string;
571
+ documentId: string;
572
+ name: string;
573
+ email: string;
574
+ token: string;
575
+ expiresAt: string;
576
+ /** Cómo se cita: «D.E. N° 590/2026», o el tipo si no lleva número. */
577
+ folio: string;
578
+ subject: string;
579
+ issuerName: string;
580
+ }
581
+
582
+ /** El documento como lo ve quien abre su copia por correo. */
583
+ export interface DocumentEmailCopyViewEntity {
584
+ recipientName: string;
585
+ expiresAt: string;
586
+ documentTypeName: string;
587
+ folio: string;
588
+ subject: string;
589
+ issuerName: string;
590
+ finishedAt: string | null;
591
+ verificationCode: string | null;
592
+ signers: { fullName: string; position: string | null; signedAt: string | null }[];
593
+ }
594
+
595
+ /** Recordatorio de un plazo: al recibido y, si venció, también a su jefatura (la resuelve el gateway). */
596
+ export interface DocumentReminderEntity {
597
+ deliveryId: string;
598
+ kind: 'DueSoon' | 'Overdue';
599
+ employeeId: string;
600
+ fullName: string;
601
+ documentId: string;
602
+ /** Cómo se cita: «D.E. N° 590/2026», el folio de ingreso o el tipo. */
603
+ folio: string;
604
+ subject: string;
605
+ dueAt: string;
606
+ instruction: DocumentDeliveryEntity['instruction'];
607
+ sentByFullName: string | null;
608
+ }
609
+
610
+ /** Quien visó, firmó o rechazó una versión, según la trazabilidad. */
611
+ export interface DocumentVersionReviewEntity {
612
+ action: 'Visaed' | 'Signed' | 'Rejected';
613
+ employeeFullName: string;
614
+ createdAt: string;
615
+ }
616
+
617
+ /** Una versión de un documento: lo que se guardó cada vez que cambió su PDF, su texto o su asunto. */
618
+ export interface DocumentVersionResponseEntity {
619
+ number: number;
620
+ subject: string;
621
+ fileName: string;
622
+ sha256: string | null;
623
+ /** Lo redactado con plantilla, para compararla con otra versión. `null` si se subió un PDF. */
624
+ composition: DocumentComposition | null;
625
+ note: string | null;
626
+ status: DocumentStatus;
627
+ createdByFullName: string;
628
+ createdAt: string;
629
+ /** Visaciones, firmas y rechazos mientras fue la versión vigente. */
630
+ reviews: DocumentVersionReviewEntity[];
631
+ }
632
+
633
+ /** Comentario de redacción de un visador, un firmante o el redactor. */
634
+ export interface DocumentCommentResponseEntity {
635
+ id: string;
636
+ versionNumber: number;
637
+ section: string | null;
638
+ quote: string | null;
639
+ text: string;
640
+ authorEmployeeId: string;
641
+ authorFullName: string;
642
+ /** `Review`: la jefatura que revisa el borrador antes de enviarlo a tramitación. */
643
+ authorRole: 'Author' | 'Visa' | 'Signature' | 'Review';
644
+ createdAt: string;
645
+ resolvedAt: string | null;
646
+ resolvedByFullName: string | null;
647
+ resolutionNote: string | null;
648
+ /** Quien consulta lo puede marcar como resuelto: el redactor o quien lo escribió, mientras el documento se tramita. */
649
+ canResolve: boolean;
650
+ }
651
+
652
+ export interface DocumentCommentsResponseEntity {
653
+ comments: DocumentCommentResponseEntity[];
654
+ /** Quien consulta puede comentar: es el redactor o tiene un turno, y el documento no ha terminado. */
655
+ canComment: boolean;
656
+ currentVersion: number;
657
+ }
658
+
659
+ /** Una ronda de revisión del borrador. */
660
+ export interface DocumentDraftReviewRoundEntity {
661
+ id: string;
662
+ round: number;
663
+ /** Versión del borrador que se revisó. */
664
+ versionNumber: number;
665
+ directorateName: string;
666
+ reviewerEmployeeId: string;
667
+ reviewerFullName: string;
668
+ requestedByFullName: string;
669
+ requestedAt: string;
670
+ status: 'Pending' | 'Approved' | 'Rejected' | 'Cancelled';
671
+ observation: string | null;
672
+ resolvedAt: string | null;
673
+ }
674
+
675
+ /** La revisión del borrador que exige el tipo documental. */
676
+ export interface DocumentDraftReviewInfoEntity {
677
+ directorateCodeReference: number;
678
+ directorateName: string;
679
+ rounds: DocumentDraftReviewRoundEntity[];
680
+ /** La versión vigente del borrador está aprobada: se puede enviar a tramitación. */
681
+ approved: boolean;
682
+ /** Hay una ronda esperando respuesta: el borrador no se edita mientras tanto. */
683
+ pending: boolean;
684
+ }
685
+
686
+ /** Resultado de pedir, resolver o retirar una revisión del borrador. */
687
+ export interface DocumentDraftReviewResponseEntity {
688
+ id: string;
689
+ ok: boolean;
690
+ round: number;
691
+ status: DocumentDraftReviewRoundEntity['status'];
692
+ /** A quién avisar: la jefatura revisora (al pedirla) o el redactor (al resolverla). */
693
+ notify: { employeeId: string; fullName: string } | null;
694
+ }
@@ -0,0 +1,58 @@
1
+ import { type DocumentTemplateEntity } from '../../base/entities';
2
+ import { type RichBlock, type RichField } from '../document/document.entity';
3
+
4
+ /**
5
+ * Contenido de una plantilla propia: los bloques del editor (con sus partes fijas) y los campos que completa quien
6
+ * redacta (en la plantilla, sin valor).
7
+ */
8
+ export interface DocumentTemplateContent {
9
+ blocks: RichBlock[];
10
+ fields: RichField[];
11
+ }
12
+
13
+ /** Plantilla propia en el listado de quien las administra. */
14
+ export interface DocumentTemplateGetAllResponseEntity {
15
+ id: DocumentTemplateEntity['id'];
16
+ name: DocumentTemplateEntity['name'];
17
+ description: string | null;
18
+ /** Tipos documentales donde se ofrece; vacío, en todos. */
19
+ documentTypeIds: DocumentTemplateEntity['documentTypeIds'];
20
+ documentTypeNames: string[];
21
+ version: DocumentTemplateEntity['version'];
22
+ enabled: DocumentTemplateEntity['enabled'];
23
+ updatedAt: DocumentTemplateEntity['updatedAt'];
24
+ updatedByFullName: string | null;
25
+ }
26
+
27
+ /** Una versión del contenido de una plantilla. */
28
+ export interface DocumentTemplateVersionResponseEntity {
29
+ version: number;
30
+ createdAt: string;
31
+ createdByFullName: string | null;
32
+ }
33
+
34
+ export interface DocumentTemplateGetByIdResponseEntity extends DocumentTemplateGetAllResponseEntity {
35
+ content: DocumentTemplateContent;
36
+ versions: DocumentTemplateVersionResponseEntity[];
37
+ }
38
+
39
+ /** Plantilla que se ofrece al redactar un documento de un tipo: con su contenido, lista para usar. */
40
+ export interface DocumentTemplateAvailableResponseEntity {
41
+ id: DocumentTemplateEntity['id'];
42
+ name: DocumentTemplateEntity['name'];
43
+ description: string | null;
44
+ version: DocumentTemplateEntity['version'];
45
+ content: DocumentTemplateContent;
46
+ }
47
+
48
+ export interface DocumentTemplateCreateResponseEntity {
49
+ id: DocumentTemplateEntity['id'];
50
+ ok: boolean;
51
+ }
52
+
53
+ export interface DocumentTemplateUpdateResponseEntity {
54
+ id: DocumentTemplateEntity['id'];
55
+ ok: boolean;
56
+ /** Versión vigente: sube solo si cambió el contenido. */
57
+ version: number;
58
+ }
@@ -0,0 +1 @@
1
+ export * from './documentTemplate.entity';
@@ -11,6 +11,8 @@ export interface DocumentTypeFlowStepResponseEntity {
11
11
  // Nombre del funcionario o de la dirección, como estaba al definir el flujo.
12
12
  name: DocumentTypeFlowStepEntity['name'];
13
13
  position: DocumentTypeFlowStepEntity['position'];
14
+ // Visa a la vez con el paso anterior (visación en paralelo).
15
+ withPrevious: DocumentTypeFlowStepEntity['withPrevious'];
14
16
  }
15
17
 
16
18
  export interface DocumentTypeGetAllResponseEntity {
@@ -22,7 +24,24 @@ export interface DocumentTypeGetAllResponseEntity {
22
24
  nextCorrelative: DocumentTypeEntity['nextCorrelative'];
23
25
  correlativeYear: DocumentTypeEntity['correlativeYear'];
24
26
  resetsYearly: DocumentTypeEntity['resetsYearly'];
27
+ // Sin numeración, sus documentos solo llevan fecha, código de verificación y QR.
28
+ numbered: DocumentTypeEntity['numbered'];
29
+ /** Transparencia Activa: sus documentos se publican cada mes, en esta sección del Portal. */
30
+ activeTransparency: DocumentTypeEntity['activeTransparency'];
31
+ transparencySection: DocumentTypeEntity['transparencySection'];
25
32
  directorateCodeReference: DocumentTypeEntity['directorateCodeReference'];
33
+ // Dirección cuya jefatura revisa los borradores antes de enviarlos a tramitación (sin valor: no hay revisión).
34
+ draftReviewDirectorateCode: DocumentTypeEntity['draftReviewDirectorateCode'];
35
+ draftReviewDirectorateName: DocumentTypeEntity['draftReviewDirectorateName'];
36
+ // Serie documental del Cuadro de Clasificación a la que van sus documentos (MGDDE1_2).
37
+ archivalSeries: { id: string; code: string; name: string } | null;
38
+ // Entidad que emite sus documentos (Educación, Salud, Juzgado). `null`: la municipalidad.
39
+ issuingEntity: { id: string; name: string; shortName: string | null } | null;
40
+ // Tipo cuyo correlativo comparte: sus números salen de esa serie (y `nextCorrelative`, `correlativeYear` y
41
+ // `resetsYearly` son los de ese tipo). `null`: lleva su propio correlativo.
42
+ sharesNumberingWith: { id: string; name: string } | null;
43
+ // Tipos que toman sus números del correlativo de este.
44
+ numberingMembers: { id: string; name: string }[];
26
45
  enabled: DocumentTypeEntity['enabled'];
27
46
  // Cuántos visadores y firmantes tiene su flujo sugerido.
28
47
  flow: { visa: number; signature: number };
@@ -0,0 +1,78 @@
1
+ import { type DocumentStatus, type DraftingRequestEventAction, type DraftingRequestStatus } from '../../base/entities';
2
+
3
+ /**
4
+ * Cómo va la solicitud, para mostrarla: sin tomar, tomada (aún sin documento), en redacción (con documento en curso),
5
+ * atendida (su documento quedó finalizado), devuelta o retirada.
6
+ */
7
+ export type DraftingRequestState = 'Pending' | 'Taken' | 'Drafting' | 'Completed' | 'Declined' | 'Cancelled';
8
+
9
+ /** Documento que atiende la solicitud. */
10
+ export interface DraftingRequestDocumentEntity {
11
+ id: string;
12
+ status: DocumentStatus;
13
+ /** «D.E. N° 590/2026», o `null` mientras no tiene número. */
14
+ folio: string | null;
15
+ }
16
+
17
+ export interface DraftingRequestListItemEntity {
18
+ id: string;
19
+ /** «N° 3/2026». */
20
+ label: string;
21
+ subject: string;
22
+ status: DraftingRequestStatus;
23
+ state: DraftingRequestState;
24
+ requesterEmployeeId: string;
25
+ requesterFullName: string;
26
+ requesterAreaName: string | null;
27
+ targetDirectorateCode: number;
28
+ targetDirectorateName: string;
29
+ takenByEmployeeId: string | null;
30
+ takenByFullName: string | null;
31
+ documentType: { id: string; name: string } | null;
32
+ dueAt: string | null;
33
+ createdAt: string;
34
+ document: DraftingRequestDocumentEntity | null;
35
+ }
36
+
37
+ export interface DraftingRequestAttachmentResponseEntity {
38
+ id: string;
39
+ name: string;
40
+ }
41
+
42
+ export interface DraftingRequestEventResponseEntity {
43
+ id: string;
44
+ action: DraftingRequestEventAction;
45
+ note: string | null;
46
+ employeeFullName: string;
47
+ createdAt: string;
48
+ }
49
+
50
+ export interface DraftingRequestDetailEntity extends DraftingRequestListItemEntity {
51
+ details: string;
52
+ takenAt: string | null;
53
+ closedAt: string | null;
54
+ closingNote: string | null;
55
+ /** Funcionarios de la dirección a los que les llegó. */
56
+ recipientCount: number;
57
+ attachments: DraftingRequestAttachmentResponseEntity[];
58
+ events: DraftingRequestEventResponseEntity[];
59
+ /** Qué puede hacer con ella quien la consulta. */
60
+ capabilities: {
61
+ canTake: boolean;
62
+ canRelease: boolean;
63
+ canDecline: boolean;
64
+ canCancel: boolean;
65
+ /** La tomó y aún no tiene documento (o lo descartó): puede redactarlo. */
66
+ canDraft: boolean;
67
+ };
68
+ /** Funcionarios a los que avisar de la operación que se acaba de hacer (lo usa el gateway). */
69
+ notify?: { employeeIds: string[] };
70
+ }
71
+
72
+ /** Solicitud enlazada a un documento, como se muestra en su detalle. */
73
+ export interface DocumentDraftingRequestEntity {
74
+ id: string;
75
+ label: string;
76
+ requesterFullName: string;
77
+ requesterAreaName: string | null;
78
+ }
@@ -0,0 +1 @@
1
+ export * from './draftingRequest.entity';