@muni-sanfer/types-gestor-documental 0.0.1-beta.16 → 0.0.1-beta.18

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 (38) hide show
  1. package/dist/base/entities.d.ts +27 -0
  2. package/dist/base/entities.js +8 -1
  3. package/dist/contracts/caseFile.contract.d.ts +16 -1
  4. package/dist/contracts/caseFile.contract.js +1 -0
  5. package/dist/contracts/document.contract.d.ts +11 -1
  6. package/dist/contracts/document.contract.js +1 -0
  7. package/dist/contracts/holiday.contract.d.ts +30 -0
  8. package/dist/contracts/holiday.contract.js +9 -0
  9. package/dist/contracts/index.d.ts +19 -1
  10. package/dist/contracts/index.js +6 -0
  11. package/dist/contracts/textSnippet.contract.d.ts +51 -0
  12. package/dist/contracts/textSnippet.contract.js +11 -0
  13. package/dist/entities/caseFile/caseFile.entity.d.ts +28 -0
  14. package/dist/entities/document/document.entity.d.ts +24 -0
  15. package/dist/entities/holiday/holiday.entity.d.ts +10 -0
  16. package/dist/entities/holiday/holiday.entity.js +2 -0
  17. package/dist/entities/holiday/index.d.ts +1 -0
  18. package/dist/entities/holiday/index.js +17 -0
  19. package/dist/entities/index.d.ts +2 -0
  20. package/dist/entities/index.js +2 -0
  21. package/dist/entities/textSnippet/index.d.ts +1 -0
  22. package/dist/entities/textSnippet/index.js +17 -0
  23. package/dist/entities/textSnippet/textSnippet.entity.d.ts +20 -0
  24. package/dist/entities/textSnippet/textSnippet.entity.js +2 -0
  25. package/package.json +1 -1
  26. package/src/base/entities.ts +31 -0
  27. package/src/contracts/caseFile.contract.ts +10 -0
  28. package/src/contracts/document.contract.ts +12 -0
  29. package/src/contracts/holiday.contract.ts +16 -0
  30. package/src/contracts/index.ts +9 -1
  31. package/src/contracts/textSnippet.contract.ts +53 -0
  32. package/src/entities/caseFile/caseFile.entity.ts +26 -0
  33. package/src/entities/document/document.entity.ts +26 -0
  34. package/src/entities/holiday/holiday.entity.ts +11 -0
  35. package/src/entities/holiday/index.ts +1 -0
  36. package/src/entities/index.ts +2 -0
  37. package/src/entities/textSnippet/index.ts +1 -0
  38. package/src/entities/textSnippet/textSnippet.entity.ts +24 -0
@@ -171,6 +171,14 @@ export declare const ScanSessionStatus: {
171
171
  Open: "Open";
172
172
  Ready: "Ready";
173
173
  };
174
+ export type TextSnippetSection = 'Vistos' | 'Considerando' | 'Resolutive' | 'Body' | 'Closing';
175
+ export declare const TextSnippetSection: {
176
+ Vistos: "Vistos";
177
+ Considerando: "Considerando";
178
+ Resolutive: "Resolutive";
179
+ Body: "Body";
180
+ Closing: "Closing";
181
+ };
174
182
  export type WorkFolderItemKind = 'Document' | 'File';
