@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.
- package/dist/base/entities.d.ts +27 -0
- package/dist/base/entities.js +8 -1
- package/dist/contracts/caseFile.contract.d.ts +16 -1
- package/dist/contracts/caseFile.contract.js +1 -0
- package/dist/contracts/document.contract.d.ts +11 -1
- package/dist/contracts/document.contract.js +1 -0
- package/dist/contracts/holiday.contract.d.ts +30 -0
- package/dist/contracts/holiday.contract.js +9 -0
- package/dist/contracts/index.d.ts +19 -1
- package/dist/contracts/index.js +6 -0
- package/dist/contracts/textSnippet.contract.d.ts +51 -0
- package/dist/contracts/textSnippet.contract.js +11 -0
- package/dist/entities/caseFile/caseFile.entity.d.ts +28 -0
- package/dist/entities/document/document.entity.d.ts +24 -0
- package/dist/entities/holiday/holiday.entity.d.ts +10 -0
- package/dist/entities/holiday/holiday.entity.js +2 -0
- package/dist/entities/holiday/index.d.ts +1 -0
- package/dist/entities/holiday/index.js +17 -0
- package/dist/entities/index.d.ts +2 -0
- package/dist/entities/index.js +2 -0
- package/dist/entities/textSnippet/index.d.ts +1 -0
- package/dist/entities/textSnippet/index.js +17 -0
- package/dist/entities/textSnippet/textSnippet.entity.d.ts +20 -0
- package/dist/entities/textSnippet/textSnippet.entity.js +2 -0
- package/package.json +1 -1
- package/src/base/entities.ts +31 -0
- package/src/contracts/caseFile.contract.ts +10 -0
- package/src/contracts/document.contract.ts +12 -0
- package/src/contracts/holiday.contract.ts +16 -0
- package/src/contracts/index.ts +9 -1
- package/src/contracts/textSnippet.contract.ts +53 -0
- package/src/entities/caseFile/caseFile.entity.ts +26 -0
- package/src/entities/document/document.entity.ts +26 -0
- package/src/entities/holiday/holiday.entity.ts +11 -0
- package/src/entities/holiday/index.ts +1 -0
- package/src/entities/index.ts +2 -0
- package/src/entities/textSnippet/index.ts +1 -0
- package/src/entities/textSnippet/textSnippet.entity.ts +24 -0
package/dist/base/entities.d.ts
CHANGED
|
@@ -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;
|
package/dist/base/entities.js
CHANGED
|
@@ -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;
|
package/dist/contracts/index.js
CHANGED
|
@@ -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 @@
|
|
|
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);
|
package/dist/entities/index.d.ts
CHANGED
package/dist/entities/index.js
CHANGED
|
@@ -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
|
+
}
|
package/package.json
CHANGED
package/src/base/entities.ts
CHANGED
|
@@ -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
|
+
}
|
package/src/contracts/index.ts
CHANGED
|
@@ -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 @@
|
|
|
1
|
+
export * from './holiday.entity';
|
package/src/entities/index.ts
CHANGED
|
@@ -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
|
+
}
|