@muni-sanfer/types-gestor-documental 0.0.1-beta.23 → 0.0.1-beta.25

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 (34) hide show
  1. package/dist/base/entities.d.ts +132 -2
  2. package/dist/base/entities.js +44 -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 +6 -0
  6. package/dist/contracts/index.d.ts +20 -1
  7. package/dist/contracts/index.js +6 -0
  8. package/dist/contracts/repositoryExport.contract.d.ts +2 -0
  9. package/dist/contracts/retention.contract.d.ts +58 -0
  10. package/dist/contracts/retention.contract.js +11 -0
  11. package/dist/entities/accessRequest/accessRequest.entity.d.ts +73 -0
  12. package/dist/entities/accessRequest/accessRequest.entity.js +2 -0
  13. package/dist/entities/accessRequest/index.d.ts +1 -0
  14. package/dist/entities/accessRequest/index.js +17 -0
  15. package/dist/entities/archivalSeries/archivalSeries.entity.d.ts +5 -0
  16. package/dist/entities/index.d.ts +2 -0
  17. package/dist/entities/index.js +2 -0
  18. package/dist/entities/retention/index.d.ts +1 -0
  19. package/dist/entities/retention/index.js +17 -0
  20. package/dist/entities/retention/retention.entity.d.ts +49 -0
  21. package/dist/entities/retention/retention.entity.js +2 -0
  22. package/package.json +1 -1
  23. package/src/base/entities.ts +161 -2
  24. package/src/contracts/accessRequest.contract.ts +81 -0
  25. package/src/contracts/archivalSeries.contract.ts +6 -0
  26. package/src/contracts/index.ts +9 -1
  27. package/src/contracts/repositoryExport.contract.ts +2 -0
  28. package/src/contracts/retention.contract.ts +44 -0
  29. package/src/entities/accessRequest/accessRequest.entity.ts +78 -0
  30. package/src/entities/accessRequest/index.ts +1 -0
  31. package/src/entities/archivalSeries/archivalSeries.entity.ts +5 -0
  32. package/src/entities/index.ts +2 -0
  33. package/src/entities/retention/index.ts +1 -0
  34. package/src/entities/retention/retention.entity.ts +53 -0
@@ -33,7 +33,7 @@ export declare const DocumentParticipantStatus: {
33
33
  Resolved: "Resolved";
34
34
  Rejected: "Rejected";
35
35
  };