175
183
  export declare const WorkFolderItemKind: {
176
184
  Document: "Document";
@@ -353,6 +361,8 @@ export interface DocumentDeliveryEntity {
353
361
  readAt?: string | null;
354
362
  closedAt?: string | null;
355
363
  closingNote?: string | null;
364
+ dueSoonRemindedAt?: string | null;
365
+ overdueRemindedAt?: string | null;
356
366
  document?: DocumentEntity;
357
367
  documentId: string;
358
368
  createdAt: string;
@@ -621,6 +631,23 @@ export interface DocDigitalInboundEntity {
621
631
  createdAt: string;
622
632
  updatedAt: string;
623
633
  }
634
+ export interface HolidayEntity {
635
+ id: string;
636
+ date: string;
637
+ name: string;
638
+ createdAt: string;
639
+ }
640
+ export interface TextSnippetEntity {
641
+ id: string;
642
+ title: string;
643
+ text: string;
644
+ section: TextSnippetSection;
645
+ keywords: string[];
646
+ enabled: boolean;
647
+ deleted: boolean;
648
+ createdAt: string;
649
+ updatedAt: string;
650
+ }
624
651
  export interface ArchivalSeriesEntity {
625
652
  id: string;
626
653
  code: string;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  // This file was auto-generated by prisma-generator-typescript-interfaces
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.WorkFolderItemKind = exports.ScanSessionStatus = exports.CaseFileAccessAction = exports.CaseFileTrackingAction = exports.CaseFileActorType = exports.CaseFileActorRelation = exports.CaseFileEntryKind = exports.CaseFileActuationType = exports.CaseFileIncorporationMechanism = exports.CaseFileStatus = exports.DocumentInstruction = exports.DocumentDeliveryOrigin = exports.DocumentRecipientType = exports.DocumentAttachmentType = exports.DocumentFlowStepType = exports.DocDigitalInboundStatus = exports.DocumentDispatchStatus = exports.DocumentOrigin = exports.DocumentTrackingAction = exports.DocumentParticipantStatus = exports.DocumentParticipantRole = exports.DocumentAccessLevel = exports.DocumentStatus = exports.DocumentCategory = void 0;
4
+ exports.WorkFolderItemKind = exports.TextSnippetSection = exports.ScanSessionStatus = exports.CaseFileAccessAction = exports.CaseFileTrackingAction = exports.CaseFileActorType = exports.CaseFileActorRelation = exports.CaseFileEntryKind = exports.CaseFileActuationType = exports.CaseFileIncorporationMechanism = exports.CaseFileStatus = exports.DocumentInstruction = exports.DocumentDeliveryOrigin = exports.DocumentRecipientType = exports.DocumentAttachmentType = exports.DocumentFlowStepType = exports.DocDigitalInboundStatus = exports.DocumentDispatchStatus = exports.DocumentOrigin = exports.DocumentTrackingAction = exports.DocumentParticipantStatus = exports.DocumentParticipantRole = exports.DocumentAccessLevel = exports.DocumentStatus = exports.DocumentCategory = void 0;
5
5
  exports.DocumentCategory = {
6
6
  Decree: 'Decree',
7
7
  Communication: 'Communication',
@@ -152,6 +152,13 @@ exports.ScanSessionStatus = {
152
152
  Open: 'Open',
153
153
  Ready: 'Ready',
154
154
  };
155
+ exports.TextSnippetSection = {
156
+ Vistos: 'Vistos',
157
+ Considerando: 'Considerando',
158
+ Resolutive: 'Resolutive',
159
+ Body: 'Body',
160
+ Closing: 'Closing',
161
+ };
155
162
  exports.WorkFolderItemKind = {
156
163
  Document: 'Document',
157
164
  File: 'File',
@@ -1,5 +1,5 @@
1
1
  import { type CaseFileActorRelation, type CaseFileActorType, type CaseFileActuationType, type CaseFileEntity, type CaseFileStatus, type DocumentAccessLevel } from '../base/entities';
2
- import { type CaseFileAddBatchResponseEntity, type CaseFileAddEntryResponseEntity, type CaseFileCreateResponseEntity, type CaseFileEntryFileResponseEntity, type CaseFileExportResponseEntity, type CaseFileGetAllResponseEntity, type CaseFileGetByIdResponseEntity, type CaseFileShareLinkCreateResponseEntity, type CaseFileShareLinkResponseEntity, type CaseFileSharedResponseEntity, type CaseFileUpdateResponseEntity } from '../entities';
2
+ import { type CaseFileAddBatchResponseEntity, type CaseFileAddEntryResponseEntity, type CaseFileCreateResponseEntity, type CaseFileEntryFileResponseEntity, type CaseFileExportResponseEntity, type CaseFileGetAllResponseEntity, type CaseFileGetByIdResponseEntity, type CaseFileShareLinkCreateResponseEntity, type CaseFileShareLinkResponseEntity, type CaseFileSharedResponseEntity, type CaseFileUpdateResponseEntity, type CaseFileVerifyExportResponseEntity } from '../entities';
3
3
  import { type RpcPage } from './contract';
4
4
  import { type DocumentActor } from './document.contract';
5
5
  /** Patrones NATS de `caseFile`: `<servicio>.<recurso>.<acción>`. */
@@ -23,6 +23,7 @@ export declare const CaseFilePatterns: {
23
23
  readonly getShared: "gestorDocumental.caseFile.getShared";
24
24
  readonly getSharedEntryFile: "gestorDocumental.caseFile.getSharedEntryFile";
25
25
  readonly getSharedExport: "gestorDocumental.caseFile.getSharedExport";
26
+ readonly verifyExport: "gestorDocumental.caseFile.verifyExport";
26
27
  };
27
28
  /** Enlace temporal para que alguien de fuera consulte el expediente sin sesión. */
28
29
  export interface CaseFileShareLinkPayload {
@@ -237,6 +238,20 @@ export interface CaseFileContract {
237
238
  response: CaseFileEntryFileResponseEntity;
238
239
  };
239
240
  /** El expediente completo, si el enlace lo permite. Queda en la trazabilidad y en el registro de accesos. */
241
+ /**
242
+ * Verificador público del ZIP exportado: sin sesión, con el identificador del expediente y la huella SHA-256 que
243
+ * calculó el navegador para cada actuación (el ZIP no se sube). Se compara con las huellas registradas al incorporar.
244
+ */
245
+ [CaseFilePatterns.verifyExport]: {
246
+ payload: {
247
+ code: string;
248
+ entries: {
249
+ sequence: number;
250
+ sha256: string;
251
+ }[];
252
+ };
253
+ response: CaseFileVerifyExportResponseEntity;
254
+ };
240
255
  [CaseFilePatterns.getSharedExport]: {
241
256
  payload: {
242
257
  token: string;
@@ -22,4 +22,5 @@ exports.CaseFilePatterns = {
22
22
  getShared: 'gestorDocumental.caseFile.getShared',
23
23
  getSharedEntryFile: 'gestorDocumental.caseFile.getSharedEntryFile',
24
24
  getSharedExport: 'gestorDocumental.caseFile.getSharedExport',
25
+ verifyExport: 'gestorDocumental.caseFile.verifyExport',
25
26
  };
@@ -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 DocumentEmailCopyIssuedEntity, type DocumentEmailCopyViewEntity, type DocumentGetAllResponseEntity, type DocumentGetByIdResponseEntity, type DocumentGetSummaryResponseEntity, type DocumentInboxItemEntity, type DocumentPublicFileResponseEntity, type DocumentReassignResponseEntity, type DocumentReviewResponseEntity, type DocumentSignManyResponseEntity, type DocumentAgendaResponseEntity, type DocumentComposeResponseEntity, type DocumentComposition, type DocumentTrailExportEntity, type DocumentUpdateResponseEntity, type DocumentVerifyResponseEntity } from '../entities';
2
+ import { type DocumentAnnulResponseEntity, type DocumentCloseDeliveryResponseEntity, type DocumentCreateResponseEntity, type DocumentDeriveResponseEntity, type DocumentDiscardResponseEntity, type DocumentEmailCopyIssuedEntity, type DocumentEmailCopyViewEntity, type DocumentReminderEntity, type DocumentGetAllResponseEntity, type DocumentGetByIdResponseEntity, type DocumentGetSummaryResponseEntity, type DocumentInboxItemEntity, type DocumentPublicFileResponseEntity, type DocumentReassignResponseEntity, type DocumentReviewResponseEntity, type DocumentSignManyResponseEntity, type DocumentAgendaResponseEntity, type DocumentComposeResponseEntity, type DocumentComposition, 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: {
@@ -25,6 +25,7 @@ export declare const DocumentPatterns: {
25
25
  readonly issueEmailCopies: "gestorDocumental.document.issueEmailCopies";
26
26
  readonly getEmailCopy: "gestorDocumental.document.getEmailCopy";
27
27
  readonly getEmailCopyFile: "gestorDocumental.document.getEmailCopyFile";
28
+ readonly claimReminders: "gestorDocumental.document.claimReminders";
28
29
  };
29
30
  /**
30
31
  * Funcionario que hace la operación y sus áreas (direcciones y departamentos a los que pertenece o que dirige). Lo
@@ -277,6 +278,7 @@ export interface DocumentContract {
277
278
  instruction: DocumentInstruction;
278
279
  note?: string | null;
279
280
  dueAt?: string | null;
281
+ dueBusinessDays?: number | null;
280
282
  actor: DocumentActor;
281
283
  viewAll?: boolean;
282
284
  };
@@ -322,6 +324,14 @@ export interface DocumentContract {
322
324
  };
323
325
  response: DocumentEmailCopyViewEntity;
324
326
  };
327
+ /**
328
+ * Recordatorios de plazos que corresponde enviar ahora: lo que vence en un día hábil y lo vencido sin atender. Cada
329
+ * uno se entrega una sola vez (queda marcado al reclamarlo), aunque lo pidan varias instancias del gateway a la vez.
330
+ */
331
+ [DocumentPatterns.claimReminders]: {
332
+ payload: Record<string, never>;
333
+ response: DocumentReminderEntity[];
334
+ };
325
335
  [DocumentPatterns.getEmailCopyFile]: {
326
336
  payload: {
327
337
  token: string;
@@ -25,4 +25,5 @@ exports.DocumentPatterns = {
25
25
  issueEmailCopies: 'gestorDocumental.document.issueEmailCopies',
26
26
  getEmailCopy: 'gestorDocumental.document.getEmailCopy',
27
27
  getEmailCopyFile: 'gestorDocumental.document.getEmailCopyFile',
28
+ claimReminders: 'gestorDocumental.document.claimReminders',
28
29
  };
@@ -0,0 +1,30 @@
1
+ import { type HolidayRemoveResponseEntity, type HolidayResponseEntity } from '../entities';
2
+ /** Patrones NATS de `holiday`: feriados para contar días hábiles. */
3
+ export declare const HolidayPatterns: {
4
+ readonly getAll: "gestorDocumental.holiday.getAll";
5
+ readonly create: "gestorDocumental.holiday.create";
6
+ readonly remove: "gestorDocumental.holiday.remove";
7
+ };
8
+ export interface HolidayContract {
9
+ /** Feriados de un año, en orden. */
10
+ [HolidayPatterns.getAll]: {
11
+ payload: {
12
+ year: number;
13
+ };
14
+ response: HolidayResponseEntity[];
15
+ };
16
+ /** `date` como «AAAA-MM-DD». */
17
+ [HolidayPatterns.create]: {
18
+ payload: {
19
+ date: string;
20
+ name: string;
21
+ };
22
+ response: HolidayResponseEntity;
23
+ };
24
+ [HolidayPatterns.remove]: {
25
+ payload: {
26
+ id: string;
27
+ };
28
+ response: HolidayRemoveResponseEntity;
29
+ };
30
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HolidayPatterns = void 0;
4
+ /** Patrones NATS de `holiday`: feriados para contar días hábiles. */
5
+ exports.HolidayPatterns = {
6
+ getAll: 'gestorDocumental.holiday.getAll',
7
+ create: 'gestorDocumental.holiday.create',
8
+ remove: 'gestorDocumental.holiday.remove',
9
+ };
@@ -3,6 +3,8 @@ import { type DocumentContract } from './document.contract';
3
3
  import { type DocumentTypeContract } from './documentType.contract';
4
4
  import { type IssuingEntityContract } from './issuingEntity.contract';
5
5
  import { type ArchivalSeriesContract } from './archivalSeries.contract';
6
+ import { type TextSnippetContract } from './textSnippet.contract';
7
+ import { type HolidayContract } from './holiday.contract';
6
8
  import { type ScanContract } from './scan.contract';
7
9
  import { type PartsOfficeContract } from './partsOffice.contract';
8
10
  import { type ProcedureContract } from './procedure.contract';
@@ -21,6 +23,8 @@ export * from './signatureBatch.contract';
21
23
  export * from './workFolder.contract';
22
24
  export * from './scan.contract';
23
25
  export * from './archivalSeries.contract';
26
+ export * from './textSnippet.contract';
27
+ export * from './holiday.contract';
24
28
  /** Patrones NATS de gestor-documental-ms, por recurso: `gestorDocumental.<recurso>.<acción>`. */
25
29
  export declare const GestorDocumentalPatterns: {
26
30
  readonly documentType: {
@@ -53,6 +57,7 @@ export declare const GestorDocumentalPatterns: {
53
57
  readonly issueEmailCopies: "gestorDocumental.document.issueEmailCopies";
54
58
  readonly getEmailCopy: "gestorDocumental.document.getEmailCopy";
55
59
  readonly getEmailCopyFile: "gestorDocumental.document.getEmailCopyFile";
60
+ readonly claimReminders: "gestorDocumental.document.claimReminders";
56
61
  };
57
62
  readonly procedure: {
58
63
  readonly getAll: "gestorDocumental.procedure.getAll";
@@ -88,6 +93,7 @@ export declare const GestorDocumentalPatterns: {
88
93
  readonly getShared: "gestorDocumental.caseFile.getShared";
89
94
  readonly getSharedEntryFile: "gestorDocumental.caseFile.getSharedEntryFile";
90
95
  readonly getSharedExport: "gestorDocumental.caseFile.getSharedExport";
96
+ readonly verifyExport: "gestorDocumental.caseFile.verifyExport";
91
97
  };
92
98
  readonly partsOffice: {
93
99
  readonly getStatus: "gestorDocumental.partsOffice.getStatus";
@@ -147,6 +153,18 @@ export declare const GestorDocumentalPatterns: {
147
153
  readonly update: "gestorDocumental.archivalSeries.update";
148
154
  readonly setEnabled: "gestorDocumental.archivalSeries.setEnabled";
149
155
  };
156
+ readonly textSnippet: {
157
+ readonly getAll: "gestorDocumental.textSnippet.getAll";
158
+ readonly getById: "gestorDocumental.textSnippet.getById";
159
+ readonly create: "gestorDocumental.textSnippet.create";
160
+ readonly update: "gestorDocumental.textSnippet.update";
161
+ readonly setEnabled: "gestorDocumental.textSnippet.setEnabled";
162
+ };
163
+ readonly holiday: {
164
+ readonly getAll: "gestorDocumental.holiday.getAll";
165
+ readonly create: "gestorDocumental.holiday.create";
166
+ readonly remove: "gestorDocumental.holiday.remove";
167
+ };
150
168
  };
151
169
  /** Contrato completo de gestor-documental-ms: la unión de los contratos de sus recursos. */
152
- export type GestorDocumentalContract = DocumentTypeContract & DocumentContract & ProcedureContract & IssuingEntityContract & CaseFileContract & PartsOfficeContract & RegisterBookContract & SignatureBatchContract & WorkFolderContract & ScanContract & ArchivalSeriesContract;
170
+ export type GestorDocumentalContract = DocumentTypeContract & DocumentContract & ProcedureContract & IssuingEntityContract & CaseFileContract & PartsOfficeContract & RegisterBookContract & SignatureBatchContract & WorkFolderContract & ScanContract & ArchivalSeriesContract & TextSnippetContract & HolidayContract;
@@ -20,6 +20,8 @@ const document_contract_1 = require("./document.contract");
20
20
  const documentType_contract_1 = require("./documentType.contract");
21
21
  const issuingEntity_contract_1 = require("./issuingEntity.contract");
22
22
  const archivalSeries_contract_1 = require("./archivalSeries.contract");
23
+ const textSnippet_contract_1 = require("./textSnippet.contract");
24
+ const holiday_contract_1 = require("./holiday.contract");
23
25
  const scan_contract_1 = require("./scan.contract");
24
26
  const partsOffice_contract_1 = require("./partsOffice.contract");
25
27
  const procedure_contract_1 = require("./procedure.contract");
@@ -38,6 +40,8 @@ __exportStar(require("./signatureBatch.contract"), exports);
38
40
  __exportStar(require("./workFolder.contract"), exports);
39
41
  __exportStar(require("./scan.contract"), exports);
40
42
  __exportStar(require("./archivalSeries.contract"), exports);
43
+ __exportStar(require("./textSnippet.contract"), exports);
44
+ __exportStar(require("./holiday.contract"), exports);
41
45
  /** Patrones NATS de gestor-documental-ms, por recurso: `gestorDocumental.<recurso>.<acción>`. */
42
46
  exports.GestorDocumentalPatterns = {
43
47
  documentType: documentType_contract_1.DocumentTypePatterns,
@@ -51,4 +55,6 @@ exports.GestorDocumentalPatterns = {
51
55
  workFolder: workFolder_contract_1.WorkFolderPatterns,
52
56
  scan: scan_contract_1.ScanPatterns,
53
57
  archivalSeries: archivalSeries_contract_1.ArchivalSeriesPatterns,
58
+ textSnippet: textSnippet_contract_1.TextSnippetPatterns,
59
+ holiday: holiday_contract_1.HolidayPatterns,
54
60
  };
@@ -0,0 +1,51 @@
1
+ import { type TextSnippetEntity, type TextSnippetSection } from '../base/entities';
2
+ import { type TextSnippetCreateResponseEntity, type TextSnippetGetAllResponseEntity, type TextSnippetGetByIdResponseEntity, type TextSnippetUpdateResponseEntity } from '../entities';
3
+ import { type RpcPage } from './contract';
4
+ /** Patrones NATS de `textSnippet` (biblioteca de vistos y cláusulas): `<servicio>.<recurso>.<acción>`. */
5
+ export declare const TextSnippetPatterns: {
6
+ readonly getAll: "gestorDocumental.textSnippet.getAll";
7
+ readonly getById: "gestorDocumental.textSnippet.getById";
8
+ readonly create: "gestorDocumental.textSnippet.create";
9
+ readonly update: "gestorDocumental.textSnippet.update";
10
+ readonly setEnabled: "gestorDocumental.textSnippet.setEnabled";
11
+ };
12
+ /** Datos de un texto de la biblioteca al crearlo o editarlo. */
13
+ export interface TextSnippetWritePayload {
14
+ title: string;
15
+ text: string;
16
+ section: TextSnippetSection;
17
+ keywords?: string[];
18
+ enabled?: boolean;
19
+ }
20
+ export interface TextSnippetContract {
21
+ [TextSnippetPatterns.getAll]: {
22
+ payload: {
23
+ pagination?: {
24
+ page?: number;
25
+ limit?: number;
26
+ };
27
+ filters?: {
28
+ search?: string;
29
+ enabled?: boolean;
30
+ section?: TextSnippetSection;
31
+ };
32
+ };
33
+ response: RpcPage<TextSnippetGetAllResponseEntity[]>;
34
+ };
35
+ [TextSnippetPatterns.getById]: {
36
+ payload: Pick<TextSnippetEntity, 'id'>;
37
+ response: TextSnippetGetByIdResponseEntity;
38
+ };
39
+ [TextSnippetPatterns.create]: {
40
+ payload: TextSnippetWritePayload;
41
+ response: TextSnippetCreateResponseEntity;
42
+ };
43
+ [TextSnippetPatterns.update]: {
44
+ payload: TextSnippetWritePayload & Pick<TextSnippetEntity, 'id'>;
45
+ response: TextSnippetUpdateResponseEntity;
46
+ };
47
+ [TextSnippetPatterns.setEnabled]: {
48
+ payload: Pick<TextSnippetEntity, 'id' | 'enabled'>;
49
+ response: TextSnippetUpdateResponseEntity;
50
+ };
51
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TextSnippetPatterns = void 0;
4
+ /** Patrones NATS de `textSnippet` (biblioteca de vistos y cláusulas): `<servicio>.<recurso>.<acción>`. */
5
+ exports.TextSnippetPatterns = {
6
+ getAll: 'gestorDocumental.textSnippet.getAll',
7
+ getById: 'gestorDocumental.textSnippet.getById',
8
+ create: 'gestorDocumental.textSnippet.create',
9
+ update: 'gestorDocumental.textSnippet.update',
10
+ setEnabled: 'gestorDocumental.textSnippet.setEnabled',
11
+ };
@@ -267,3 +267,31 @@ export interface CaseFileSharedResponseEntity {
267
267
  allowExport: boolean;
268
268
  entries: CaseFileSharedEntryEntity[];
269
269
  }
270
+ /** Resultado de una actuación al verificar un ZIP exportado. */
271
+ export type CaseFileVerifyEntryResult =
272
+ /** La huella coincide con la registrada al incorporarla. */
273
+ 'Match'
274
+ /** La huella no coincide: el archivo cambió. */
275
+ | 'Altered'
276
+ /** El ZIP trae una actuación con esa secuencia que el expediente no tiene. */
277
+ | 'NotInRegistry'
278
+ /** El expediente tiene esa actuación con archivo, pero el ZIP no la trae. */
279
+ | 'Missing'
280
+ /** La actuación no tiene huella registrada (incorporada antes de que se guardaran). */
281
+ | 'NoFingerprint';
282
+ export interface CaseFileVerifyExportResponseEntity {
283
+ code: string;
284
+ status: CaseFileEntity['status'];
285
+ closedAt: string | null;
286
+ /** Solo si el expediente es público y sin datos sensibles. */
287
+ title: string | null;
288
+ /** Cuántas actuaciones con archivo tiene el expediente registradas. */
289
+ registeredFiles: number;
290
+ /** `true` si todo lo registrado está en el ZIP y todo coincide. */
291
+ intact: boolean;
292
+ entries: {
293
+ sequence: number;
294
+ result: CaseFileVerifyEntryResult;
295
+ voided: boolean;
296
+ }[];
297
+ }
@@ -109,7 +109,13 @@ export interface DocumentGetAllResponseEntity {
109
109
  } | null;
110
110
  }
111
111
  /** Una entrada de la bandeja de recibidos: la entrega y el documento al que corresponde. */
112
+ /** Semáforo de un plazo pendiente: a tiempo, por vencer (2 días hábiles o menos) o vencido. */
113
+ export type DocumentDueStatus = 'OnTime' | 'DueSoon' | 'Overdue';
112
114
  export interface DocumentInboxItemEntity extends DocumentDeliveryResponseEntity {
115
+ /** Semáforo de lo pendiente con plazo (sin plazo o ya atendido, `null`). */
116
+ dueStatus: DocumentDueStatus | null;
117
+ /** Días hábiles que quedan, sin contar hoy (vencido: `null`). */
118
+ businessDaysLeft: number | null;
113
119
  document: DocumentLinkEntity;
114
120
  }
115
121
  export interface DocumentGetByIdResponseEntity {
@@ -328,6 +334,10 @@ export interface DocumentReassignResponseEntity {
328
334
  */
329
335
  export interface DocumentAgendaItemEntity {
330
336
  kind: 'Received' | 'Sent';
337
+ /** Semáforo de lo pendiente (atendido o ya respondido por todos: `null`). */
338
+ dueStatus: DocumentDueStatus | null;
339
+ /** Días hábiles que quedan, sin contar hoy (vencido: `null`). */
340
+ businessDaysLeft: number | null;
331
341
  /** La entrega (lo recibido) o el documento (lo enviado). */
332
342
  id: string;
333
343
  documentId: DocumentEntity['id'];
@@ -450,3 +460,17 @@ export interface DocumentEmailCopyViewEntity {
450
460
  signedAt: string | null;
451
461
  }[];
452
462
  }
463
+ /** Recordatorio de un plazo: al recibido y, si venció, también a su jefatura (la resuelve el gateway). */
464
+ export interface DocumentReminderEntity {
465
+ deliveryId: string;
466
+ kind: 'DueSoon' | 'Overdue';
467
+ employeeId: string;
468
+ fullName: string;
469
+ documentId: string;
470
+ /** Cómo se cita: «D.E. N° 590/2026», el folio de ingreso o el tipo. */
471
+ folio: string;
472
+ subject: string;
473
+ dueAt: string;
474
+ instruction: DocumentDeliveryEntity['instruction'];
475
+ sentByFullName: string | null;
476
+ }
@@ -0,0 +1,10 @@
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
+ export interface HolidayRemoveResponseEntity {
8
+ id: string;
9
+ ok: boolean;
10
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1 @@
1
+ export * from './holiday.entity';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./holiday.entity"), exports);
@@ -9,3 +9,5 @@ export * from './signatureBatch';
9
9
  export * from './workFolder';
10
10
  export * from './scan';
11
11
  export * from './archivalSeries';
12
+ export * from './textSnippet';
13
+ export * from './holiday';
@@ -25,3 +25,5 @@ __exportStar(require("./signatureBatch"), exports);
25
25
  __exportStar(require("./workFolder"), exports);
26
26
  __exportStar(require("./scan"), exports);
27
27
  __exportStar(require("./archivalSeries"), exports);
28
+ __exportStar(require("./textSnippet"), exports);
29
+ __exportStar(require("./holiday"), exports);
@@ -0,0 +1 @@
1
+ export * from './textSnippet.entity';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./textSnippet.entity"), exports);
@@ -0,0 +1,20 @@
1
+ import { TextSnippetEntity } from '../../base/entities';
2
+ /** Texto de la biblioteca de vistos y cláusulas. */
3
+ export interface TextSnippetGetAllResponseEntity {
4
+ id: TextSnippetEntity['id'];
5
+ title: TextSnippetEntity['title'];
6
+ text: TextSnippetEntity['text'];
7
+ section: TextSnippetEntity['section'];
8
+ keywords: TextSnippetEntity['keywords'];
9
+ enabled: TextSnippetEntity['enabled'];
10
+ updatedAt: TextSnippetEntity['updatedAt'];
11
+ }
12
+ export type TextSnippetGetByIdResponseEntity = TextSnippetGetAllResponseEntity;
13
+ export interface TextSnippetCreateResponseEntity {
14
+ id: TextSnippetEntity['id'];
15
+ ok: boolean;
16
+ }
17
+ export interface TextSnippetUpdateResponseEntity {
18
+ id: TextSnippetEntity['id'];
19
+ ok: boolean;
20
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@muni-sanfer/types-gestor-documental",
3
- "version": "0.0.1-beta.16",
3
+ "version": "0.0.1-beta.18",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -259,6 +259,16 @@ export const ScanSessionStatus = {
259
259
  Ready: 'Ready',
260
260
  } satisfies Record<string, ScanSessionStatus>;
261
261
 
262
+ export type TextSnippetSection = 'Vistos' | 'Considerando' | 'Resolutive' | 'Body' | 'Closing';
263
+
264
+ export const TextSnippetSection = {
265
+ Vistos: 'Vistos',
266
+ Considerando: 'Considerando',
267
+ Resolutive: 'Resolutive',
268
+ Body: 'Body',
269
+ Closing: 'Closing',
270
+ } satisfies Record<string, TextSnippetSection>;
271
+
262
272
  export type WorkFolderItemKind = 'Document' | 'File';
263
273
 
264
274
  export const WorkFolderItemKind = {
@@ -451,6 +461,8 @@ export interface DocumentDeliveryEntity {
451
461
  readAt?: string | null;
452
462
  closedAt?: string | null;
453
463
  closingNote?: string | null;
464
+ dueSoonRemindedAt?: string | null;
465
+ overdueRemindedAt?: string | null;
454
466
  document?: DocumentEntity;
455
467
  documentId: string;
456
468
  createdAt: string;
@@ -736,6 +748,25 @@ export interface DocDigitalInboundEntity {
736
748
  updatedAt: string;
737
749
  }
738
750
 
751
+ export interface HolidayEntity {
752
+ id: string;
753
+ date: string;
754
+ name: string;
755
+ createdAt: string;
756
+ }
757
+
758
+ export interface TextSnippetEntity {
759
+ id: string;
760
+ title: string;
761
+ text: string;
762
+ section: TextSnippetSection;
763
+ keywords: string[];
764
+ enabled: boolean;
765
+ deleted: boolean;
766
+ createdAt: string;
767
+ updatedAt: string;
768
+ }
769
+
739
770
  export interface ArchivalSeriesEntity {
740
771
  id: string;
741
772
  code: string;
@@ -18,6 +18,7 @@ import {
18
18
  type CaseFileShareLinkResponseEntity,
19
19
  type CaseFileSharedResponseEntity,
20
20
  type CaseFileUpdateResponseEntity,
21
+ type CaseFileVerifyExportResponseEntity,
21
22
  } from '../entities';
22
23
  import { type RpcPage } from './contract';
23
24
  import { type DocumentActor } from './document.contract';
@@ -43,6 +44,7 @@ export const CaseFilePatterns = {
43
44
  getShared: 'gestorDocumental.caseFile.getShared',
44
45
  getSharedEntryFile: 'gestorDocumental.caseFile.getSharedEntryFile',
45
46
  getSharedExport: 'gestorDocumental.caseFile.getSharedExport',
47
+ verifyExport: 'gestorDocumental.caseFile.verifyExport',
46
48
  } as const;
47
49
 
48
50
  /** Enlace temporal para que alguien de fuera consulte el expediente sin sesión. */
@@ -211,6 +213,14 @@ export interface CaseFileContract {
211
213
  response: CaseFileEntryFileResponseEntity;
212
214
  };
213
215
  /** El expediente completo, si el enlace lo permite. Queda en la trazabilidad y en el registro de accesos. */
216
+ /**
217
+ * Verificador público del ZIP exportado: sin sesión, con el identificador del expediente y la huella SHA-256 que
218
+ * calculó el navegador para cada actuación (el ZIP no se sube). Se compara con las huellas registradas al incorporar.
219
+ */
220
+ [CaseFilePatterns.verifyExport]: {
221
+ payload: { code: string; entries: { sequence: number; sha256: string }[] };
222
+ response: CaseFileVerifyExportResponseEntity;
223
+ };
214
224
  [CaseFilePatterns.getSharedExport]: {
215
225
  payload: { token: string };
216
226
  response: CaseFileExportResponseEntity;
@@ -15,6 +15,7 @@ import {
15
15
  type DocumentDiscardResponseEntity,
16
16
  type DocumentEmailCopyIssuedEntity,
17
17
  type DocumentEmailCopyViewEntity,
18
+ type DocumentReminderEntity,
18
19
  type DocumentGetAllResponseEntity,
19
20
  type DocumentGetByIdResponseEntity,
20
21
  type DocumentGetSummaryResponseEntity,
@@ -56,6 +57,7 @@ export const DocumentPatterns = {
56
57
  issueEmailCopies: 'gestorDocumental.document.issueEmailCopies',
57
58
  getEmailCopy: 'gestorDocumental.document.getEmailCopy',
58
59
  getEmailCopyFile: 'gestorDocumental.document.getEmailCopyFile',
60
+ claimReminders: 'gestorDocumental.document.claimReminders',
59
61
  } as const;
60
62
 
61
63
  /**
@@ -298,6 +300,8 @@ export interface DocumentContract {
298
300
  note?: string | null;
299
301
  // Plazo para atenderlo (ISO 8601).
300
302
  dueAt?: string | null;
303
+ // O el plazo en días hábiles (Ley 19.880): el servicio calcula la fecha con los feriados cargados.
304
+ dueBusinessDays?: number | null;
301
305
  actor: DocumentActor;
302
306
  viewAll?: boolean;
303
307
  };
@@ -331,6 +335,14 @@ export interface DocumentContract {
331
335
  payload: { token: string };
332
336
  response: DocumentEmailCopyViewEntity;
333
337
  };
338
+ /**
339
+ * Recordatorios de plazos que corresponde enviar ahora: lo que vence en un día hábil y lo vencido sin atender. Cada
340
+ * uno se entrega una sola vez (queda marcado al reclamarlo), aunque lo pidan varias instancias del gateway a la vez.
341
+ */
342
+ [DocumentPatterns.claimReminders]: {
343
+ payload: Record<string, never>;
344
+ response: DocumentReminderEntity[];
345
+ };
334
346
  [DocumentPatterns.getEmailCopyFile]: {
335
347
  payload: { token: string };
336
348
  response: DocumentPublicFileResponseEntity;
@@ -0,0 +1,16 @@
1
+ import { type HolidayRemoveResponseEntity, type HolidayResponseEntity } from '../entities';
2
+
3
+ /** Patrones NATS de `holiday`: feriados para contar días hábiles. */
4
+ export const HolidayPatterns = {
5
+ getAll: 'gestorDocumental.holiday.getAll',
6
+ create: 'gestorDocumental.holiday.create',
7
+ remove: 'gestorDocumental.holiday.remove',
8
+ } as const;
9
+
10
+ export interface HolidayContract {
11
+ /** Feriados de un año, en orden. */
12
+ [HolidayPatterns.getAll]: { payload: { year: number }; response: HolidayResponseEntity[] };
13
+ /** `date` como «AAAA-MM-DD». */
14
+ [HolidayPatterns.create]: { payload: { date: string; name: string }; response: HolidayResponseEntity };
15
+ [HolidayPatterns.remove]: { payload: { id: string }; response: HolidayRemoveResponseEntity };
16
+ }
@@ -3,6 +3,8 @@ import { DocumentPatterns, type DocumentContract } from './document.contract';
3
3
  import { DocumentTypePatterns, type DocumentTypeContract } from './documentType.contract';
4
4
  import { IssuingEntityPatterns, type IssuingEntityContract } from './issuingEntity.contract';
5
5
  import { ArchivalSeriesPatterns, type ArchivalSeriesContract } from './archivalSeries.contract';
6
+ import { TextSnippetPatterns, type TextSnippetContract } from './textSnippet.contract';
7
+ import { HolidayPatterns, type HolidayContract } from './holiday.contract';
6
8
  import { ScanPatterns, type ScanContract } from './scan.contract';
7
9
  import { PartsOfficePatterns, type PartsOfficeContract } from './partsOffice.contract';
8
10
  import { ProcedurePatterns, type ProcedureContract } from './procedure.contract';
@@ -22,6 +24,8 @@ export * from './signatureBatch.contract';
22
24
  export * from './workFolder.contract';
23
25
  export * from './scan.contract';
24
26
  export * from './archivalSeries.contract';
27
+ export * from './textSnippet.contract';
28
+ export * from './holiday.contract';
25
29
 
26
30
  /** Patrones NATS de gestor-documental-ms, por recurso: `gestorDocumental.<recurso>.<acción>`. */
27
31
  export const GestorDocumentalPatterns = {
@@ -36,6 +40,8 @@ export const GestorDocumentalPatterns = {
36
40
  workFolder: WorkFolderPatterns,
37
41
  scan: ScanPatterns,
38
42
  archivalSeries: ArchivalSeriesPatterns,
43
+ textSnippet: TextSnippetPatterns,
44
+ holiday: HolidayPatterns,
39
45
  } as const;
40
46
 
41
47
  /** Contrato completo de gestor-documental-ms: la unión de los contratos de sus recursos. */
@@ -49,4 +55,6 @@ export type GestorDocumentalContract = DocumentTypeContract &
49
55
  SignatureBatchContract &
50
56
  WorkFolderContract &
51
57
  ScanContract &
52
- ArchivalSeriesContract;
58
+ ArchivalSeriesContract &
59
+ TextSnippetContract &
60
+ HolidayContract;
@@ -0,0 +1,53 @@
1
+ import { type TextSnippetEntity, type TextSnippetSection } from '../base/entities';
2
+ import {
3
+ type TextSnippetCreateResponseEntity,
4
+ type TextSnippetGetAllResponseEntity,
5
+ type TextSnippetGetByIdResponseEntity,
6
+ type TextSnippetUpdateResponseEntity,
7
+ } from '../entities';
8
+ import { type RpcPage } from './contract';
9
+
10
+ /** Patrones NATS de `textSnippet` (biblioteca de vistos y cláusulas): `<servicio>.<recurso>.<acción>`. */
11
+ export const TextSnippetPatterns = {
12
+ getAll: 'gestorDocumental.textSnippet.getAll',
13
+ getById: 'gestorDocumental.textSnippet.getById',
14
+ create: 'gestorDocumental.textSnippet.create',
15
+ update: 'gestorDocumental.textSnippet.update',
16
+ setEnabled: 'gestorDocumental.textSnippet.setEnabled',
17
+ } as const;
18
+
19
+ /** Datos de un texto de la biblioteca al crearlo o editarlo. */
20
+ export interface TextSnippetWritePayload {
21
+ title: string;
22
+ text: string;
23
+ section: TextSnippetSection;
24
+ keywords?: string[];
25
+ enabled?: boolean;
26
+ }
27
+
28
+ export interface TextSnippetContract {
29
+ [TextSnippetPatterns.getAll]: {
30
+ // sin `page` y `limit` responde todas en una sola página
31
+ payload: {
32
+ pagination?: { page?: number; limit?: number };
33
+ filters?: { search?: string; enabled?: boolean; section?: TextSnippetSection };
34
+ };
35
+ response: RpcPage<TextSnippetGetAllResponseEntity[]>;
36
+ };
37
+ [TextSnippetPatterns.getById]: {
38
+ payload: Pick<TextSnippetEntity, 'id'>;
39
+ response: TextSnippetGetByIdResponseEntity;
40
+ };
41
+ [TextSnippetPatterns.create]: {
42
+ payload: TextSnippetWritePayload;
43
+ response: TextSnippetCreateResponseEntity;
44
+ };
45
+ [TextSnippetPatterns.update]: {
46
+ payload: TextSnippetWritePayload & Pick<TextSnippetEntity, 'id'>;
47
+ response: TextSnippetUpdateResponseEntity;
48
+ };
49
+ [TextSnippetPatterns.setEnabled]: {
50
+ payload: Pick<TextSnippetEntity, 'id' | 'enabled'>;
51
+ response: TextSnippetUpdateResponseEntity;
52
+ };
53
+ }
@@ -293,3 +293,29 @@ export interface CaseFileSharedResponseEntity {
293
293
  allowExport: boolean;
294
294
  entries: CaseFileSharedEntryEntity[];
295
295
  }
296
+
297
+ /** Resultado de una actuación al verificar un ZIP exportado. */
298
+ export type CaseFileVerifyEntryResult =
299
+ /** La huella coincide con la registrada al incorporarla. */
300
+ | 'Match'
301
+ /** La huella no coincide: el archivo cambió. */
302
+ | 'Altered'
303
+ /** El ZIP trae una actuación con esa secuencia que el expediente no tiene. */
304
+ | 'NotInRegistry'
305
+ /** El expediente tiene esa actuación con archivo, pero el ZIP no la trae. */
306
+ | 'Missing'
307
+ /** La actuación no tiene huella registrada (incorporada antes de que se guardaran). */
308
+ | 'NoFingerprint';
309
+
310
+ export interface CaseFileVerifyExportResponseEntity {
311
+ code: string;
312
+ status: CaseFileEntity['status'];
313
+ closedAt: string | null;
314
+ /** Solo si el expediente es público y sin datos sensibles. */
315
+ title: string | null;
316
+ /** Cuántas actuaciones con archivo tiene el expediente registradas. */
317
+ registeredFiles: number;
318
+ /** `true` si todo lo registrado está en el ZIP y todo coincide. */
319
+ intact: boolean;
320
+ entries: { sequence: number; result: CaseFileVerifyEntryResult; voided: boolean }[];
321
+ }
@@ -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
 
@@ -376,6 +383,10 @@ export interface DocumentReassignResponseEntity {
376
383
  */
377
384
  export interface DocumentAgendaItemEntity {
378
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;
379
390
  /** La entrega (lo recibido) o el documento (lo enviado). */
380
391
  id: string;
381
392
  documentId: DocumentEntity['id'];
@@ -495,3 +506,18 @@ export interface DocumentEmailCopyViewEntity {
495
506
  verificationCode: string | null;
496
507
  signers: { fullName: string; position: string | null; signedAt: string | null }[];
497
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
+ }
@@ -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';
@@ -9,3 +9,5 @@ export * from './signatureBatch';
9
9
  export * from './workFolder';
10
10
  export * from './scan';
11
11
  export * from './archivalSeries';
12
+ export * from './textSnippet';
13
+ export * from './holiday';
@@ -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
+ }