36
- export type DocumentTrackingAction = 'Created' | 'Updated' | 'Submitted' | 'Visaed' | 'Signed' | 'Rejected' | 'Finished' | 'Discarded' | 'Numbered' | 'NumberAnnulled' | 'Annulled' | 'Delivered' | 'Derived' | 'Reassigned' | 'Dispatched' | 'DispatchReturned' | 'Received' | 'EmailCopySent' | 'EmailCopyOpened';
36
+ export type DocumentTrackingAction = 'Created' | 'Updated' | 'Submitted' | 'Visaed' | 'Signed' | 'Rejected' | 'Finished' | 'Discarded' | 'Numbered' | 'NumberAnnulled' | 'Annulled' | 'Delivered' | 'Derived' | 'Reassigned' | 'Dispatched' | 'DispatchReturned' | 'Received' | 'EmailCopySent' | 'EmailCopyOpened' | 'DispositionRecorded';
37
37
  export declare const DocumentTrackingAction: {
38
38
  Created: "Created";
39
39
  Updated: "Updated";
@@ -54,6 +54,7 @@ export declare const DocumentTrackingAction: {
54
54
  Received: "Received";
55
55
  EmailCopySent: "EmailCopySent";
56
56
  EmailCopyOpened: "EmailCopyOpened";
57
+ DispositionRecorded: "DispositionRecorded";
57
58
  };
58
59
  export type DocumentOrigin = 'Internal' | 'DocDigital';
59
60
  export declare const DocumentOrigin: {
@@ -146,7 +147,7 @@ export declare const CaseFileActorType: {
146
147
  PrivateInstitution: "PrivateInstitution";
147
148
  Official: "Official";
148
149
  };
149
- export type CaseFileTrackingAction = 'Created' | 'Updated' | 'EntryAdded' | 'EntryVoided' | 'EntryMoved' | 'ParticipantAdded' | 'ParticipantRemoved' | 'Closed' | 'Exported' | 'ShareLinkCreated' | 'ShareLinkRevoked';
150
+ export type CaseFileTrackingAction = 'Created' | 'Updated' | 'EntryAdded' | 'EntryVoided' | 'EntryMoved' | 'ParticipantAdded' | 'ParticipantRemoved' | 'Closed' | 'Exported' | 'ShareLinkCreated' | 'ShareLinkRevoked' | 'DispositionRecorded';
150
151
  export declare const CaseFileTrackingAction: {
151
152
  Created: "Created";
152
153
  Updated: "Updated";
@@ -159,6 +160,7 @@ export declare const CaseFileTrackingAction: {
159
160
  Exported: "Exported";
160
161
  ShareLinkCreated: "ShareLinkCreated";
161
162
  ShareLinkRevoked: "ShareLinkRevoked";
163
+ DispositionRecorded: "DispositionRecorded";
162
164
  };
163
165
  export type CaseFileAccessAction = 'Viewed' | 'FileDownloaded' | 'Exported';
164
166
  export declare const CaseFileAccessAction: {
@@ -226,6 +228,53 @@ export declare const AuditAction: {
226
228
  Removed: "Removed";
227
229
  Exported: "Exported";
228
230
  };
231
+ export type FinalDisposition = 'Permanent' | 'Eliminate' | 'Select';
232
+ export declare const FinalDisposition: {
233
+ Permanent: "Permanent";
234
+ Eliminate: "Eliminate";
235
+ Select: "Select";
236
+ };
237
+ export type DispositionKind = 'Transfer' | 'Elimination';
238
+ export declare const DispositionKind: {
239
+ Transfer: "Transfer";
240
+ Elimination: "Elimination";
241
+ };
242
+ export type AccessRequestChannel = 'Portal' | 'Email' | 'InPerson' | 'Letter';
243
+ export declare const AccessRequestChannel: {
244
+ Portal: "Portal";
245
+ Email: "Email";
246
+ InPerson: "InPerson";
247
+ Letter: "Letter";
248
+ };
249
+ export type AccessRequestStatus = 'Received' | 'InCorrection' | 'InProgress' | 'Resolved';
250
+ export declare const AccessRequestStatus: {
251
+ Received: "Received";
252
+ InCorrection: "InCorrection";
253
+ InProgress: "InProgress";
254
+ Resolved: "Resolved";
255
+ };
256
+ export type AccessRequestResolution = 'Delivered' | 'PartiallyDelivered' | 'Denied' | 'Derived' | 'NonExistent' | 'Withdrawn';
257
+ export declare const AccessRequestResolution: {
258
+ Delivered: "Delivered";
259
+ PartiallyDelivered: "PartiallyDelivered";
260
+ Denied: "Denied";
261
+ Derived: "Derived";
262
+ NonExistent: "NonExistent";
263
+ Withdrawn: "Withdrawn";
264
+ };
265
+ export type AccessRequestEventAction = 'Received' | 'Updated' | 'CorrectionRequested' | 'Corrected' | 'Assigned' | 'ThirdPartyNotified' | 'OppositionRegistered' | 'Extended' | 'Resolved' | 'AppealRegistered';
266
+ export declare const AccessRequestEventAction: {
267
+ Received: "Received";
268
+ Updated: "Updated";
269
+ CorrectionRequested: "CorrectionRequested";
270
+ Corrected: "Corrected";
271
+ Assigned: "Assigned";
272
+ ThirdPartyNotified: "ThirdPartyNotified";
273
+ OppositionRegistered: "OppositionRegistered";
274
+ Extended: "Extended";
275
+ Resolved: "Resolved";
276
+ AppealRegistered: "AppealRegistered";
277
+ };
229
278
  export interface DocumentTypeEntity {
230
279
  id: string;
231
280
  name: string;
@@ -306,6 +355,10 @@ export interface DocumentEntity {
306
355
  externalRecipients?: DocumentExternalRecipientEntity[];
307
356
  emailCopies?: DocumentEmailCopyEntity[];
308
357
  accesses?: DocumentAccessEntity[];
358
+ disposition?: DispositionRecordEntity | null;
359
+ dispositionId?: string | null;
360
+ accessRequestResponses?: AccessRequestEntity[];
361
+ accessRequestDeliveries?: AccessRequestDocumentEntity[];
309
362
  dispatch?: DocumentDispatchEntity | null;
310
363
  docDigitalInbound?: DocDigitalInboundEntity | null;
311
364
  deleted: boolean;
@@ -462,6 +515,8 @@ export interface CaseFileEntity {
462
515
  responsibleFullName: string;
463
516
  responsiblePosition?: string | null;
464
517
  closedAt?: string | null;
518
+ disposition?: DispositionRecordEntity | null;
519
+ dispositionId?: string | null;
465
520
  closedByEmployeeId?: string | null;
466
521
  closedByFullName?: string | null;
467
522
  closingNote?: string | null;
@@ -699,9 +754,14 @@ export interface ArchivalSeriesEntity {
699
754
  name: string;
700
755
  section?: string | null;
701
756
  description?: string | null;
757
+ managementYears?: number | null;
758
+ centralYears?: number | null;
759
+ finalDisposition?: FinalDisposition | null;
760
+ retentionNote?: string | null;
702
761
  enabled: boolean;
703
762
  documentTypes?: DocumentTypeEntity[];
704
763
  caseFiles?: CaseFileEntity[];
764
+ dispositions?: DispositionRecordEntity[];
705
765
  deleted: boolean;
706
766
  createdAt: string;
707
767
  updatedAt: string;
@@ -815,6 +875,76 @@ export interface AuditLogEntity {
815
875
  employeeFullName: string;
816
876
  createdAt: string;
817
877
  }
878
+ export interface DispositionRecordEntity {
879
+ id: string;
880
+ kind: DispositionKind;
881
+ number: number;
882
+ year: number;
883
+ observation?: string | null;
884
+ series?: ArchivalSeriesEntity;
885
+ seriesId: string;
886
+ documents?: DocumentEntity[];
887
+ caseFiles?: CaseFileEntity[];
888
+ createdByEmployeeId: string;
889
+ createdByFullName: string;
890
+ createdAt: string;
891
+ }
892
+ export interface AccessRequestEntity {
893
+ id: string;
894
+ number: number;
895
+ year: number;
896
+ externalFolio?: string | null;
897
+ channel: AccessRequestChannel;
898
+ receivedAt: string;
899
+ requesterName: string;
900
+ requesterEmail?: string | null;
901
+ requesterAddress?: string | null;
902
+ requestText: string;
903
+ deliveryFormat?: string | null;
904
+ status: AccessRequestStatus;
905
+ correctionRequestedAt?: string | null;
906
+ correctionDueAt?: string | null;
907
+ correctedAt?: string | null;
908
+ dueAt: string;
909
+ extendedAt?: string | null;
910
+ extensionNote?: string | null;
911
+ assigneeEmployeeId?: string | null;
912
+ assigneeFullName?: string | null;
913
+ thirdPartyNotifiedAt?: string | null;
914
+ oppositionDueAt?: string | null;
915
+ thirdPartyOpposed?: boolean | null;
916
+ resolution?: AccessRequestResolution | null;
917
+ resolvedAt?: string | null;
918
+ denialGrounds: string[];
919
+ derivedTo?: string | null;
920
+ resolutionNote?: string | null;
921
+ responseDocument?: DocumentEntity | null;
922
+ responseDocumentId?: string | null;
923
+ appealedAt?: string | null;
924
+ appealNote?: string | null;
925
+ createdByEmployeeId: string;
926
+ createdByFullName: string;
927
+ documents?: AccessRequestDocumentEntity[];
928
+ events?: AccessRequestEventEntity[];
929
+ createdAt: string;
930
+ updatedAt: string;
931
+ }
932
+ export interface AccessRequestDocumentEntity {
933
+ accessRequest?: AccessRequestEntity;
934
+ accessRequestId: string;
935
+ document?: DocumentEntity;
936
+ documentId: string;
937
+ }
938
+ export interface AccessRequestEventEntity {
939
+ id: string;
940
+ action: AccessRequestEventAction;
941
+ note?: string | null;
942
+ employeeId?: string | null;
943
+ employeeFullName: string;
944
+ accessRequest?: AccessRequestEntity;
945
+ accessRequestId: string;
946
+ createdAt: string;
947
+ }
818
948
  type JsonValue = string | number | boolean | {
819
949
  [key in string]?: JsonValue;
820
950
  } | Array<JsonValue> | null;
@@ -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.AuditAction = exports.AuditEntity = exports.DocumentAccessAction = exports.QualityMetricKey = exports.ServiceOutageKind = 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;
4
+ exports.AccessRequestEventAction = exports.AccessRequestResolution = exports.AccessRequestStatus = exports.AccessRequestChannel = exports.DispositionKind = exports.FinalDisposition = exports.AuditAction = exports.AuditEntity = exports.DocumentAccessAction = exports.QualityMetricKey = exports.ServiceOutageKind = 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',
@@ -52,6 +52,7 @@ exports.DocumentTrackingAction = {
52
52
  Received: 'Received',
53
53
  EmailCopySent: 'EmailCopySent',
54
54
  EmailCopyOpened: 'EmailCopyOpened',
55
+ DispositionRecorded: 'DispositionRecorded',
55
56
  };
56
57
  exports.DocumentOrigin = {
57
58
  Internal: 'Internal',
@@ -142,6 +143,7 @@ exports.CaseFileTrackingAction = {
142
143
  Exported: 'Exported',
143
144
  ShareLinkCreated: 'ShareLinkCreated',
144
145
  ShareLinkRevoked: 'ShareLinkRevoked',
146
+ DispositionRecorded: 'DispositionRecorded',
145
147
  };
146
148
  exports.CaseFileAccessAction = {
147
149
  Viewed: 'Viewed',
@@ -200,3 +202,44 @@ exports.AuditAction = {
200
202
  Removed: 'Removed',
201
203
  Exported: 'Exported',
202
204
  };
205
+ exports.FinalDisposition = {
206
+ Permanent: 'Permanent',
207
+ Eliminate: 'Eliminate',
208
+ Select: 'Select',
209
+ };
210
+ exports.DispositionKind = {
211
+ Transfer: 'Transfer',
212
+ Elimination: 'Elimination',
213
+ };
214
+ exports.AccessRequestChannel = {
215
+ Portal: 'Portal',
216
+ Email: 'Email',
217
+ InPerson: 'InPerson',
218
+ Letter: 'Letter',
219
+ };
220
+ exports.AccessRequestStatus = {
221
+ Received: 'Received',
222
+ InCorrection: 'InCorrection',
223
+ InProgress: 'InProgress',
224
+ Resolved: 'Resolved',
225
+ };
226
+ exports.AccessRequestResolution = {
227
+ Delivered: 'Delivered',
228
+ PartiallyDelivered: 'PartiallyDelivered',
229
+ Denied: 'Denied',
230
+ Derived: 'Derived',
231
+ NonExistent: 'NonExistent',
232
+ Withdrawn: 'Withdrawn',
233
+ };
234
+ exports.AccessRequestEventAction = {
235
+ Received: 'Received',
236
+ Updated: 'Updated',
237
+ CorrectionRequested: 'CorrectionRequested',
238
+ Corrected: 'Corrected',
239
+ Assigned: 'Assigned',
240
+ ThirdPartyNotified: 'ThirdPartyNotified',
241
+ OppositionRegistered: 'OppositionRegistered',
242
+ Extended: 'Extended',
243
+ Resolved: 'Resolved',
244
+ AppealRegistered: 'AppealRegistered',
245
+ };
@@ -0,0 +1,109 @@
1
+ import { type AccessRequestChannel, type AccessRequestResolution } from '../base/entities';
2
+ import { type AccessRequestDetailEntity, type AccessRequestListItemEntity, type AccessRequestSummaryEntity } from '../entities';
3
+ import { type RpcPage } from './contract';
4
+ /** Patrones NATS de `accessRequest`: solicitudes de acceso a la información pública (Ley 20.285). */
5
+ export declare const AccessRequestPatterns: {
6
+ readonly getAll: "gestorDocumental.accessRequest.getAll";
7
+ readonly getById: "gestorDocumental.accessRequest.getById";
8
+ readonly getSummary: "gestorDocumental.accessRequest.getSummary";
9
+ readonly create: "gestorDocumental.accessRequest.create";
10
+ readonly update: "gestorDocumental.accessRequest.update";
11
+ readonly act: "gestorDocumental.accessRequest.act";
12
+ };
13
+ export interface AccessRequestWritePayload {
14
+ externalFolio?: string | null;
15
+ channel: AccessRequestChannel;
16
+ /** Fecha y hora de ingreso (ISO): desde ahí corren los 20 días hábiles. */
17
+ receivedAt: string;
18
+ requesterName: string;
19
+ requesterEmail?: string | null;
20
+ requesterAddress?: string | null;
21
+ requestText: string;
22
+ deliveryFormat?: string | null;
23
+ }
24
+ /** Lo que se hace con una solicitud, un paso a la vez. */
25
+ export type AccessRequestAction = {
26
+ type: 'requestCorrection';
27
+ note: string;
28
+ } | {
29
+ type: 'registerCorrection';
30
+ correctedAt?: string | null;
31
+ note?: string | null;
32
+ } | {
33
+ type: 'assign';
34
+ employeeId: string;
35
+ fullName: string;
36
+ note?: string | null;
37
+ } | {
38
+ type: 'notifyThirdParty';
39
+ note: string;
40
+ } | {
41
+ type: 'registerOpposition';
42
+ opposed: boolean;
43
+ note?: string | null;
44
+ } | {
45
+ type: 'extend';
46
+ note: string;
47
+ } | {
48
+ type: 'resolve';
49
+ resolution: AccessRequestResolution;
50
+ grounds?: string[];
51
+ derivedTo?: string | null;
52
+ note?: string | null;
53
+ responseDocumentId?: string | null;
54
+ documentIds?: string[];
55
+ } | {
56
+ type: 'registerAppeal';
57
+ appealedAt?: string | null;
58
+ note: string;
59
+ };
60
+ export interface AccessRequestActor {
61
+ employeeId: string;
62
+ fullName: string;
63
+ }
64
+ export interface AccessRequestContract {
65
+ [AccessRequestPatterns.getAll]: {
66
+ payload: {
67
+ status?: 'open' | 'resolved' | 'all';
68
+ year?: number | null;
69
+ search?: string;
70
+ page?: number;
71
+ limit?: number;
72
+ };
73
+ response: RpcPage<AccessRequestListItemEntity[]>;
74
+ };
75
+ [AccessRequestPatterns.getById]: {
76
+ payload: {
77
+ id: string;
78
+ };
79
+ response: AccessRequestDetailEntity;
80
+ };
81
+ [AccessRequestPatterns.getSummary]: {
82
+ payload: {
83
+ year: number;
84
+ };
85
+ response: AccessRequestSummaryEntity;
86
+ };
87
+ [AccessRequestPatterns.create]: {
88
+ payload: AccessRequestWritePayload & {
89
+ actor: AccessRequestActor;
90
+ };
91
+ response: AccessRequestDetailEntity;
92
+ };
93
+ /** Corrige los datos mientras no está resuelta. */
94
+ [AccessRequestPatterns.update]: {
95
+ payload: AccessRequestWritePayload & {
96
+ id: string;
97
+ actor: AccessRequestActor;
98
+ };
99
+ response: AccessRequestDetailEntity;
100
+ };
101
+ [AccessRequestPatterns.act]: {
102
+ payload: {
103
+ id: string;
104
+ action: AccessRequestAction;
105
+ actor: AccessRequestActor;
106
+ };
107
+ response: AccessRequestDetailEntity;
108
+ };
109
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AccessRequestPatterns = void 0;
4
+ /** Patrones NATS de `accessRequest`: solicitudes de acceso a la información pública (Ley 20.285). */
5
+ exports.AccessRequestPatterns = {
6
+ getAll: 'gestorDocumental.accessRequest.getAll',
7
+ getById: 'gestorDocumental.accessRequest.getById',
8
+ getSummary: 'gestorDocumental.accessRequest.getSummary',
9
+ create: 'gestorDocumental.accessRequest.create',
10
+ update: 'gestorDocumental.accessRequest.update',
11
+ act: 'gestorDocumental.accessRequest.act',
12
+ };
@@ -1,3 +1,4 @@
1
+ import { type FinalDisposition } from '../base/entities';
1
2
  import { type ArchivalSeriesEntity } from '../base/entities';
2
3
  import { type ArchivalSeriesCreateResponseEntity, type ArchivalSeriesGetAllResponseEntity, type ArchivalSeriesGetByIdResponseEntity, type ArchivalSeriesUpdateResponseEntity } from '../entities';
3
4
  import { type RpcPage } from './contract';
@@ -16,6 +17,11 @@ export interface ArchivalSeriesWritePayload {
16
17
  section?: string | null;
17
18
  description?: string | null;
18
19
  enabled?: boolean;
20
+ /** Tabla de Retención Documental: los tres juntos o ninguno. */
21
+ managementYears?: number | null;
22
+ centralYears?: number | null;
23
+ finalDisposition?: FinalDisposition | null;
24
+ retentionNote?: string | null;
19
25
  }
20
26
  export interface ArchivalSeriesContract {
21
27
  [ArchivalSeriesPatterns.getAll]: {
@@ -9,6 +9,8 @@ import { type IndicatorsContract } from './indicators.contract';
9
9
  import { type AuditContract } from './audit.contract';
10
10
  import { type SignatureCheckContract } from './signatureCheck.contract';
11
11
  import { type RepositoryExportContract } from './repositoryExport.contract';
12
+ import { type RetentionContract } from './retention.contract';
13
+ import { type AccessRequestContract } from './accessRequest.contract';
12
14
  import { type ScanContract } from './scan.contract';
13
15
  import { type PartsOfficeContract } from './partsOffice.contract';
14
16
  import { type ProcedureContract } from './procedure.contract';
@@ -33,6 +35,8 @@ export * from './indicators.contract';
33
35
  export * from './audit.contract';
34
36
  export * from './signatureCheck.contract';
35
37
  export * from './repositoryExport.contract';
38
+ export * from './retention.contract';
39
+ export * from './accessRequest.contract';
36
40
  /** Patrones NATS de gestor-documental-ms, por recurso: `gestorDocumental.<recurso>.<acción>`. */
37
41
  export declare const GestorDocumentalPatterns: {
38
42
  readonly documentType: {
@@ -198,6 +202,21 @@ export declare const GestorDocumentalPatterns: {
198
202
  readonly getCaseFiles: "gestorDocumental.repositoryExport.getCaseFiles";
199
203
  readonly record: "gestorDocumental.repositoryExport.record";
200
204
  };
205
+ readonly retention: {
206
+ readonly getSummary: "gestorDocumental.retention.getSummary";
207
+ readonly getDueItems: "gestorDocumental.retention.getDueItems";
208
+ readonly createRecord: "gestorDocumental.retention.createRecord";
209
+ readonly getRecords: "gestorDocumental.retention.getRecords";
210
+ readonly getRecordPdf: "gestorDocumental.retention.getRecordPdf";
211
+ };
212
+ readonly accessRequest: {
213
+ readonly getAll: "gestorDocumental.accessRequest.getAll";
214
+ readonly getById: "gestorDocumental.accessRequest.getById";
215
+ readonly getSummary: "gestorDocumental.accessRequest.getSummary";
216
+ readonly create: "gestorDocumental.accessRequest.create";
217
+ readonly update: "gestorDocumental.accessRequest.update";
218
+ readonly act: "gestorDocumental.accessRequest.act";
219
+ };
201
220
  };
202
221
  /** Contrato completo de gestor-documental-ms: la unión de los contratos de sus recursos. */
203
- export type GestorDocumentalContract = DocumentTypeContract & DocumentContract & ProcedureContract & IssuingEntityContract & CaseFileContract & PartsOfficeContract & RegisterBookContract & SignatureBatchContract & WorkFolderContract & ScanContract & ArchivalSeriesContract & TextSnippetContract & HolidayContract & IndicatorsContract & AuditContract & SignatureCheckContract & RepositoryExportContract;
222
+ export type GestorDocumentalContract = DocumentTypeContract & DocumentContract & ProcedureContract & IssuingEntityContract & CaseFileContract & PartsOfficeContract & RegisterBookContract & SignatureBatchContract & WorkFolderContract & ScanContract & ArchivalSeriesContract & TextSnippetContract & HolidayContract & IndicatorsContract & AuditContract & SignatureCheckContract & RepositoryExportContract & RetentionContract & AccessRequestContract;
@@ -26,6 +26,8 @@ const indicators_contract_1 = require("./indicators.contract");
26
26
  const audit_contract_1 = require("./audit.contract");
27
27
  const signatureCheck_contract_1 = require("./signatureCheck.contract");
28
28
  const repositoryExport_contract_1 = require("./repositoryExport.contract");
29
+ const retention_contract_1 = require("./retention.contract");
30
+ const accessRequest_contract_1 = require("./accessRequest.contract");
29
31
  const scan_contract_1 = require("./scan.contract");
30
32
  const partsOffice_contract_1 = require("./partsOffice.contract");
31
33
  const procedure_contract_1 = require("./procedure.contract");
@@ -50,6 +52,8 @@ __exportStar(require("./indicators.contract"), exports);
50
52
  __exportStar(require("./audit.contract"), exports);
51
53
  __exportStar(require("./signatureCheck.contract"), exports);
52
54
  __exportStar(require("./repositoryExport.contract"), exports);
55
+ __exportStar(require("./retention.contract"), exports);
56
+ __exportStar(require("./accessRequest.contract"), exports);
53
57
  /** Patrones NATS de gestor-documental-ms, por recurso: `gestorDocumental.<recurso>.<acción>`. */
54
58
  exports.GestorDocumentalPatterns = {
55
59
  documentType: documentType_contract_1.DocumentTypePatterns,
@@ -69,4 +73,6 @@ exports.GestorDocumentalPatterns = {
69
73
  audit: audit_contract_1.AuditPatterns,
70
74
  signatureCheck: signatureCheck_contract_1.SignatureCheckPatterns,
71
75
  repositoryExport: repositoryExport_contract_1.RepositoryExportPatterns,
76
+ retention: retention_contract_1.RetentionPatterns,
77
+ accessRequest: accessRequest_contract_1.AccessRequestPatterns,
72
78
  };
@@ -14,6 +14,8 @@ export interface RepositoryExportQuery {
14
14
  from?: string | null;
15
15
  to?: string | null;
16
16
  scope?: RepositoryExportScope;
17
+ /** Solo lo incluido en un acta de transferencia: el paquete para el Archivo Nacional. */
18
+ dispositionId?: string | null;
17
19
  }
18
20
  export interface RepositoryExportContract {
19
21
  [RepositoryExportPatterns.getSummary]: {
@@ -0,0 +1,58 @@
1
+ import { type DispositionKind } from '../base/entities';
2
+ import { type DispositionRecordResponseEntity, type IndicatorsFileEntity, type RetentionDueItemEntity, type RetentionSummaryEntity } from '../entities';
3
+ import { type RpcPage } from './contract';
4
+ /** Patrones NATS de `retention`: plazos de retención por serie y actas de transferencia o eliminación. */
5
+ export declare const RetentionPatterns: {
6
+ readonly getSummary: "gestorDocumental.retention.getSummary";
7
+ readonly getDueItems: "gestorDocumental.retention.getDueItems";
8
+ readonly createRecord: "gestorDocumental.retention.createRecord";
9
+ readonly getRecords: "gestorDocumental.retention.getRecords";
10
+ readonly getRecordPdf: "gestorDocumental.retention.getRecordPdf";
11
+ };
12
+ export interface RetentionContract {
13
+ [RetentionPatterns.getSummary]: {
14
+ payload: Record<string, never>;
15
+ response: RetentionSummaryEntity;
16
+ };
17
+ /** Lo vencido de una serie, de lo más antiguo a lo más reciente. */
18
+ [RetentionPatterns.getDueItems]: {
19
+ payload: {
20
+ seriesId: string;
21
+ page?: number;
22
+ limit?: number;
23
+ };
24
+ response: RpcPage<RetentionDueItemEntity[]>;
25
+ };
26
+ /**
27
+ * Emite el acta con lo elegido (todo debe estar vencido y sin acta). Según la serie: conservación permanente →
28
+ * transferencia; eliminación → eliminación; selección → cualquiera de las dos.
29
+ */
30
+ [RetentionPatterns.createRecord]: {
31
+ payload: {
32
+ kind: DispositionKind;
33
+ seriesId: string;
34
+ documentIds: string[];
35
+ caseFileIds: string[];
36
+ observation?: string | null;
37
+ actor: {
38
+ employeeId: string;
39
+ fullName: string;
40
+ };
41
+ };
42
+ response: DispositionRecordResponseEntity;
43
+ };
44
+ [RetentionPatterns.getRecords]: {
45
+ payload: {
46
+ year: number;
47
+ };
48
+ response: DispositionRecordResponseEntity[];
49
+ };
50
+ /** El acta en PDF, con lo que incluye, para firmarla y archivarla. */
51
+ [RetentionPatterns.getRecordPdf]: {
52
+ payload: {
53
+ id: string;
54
+ generatedBy: string;
55
+ };
56
+ response: IndicatorsFileEntity;
57
+ };
58
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RetentionPatterns = void 0;
4
+ /** Patrones NATS de `retention`: plazos de retención por serie y actas de transferencia o eliminación. */
5
+ exports.RetentionPatterns = {
6
+ getSummary: 'gestorDocumental.retention.getSummary',
7
+ getDueItems: 'gestorDocumental.retention.getDueItems',
8
+ createRecord: 'gestorDocumental.retention.createRecord',
9
+ getRecords: 'gestorDocumental.retention.getRecords',
10
+ getRecordPdf: 'gestorDocumental.retention.getRecordPdf',
11
+ };
@@ -0,0 +1,73 @@
1
+ import { type AccessRequestChannel, type AccessRequestEventAction, type AccessRequestResolution, type AccessRequestStatus } from '../../base/entities';
2
+ /** Semáforo del plazo de respuesta: a tiempo, por vencer (2 días hábiles o menos) o vencido. */
3
+ export type AccessRequestDueStatus = 'OnTime' | 'DueSoon' | 'Overdue';
4
+ export interface AccessRequestListItemEntity {
5
+ id: string;
6
+ /** «N° 15/2026». */
7
+ label: string;
8
+ externalFolio: string | null;
9
+ channel: AccessRequestChannel;
10
+ requesterName: string;
11
+ requestText: string;
12
+ receivedAt: string;
13
+ dueAt: string;
14
+ status: AccessRequestStatus;
15
+ resolution: AccessRequestResolution | null;
16
+ assigneeFullName: string | null;
17
+ /** Solo mientras está abierta. */
18
+ dueStatus: AccessRequestDueStatus | null;
19
+ businessDaysLeft: number | null;
20
+ /** Ya resuelta: si se respondió dentro del plazo. */
21
+ resolvedOnTime: boolean | null;
22
+ }
23
+ export interface AccessRequestDocumentLinkEntity {
24
+ id: string;
25
+ folio: string | null;
26
+ subject: string;
27
+ }
28
+ export interface AccessRequestDetailEntity extends AccessRequestListItemEntity {
29
+ year: number;
30
+ number: number;
31
+ requesterEmail: string | null;
32
+ requesterAddress: string | null;
33
+ deliveryFormat: string | null;
34
+ correctionRequestedAt: string | null;
35
+ correctionDueAt: string | null;
36
+ correctedAt: string | null;
37
+ extendedAt: string | null;
38
+ extensionNote: string | null;
39
+ assigneeEmployeeId: string | null;
40
+ thirdPartyNotifiedAt: string | null;
41
+ oppositionDueAt: string | null;
42
+ thirdPartyOpposed: boolean | null;
43
+ resolvedAt: string | null;
44
+ denialGrounds: string[];
45
+ derivedTo: string | null;
46
+ resolutionNote: string | null;
47
+ responseDocument: AccessRequestDocumentLinkEntity | null;
48
+ documents: AccessRequestDocumentLinkEntity[];
49
+ appealedAt: string | null;
50
+ appealNote: string | null;
51
+ createdByFullName: string;
52
+ /** Se puede prorrogar: abierta, sin prórroga y antes de vencer. */
53
+ canExtend: boolean;
54
+ events: {
55
+ action: AccessRequestEventAction;
56
+ note: string | null;
57
+ employeeFullName: string;
58
+ createdAt: string;
59
+ }[];
60
+ }
61
+ export interface AccessRequestSummaryEntity {
62
+ year: number;
63
+ total: number;
64
+ open: number;
65
+ overdue: number;
66
+ dueSoon: number;
67
+ resolved: Record<AccessRequestResolution, number>;
68
+ /** Respondidas dentro del plazo sobre las respondidas, en %. */
69
+ onTimeRate: number | null;
70
+ /** Días hábiles promedio entre el ingreso (o la subsanación) y la respuesta. */
71
+ averageBusinessDays: number | null;
72
+ appealed: number;
73
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1 @@
1
+ export * from './accessRequest.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("./accessRequest.entity"), exports);
@@ -6,6 +6,11 @@ export interface ArchivalSeriesGetAllResponseEntity {
6
6
  section: ArchivalSeriesEntity['section'];
7
7
  description: ArchivalSeriesEntity['description'];
8
8
  enabled: ArchivalSeriesEntity['enabled'];
9
+ /** Tabla de Retención Documental: años en archivo de gestión y central, y qué se hace después. */
10
+ managementYears: ArchivalSeriesEntity['managementYears'];
11
+ centralYears: ArchivalSeriesEntity['centralYears'];
12
+ finalDisposition: ArchivalSeriesEntity['finalDisposition'];
13
+ retentionNote: ArchivalSeriesEntity['retentionNote'];
9
14
  /** Cuántos tipos documentales y expedientes la usan. */
10
15
  documentTypes: number;
11
16
  caseFiles: number;