@muni-sanfer/types-gestor-documental 0.0.1-beta.45 → 0.0.1-beta.47

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.
@@ -660,6 +660,10 @@ export interface ProcedureEntity {
660
660
  cpatId?: string | null;
661
661
  cpatCode?: string | null;
662
662
  description?: string | null;
663
+ kind?: string | null;
664
+ responsibleArea?: string | null;
665
+ cpatStatus?: string | null;
666
+ fromCpat: boolean;
663
667
  enabled: boolean;
664
668
  caseFiles?: CaseFileEntity[];
665
669
  documents?: DocumentEntity[];
@@ -926,6 +930,12 @@ export interface HolidayEntity {
926
930
  createdAt: string;
927
931
  updatedAt: string;
928
932
  }
933
+ export interface ProcedureSyncEntity {
934
+ institutionCode: string;
935
+ syncedAt: string;
936
+ total: number;
937
+ resourceName: string;
938
+ }
929
939
  export interface HolidaySyncEntity {
930
940
  year: number;
931
941
  syncedAt: string;
@@ -99,9 +99,8 @@ export declare const GestorDocumentalPatterns: {
99
99
  readonly procedure: {
100
100
  readonly getAll: "gestorDocumental.procedure.getAll";
101
101
  readonly getById: "gestorDocumental.procedure.getById";
102
- readonly create: "gestorDocumental.procedure.create";
103
- readonly update: "gestorDocumental.procedure.update";
104
- readonly setEnabled: "gestorDocumental.procedure.setEnabled";
102
+ readonly getCpatStatus: "gestorDocumental.procedure.getCpatStatus";
103
+ readonly sync: "gestorDocumental.procedure.sync";
105
104
  };
106
105
  readonly issuingEntity: {
107
106
  readonly getAll: "gestorDocumental.issuingEntity.getAll";
@@ -313,9 +312,6 @@ export declare const GestorDocumentalPatterns: {
313
312
  readonly getAttachmentFile: "gestorDocumental.draftingRequest.getAttachmentFile";
314
313
  };
315
314
  readonly internalReview: {
316
- readonly getReviewers: "gestorDocumental.internalReview.getReviewers";
317
- readonly setReviewers: "gestorDocumental.internalReview.setReviewers";
318
- readonly getAssignments: "gestorDocumental.internalReview.getAssignments";
319
315
  readonly getQueue: "gestorDocumental.internalReview.getQueue";
320
316
  readonly getNotes: "gestorDocumental.internalReview.getNotes";
321
317
  readonly addNote: "gestorDocumental.internalReview.addNote";
@@ -1,55 +1,24 @@
1
- import { type DirectorateReviewersEntity, type DocumentInternalNoteResponseEntity, type DocumentInternalNotesResponseEntity, type InternalReviewQueueItemEntity } from '../entities';
2
- import { type AuditActorInput } from '../entities';
3
- /** Patrones NATS de `internalReview`: revisoras de jefatura y sus observaciones internas. */
1
+ import { type DocumentInternalNoteResponseEntity, type DocumentInternalNotesResponseEntity, type InternalReviewQueueItemEntity } from '../entities';
2
+ /** Patrones NATS de `internalReview`: la revisión para la jefatura y sus observaciones internas. */
4
3
  export declare const InternalReviewPatterns: {
5
- readonly getReviewers: "gestorDocumental.internalReview.getReviewers";
6
- readonly setReviewers: "gestorDocumental.internalReview.setReviewers";
7
- readonly getAssignments: "gestorDocumental.internalReview.getAssignments";
8
4
  readonly getQueue: "gestorDocumental.internalReview.getQueue";
9
5
  readonly getNotes: "gestorDocumental.internalReview.getNotes";
10
6
  readonly addNote: "gestorDocumental.internalReview.addNote";
11
7
  };
12
8
  /**
13
- * Dirección para la que actúa quien consulta: como revisora de su jefatura o como la jefatura misma. La resuelve el
14
- * gateway: quiénes la dirigen hoy (titular y subrogante) no los dice el navegador.
9
+ * Dirección para la que actúa quien consulta: como revisora de su jefatura (integra la dirección y tiene el permiso de
10
+ * revisar) o como la jefatura misma (la dirige hoy y tiene el permiso de jefatura). La resuelve el gateway: ni quiénes
11
+ * la dirigen hoy (titular y subrogante) ni quiénes tienen cada permiso los dice el navegador.
15
12
  */
16
13
  export interface InternalReviewScope {
17
14
  directorateCode: number;
18
15
  directorateName: string;
19
16
  headEmployeeIds: string[];
20
17
  role: 'Reviewer' | 'Head';
18
+ /** Como jefatura, al dejar una observación: quiénes revisan hoy para ella (a quienes se avisa). */
19
+ reviewerEmployeeIds?: string[];
21
20
  }
22
21
  export interface InternalReviewContract {
23
- [InternalReviewPatterns.getReviewers]: {
24
- payload: Record<string, never>;
25
- response: DirectorateReviewersEntity[];
26
- };
27
- /** Reemplaza las revisoras de una dirección (sin ninguna, la dirección queda sin revisoras). */
28
- [InternalReviewPatterns.setReviewers]: {
29
- payload: {
30
- directorateCode: number;
31
- directorateName: string;
32
- reviewers: {
33
- employeeId: string;
34
- fullName: string;
35
- }[];
36
- auditActor?: AuditActorInput;
37
- };
38
- response: {
39
- id: string;
40
- ok: boolean;
41
- };
42
- };
43
- /** Direcciones para cuya jefatura revisa una funcionaria. */
44
- [InternalReviewPatterns.getAssignments]: {
45
- payload: {
46
- employeeId: string;
47
- };
48
- response: {
49
- directorateCode: number;
50
- directorateName: string;
51
- }[];
52
- };
53
22
  /** Documentos que esperan a las jefaturas para las que revisa quien consulta. */
54
23
  [InternalReviewPatterns.getQueue]: {
55
24
  payload: {
@@ -1,11 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InternalReviewPatterns = void 0;
4
- /** Patrones NATS de `internalReview`: revisoras de jefatura y sus observaciones internas. */
4
+ /** Patrones NATS de `internalReview`: la revisión para la jefatura y sus observaciones internas. */
5
5
  exports.InternalReviewPatterns = {
6
- getReviewers: 'gestorDocumental.internalReview.getReviewers',
7
- setReviewers: 'gestorDocumental.internalReview.setReviewers',
8
- getAssignments: 'gestorDocumental.internalReview.getAssignments',
9
6
  getQueue: 'gestorDocumental.internalReview.getQueue',
10
7
  getNotes: 'gestorDocumental.internalReview.getNotes',
11
8
  addNote: 'gestorDocumental.internalReview.addNote',
@@ -1,22 +1,16 @@
1
1
  import { type ProcedureEntity } from '../base/entities';
2
- import { type ProcedureCreateResponseEntity, type ProcedureGetAllResponseEntity, type ProcedureGetByIdResponseEntity, type ProcedureUpdateResponseEntity } from '../entities';
2
+ import { type ProcedureCpatStatusEntity, type ProcedureGetAllResponseEntity, type ProcedureGetByIdResponseEntity, type ProcedureSyncResponseEntity } from '../entities';
3
3
  import { type RpcPage } from './contract';
4
- /** Patrones NATS de `procedure`: `<servicio>.<recurso>.<acción>`. */
4
+ /**
5
+ * Patrones NATS de `procedure`: los procedimientos administrativos vienen del CPAT (nómina en datos.gob.cl) y no se
6
+ * crean ni editan en el gestor.
7
+ */
5
8
  export declare const ProcedurePatterns: {
6
9
  readonly getAll: "gestorDocumental.procedure.getAll";
7
10
  readonly getById: "gestorDocumental.procedure.getById";
8
- readonly create: "gestorDocumental.procedure.create";
9
- readonly update: "gestorDocumental.procedure.update";
10
- readonly setEnabled: "gestorDocumental.procedure.setEnabled";
11
+ readonly getCpatStatus: "gestorDocumental.procedure.getCpatStatus";
12
+ readonly sync: "gestorDocumental.procedure.sync";
11
13
  };
12
- /** Datos de un procedimiento administrativo al crearlo o editarlo. */
13
- export interface ProcedureWritePayload {
14
- name: string;
15
- cpatId?: string | null;
16
- cpatCode?: string | null;
17
- description?: string | null;
18
- enabled?: boolean;
19
- }
20
14
  export interface ProcedureContract {
21
15
  [ProcedurePatterns.getAll]: {
22
16
  payload: {
@@ -35,16 +29,13 @@ export interface ProcedureContract {
35
29
  payload: Pick<ProcedureEntity, 'id'>;
36
30
  response: ProcedureGetByIdResponseEntity;
37
31
  };
38
- [ProcedurePatterns.create]: {
39
- payload: ProcedureWritePayload;
40
- response: ProcedureCreateResponseEntity;
41
- };
42
- [ProcedurePatterns.update]: {
43
- payload: ProcedureWritePayload & Pick<ProcedureEntity, 'id'>;
44
- response: ProcedureUpdateResponseEntity;
32
+ [ProcedurePatterns.getCpatStatus]: {
33
+ payload: Record<string, never>;
34
+ response: ProcedureCpatStatusEntity;
45
35
  };
46
- [ProcedurePatterns.setEnabled]: {
47
- payload: Pick<ProcedureEntity, 'id' | 'enabled'>;
48
- response: ProcedureUpdateResponseEntity;
36
+ /** Trae del CPAT los procedimientos de la institución `CPAT_INSTITUTION_CODE`. */
37
+ [ProcedurePatterns.sync]: {
38
+ payload: Record<string, never>;
39
+ response: ProcedureSyncResponseEntity;
49
40
  };
50
41
  }
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProcedurePatterns = void 0;
4
- /** Patrones NATS de `procedure`: `<servicio>.<recurso>.<acción>`. */
4
+ /**
5
+ * Patrones NATS de `procedure`: los procedimientos administrativos vienen del CPAT (nómina en datos.gob.cl) y no se
6
+ * crean ni editan en el gestor.
7
+ */
5
8
  exports.ProcedurePatterns = {
6
9
  getAll: 'gestorDocumental.procedure.getAll',
7
10
  getById: 'gestorDocumental.procedure.getById',
8
- create: 'gestorDocumental.procedure.create',
9
- update: 'gestorDocumental.procedure.update',
10
- setEnabled: 'gestorDocumental.procedure.setEnabled',
11
+ getCpatStatus: 'gestorDocumental.procedure.getCpatStatus',
12
+ sync: 'gestorDocumental.procedure.sync',
11
13
  };
@@ -1,13 +1,4 @@
1
1
  import { type DocumentStatus } from '../../base/entities';
2
- /** Revisoras asignadas a la jefatura de una dirección. */
3
- export interface DirectorateReviewersEntity {
4
- directorateCode: number;
5
- directorateName: string;
6
- reviewers: {
7
- employeeId: string;
8
- fullName: string;
9
- }[];
10
- }
11
2
  /** Qué espera de la jefatura un documento de la cola de revisión. */
12
3
  export type InternalReviewTurn = 'Visa' | 'Signature' | 'DraftReview';
13
4
  /** Documento que espera a la jefatura para la que revisa la funcionaria. */
@@ -1,20 +1,41 @@
1
1
  import { ProcedureEntity } from '../../base/entities';
2
+ /** Procedimiento administrativo de la municipalidad, como lo informa el CPAT. */
2
3
  export interface ProcedureGetAllResponseEntity {
3
4
  id: ProcedureEntity['id'];
4
5
  name: ProcedureEntity['name'];
5
6
  cpatId: ProcedureEntity['cpatId'];
6
7
  cpatCode: ProcedureEntity['cpatCode'];
7
8
  description: ProcedureEntity['description'];
9
+ /** Tipo de registro en el CPAT: de función común, de función específica u otra tramitación. */
10
+ kind: string | null;
11
+ responsibleArea: string | null;
12
+ /** Estado del registro en el CPAT: completado o pendiente. */
13
+ cpatStatus: string | null;
14
+ /** Viene del CPAT; si no, es uno de los cargados a mano antes, que quedan solo para sus expedientes. */
15
+ fromCpat: boolean;
16
+ /** Se puede elegir: está en la última nómina del CPAT. */
8
17
  enabled: ProcedureEntity['enabled'];
9
18
  /** Cuántos expedientes pertenecen a este procedimiento. */
10
19
  caseFiles: number;
11
20
  }
12
21
  export type ProcedureGetByIdResponseEntity = ProcedureGetAllResponseEntity;
13
- export interface ProcedureCreateResponseEntity {
14
- id: ProcedureEntity['id'];
15
- ok: boolean;
22
+ /** De qué institución y nómina del CPAT vienen los procedimientos, y cuándo se trajeron. */
23
+ export interface ProcedureCpatStatusEntity {
24
+ /** Código de la municipalidad en el CPAT (`CPAT_INSTITUTION_CODE`); `null` si no está configurado. */
25
+ institutionCode: string | null;
26
+ syncedAt: string | null;
27
+ total: number | null;
28
+ /** Nómina de datos.gob.cl. Ej: «Nómina CPAT septiembre 2026». */
29
+ resourceName: string | null;
16
30
  }
17
- export interface ProcedureUpdateResponseEntity {
18
- id: ProcedureEntity['id'];
19
- ok: boolean;
31
+ /** Resultado de traer los procedimientos del CPAT. */
32
+ export interface ProcedureSyncResponseEntity {
33
+ institutionCode: string;
34
+ resourceName: string;
35
+ added: number;
36
+ updated: number;
37
+ /** Los que ya no informa el CPAT: dejan de elegirse, pero siguen en sus expedientes. */
38
+ retired: number;
39
+ total: number;
40
+ syncedAt: string;
20
41
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@muni-sanfer/types-gestor-documental",
3
- "version": "0.0.1-beta.45",
3
+ "version": "0.0.1-beta.47",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -876,6 +876,10 @@ export interface ProcedureEntity {
876
876
  cpatId?: string | null;
877
877
  cpatCode?: string | null;
878
878
  description?: string | null;
879
+ kind?: string | null;
880
+ responsibleArea?: string | null;
881
+ cpatStatus?: string | null;
882
+ fromCpat: boolean;
879
883
  enabled: boolean;
880
884
  caseFiles?: CaseFileEntity[];
881
885
  documents?: DocumentEntity[];
@@ -1158,6 +1162,13 @@ export interface HolidayEntity {
1158
1162
  updatedAt: string;
1159
1163
  }
1160
1164
 
1165
+ export interface ProcedureSyncEntity {
1166
+ institutionCode: string;
1167
+ syncedAt: string;
1168
+ total: number;
1169
+ resourceName: string;
1170
+ }
1171
+
1161
1172
  export interface HolidaySyncEntity {
1162
1173
  year: number;
1163
1174
  syncedAt: string;
@@ -1,49 +1,31 @@
1
1
  import {
2
- type DirectorateReviewersEntity,
3
2
  type DocumentInternalNoteResponseEntity,
4
3
  type DocumentInternalNotesResponseEntity,
5
4
  type InternalReviewQueueItemEntity,
6
5
  } from '../entities';
7
- import { type AuditActorInput } from '../entities';
8
6
 
9
- /** Patrones NATS de `internalReview`: revisoras de jefatura y sus observaciones internas. */
7
+ /** Patrones NATS de `internalReview`: la revisión para la jefatura y sus observaciones internas. */
10
8
  export const InternalReviewPatterns = {
11
- getReviewers: 'gestorDocumental.internalReview.getReviewers',
12
- setReviewers: 'gestorDocumental.internalReview.setReviewers',
13
- getAssignments: 'gestorDocumental.internalReview.getAssignments',
14
9
  getQueue: 'gestorDocumental.internalReview.getQueue',
15
10
  getNotes: 'gestorDocumental.internalReview.getNotes',
16
11
  addNote: 'gestorDocumental.internalReview.addNote',
17
12
  } as const;
18
13
 
19
14
  /**
20
- * Dirección para la que actúa quien consulta: como revisora de su jefatura o como la jefatura misma. La resuelve el
21
- * gateway: quiénes la dirigen hoy (titular y subrogante) no los dice el navegador.
15
+ * Dirección para la que actúa quien consulta: como revisora de su jefatura (integra la dirección y tiene el permiso de
16
+ * revisar) o como la jefatura misma (la dirige hoy y tiene el permiso de jefatura). La resuelve el gateway: ni quiénes
17
+ * la dirigen hoy (titular y subrogante) ni quiénes tienen cada permiso los dice el navegador.
22
18
  */
23
19
  export interface InternalReviewScope {
24
20
  directorateCode: number;
25
21
  directorateName: string;
26
22
  headEmployeeIds: string[];
27
23
  role: 'Reviewer' | 'Head';
24
+ /** Como jefatura, al dejar una observación: quiénes revisan hoy para ella (a quienes se avisa). */
25
+ reviewerEmployeeIds?: string[];
28
26
  }
29
27
 
30
28
  export interface InternalReviewContract {
31
- [InternalReviewPatterns.getReviewers]: { payload: Record<string, never>; response: DirectorateReviewersEntity[] };
32
- /** Reemplaza las revisoras de una dirección (sin ninguna, la dirección queda sin revisoras). */
33
- [InternalReviewPatterns.setReviewers]: {
34
- payload: {
35
- directorateCode: number;
36
- directorateName: string;
37
- reviewers: { employeeId: string; fullName: string }[];
38
- auditActor?: AuditActorInput;
39
- };
40
- response: { id: string; ok: boolean };
41
- };
42
- /** Direcciones para cuya jefatura revisa una funcionaria. */
43
- [InternalReviewPatterns.getAssignments]: {
44
- payload: { employeeId: string };
45
- response: { directorateCode: number; directorateName: string }[];
46
- };
47
29
  /** Documentos que esperan a las jefaturas para las que revisa quien consulta. */
48
30
  [InternalReviewPatterns.getQueue]: {
49
31
  payload: { actor: { employeeId: string }; scopes: InternalReviewScope[] };
@@ -1,30 +1,23 @@
1
1
  import { type ProcedureEntity } from '../base/entities';
2
2
  import {
3
- type ProcedureCreateResponseEntity,
3
+ type ProcedureCpatStatusEntity,
4
4
  type ProcedureGetAllResponseEntity,
5
5
  type ProcedureGetByIdResponseEntity,
6
- type ProcedureUpdateResponseEntity,
6
+ type ProcedureSyncResponseEntity,
7
7
  } from '../entities';
8
8
  import { type RpcPage } from './contract';
9
9
 
10
- /** Patrones NATS de `procedure`: `<servicio>.<recurso>.<acción>`. */
10
+ /**
11
+ * Patrones NATS de `procedure`: los procedimientos administrativos vienen del CPAT (nómina en datos.gob.cl) y no se
12
+ * crean ni editan en el gestor.
13
+ */
11
14
  export const ProcedurePatterns = {
12
15
  getAll: 'gestorDocumental.procedure.getAll',
13
16
  getById: 'gestorDocumental.procedure.getById',
14
- create: 'gestorDocumental.procedure.create',
15
- update: 'gestorDocumental.procedure.update',
16
- setEnabled: 'gestorDocumental.procedure.setEnabled',
17
+ getCpatStatus: 'gestorDocumental.procedure.getCpatStatus',
18
+ sync: 'gestorDocumental.procedure.sync',
17
19
  } as const;
18
20
 
19
- /** Datos de un procedimiento administrativo al crearlo o editarlo. */
20
- export interface ProcedureWritePayload {
21
- name: string;
22
- cpatId?: string | null;
23
- cpatCode?: string | null;
24
- description?: string | null;
25
- enabled?: boolean;
26
- }
27
-
28
21
  export interface ProcedureContract {
29
22
  [ProcedurePatterns.getAll]: {
30
23
  // sin `page` y `limit` responde todos en una sola página
@@ -38,16 +31,7 @@ export interface ProcedureContract {
38
31
  payload: Pick<ProcedureEntity, 'id'>;
39
32
  response: ProcedureGetByIdResponseEntity;
40
33
  };
41
- [ProcedurePatterns.create]: {
42
- payload: ProcedureWritePayload;
43
- response: ProcedureCreateResponseEntity;
44
- };
45
- [ProcedurePatterns.update]: {
46
- payload: ProcedureWritePayload & Pick<ProcedureEntity, 'id'>;
47
- response: ProcedureUpdateResponseEntity;
48
- };
49
- [ProcedurePatterns.setEnabled]: {
50
- payload: Pick<ProcedureEntity, 'id' | 'enabled'>;
51
- response: ProcedureUpdateResponseEntity;
52
- };
34
+ [ProcedurePatterns.getCpatStatus]: { payload: Record<string, never>; response: ProcedureCpatStatusEntity };
35
+ /** Trae del CPAT los procedimientos de la institución `CPAT_INSTITUTION_CODE`. */
36
+ [ProcedurePatterns.sync]: { payload: Record<string, never>; response: ProcedureSyncResponseEntity };
53
37
  }
@@ -1,12 +1,5 @@
1
1
  import { type DocumentStatus } from '../../base/entities';
2
2
 
3
- /** Revisoras asignadas a la jefatura de una dirección. */
4
- export interface DirectorateReviewersEntity {
5
- directorateCode: number;
6
- directorateName: string;
7
- reviewers: { employeeId: string; fullName: string }[];
8
- }
9
-
10
3
  /** Qué espera de la jefatura un documento de la cola de revisión. */
11
4
  export type InternalReviewTurn = 'Visa' | 'Signature' | 'DraftReview';
12
5
 
@@ -1,11 +1,20 @@
1
1
  import { ProcedureEntity } from '../../base/entities';
2
2
 
3
+ /** Procedimiento administrativo de la municipalidad, como lo informa el CPAT. */
3
4
  export interface ProcedureGetAllResponseEntity {
4
5
  id: ProcedureEntity['id'];
5
6
  name: ProcedureEntity['name'];
6
7
  cpatId: ProcedureEntity['cpatId'];
7
8
  cpatCode: ProcedureEntity['cpatCode'];
8
9
  description: ProcedureEntity['description'];
10
+ /** Tipo de registro en el CPAT: de función común, de función específica u otra tramitación. */
11
+ kind: string | null;
12
+ responsibleArea: string | null;
13
+ /** Estado del registro en el CPAT: completado o pendiente. */
14
+ cpatStatus: string | null;
15
+ /** Viene del CPAT; si no, es uno de los cargados a mano antes, que quedan solo para sus expedientes. */
16
+ fromCpat: boolean;
17
+ /** Se puede elegir: está en la última nómina del CPAT. */
9
18
  enabled: ProcedureEntity['enabled'];
10
19
  /** Cuántos expedientes pertenecen a este procedimiento. */
11
20
  caseFiles: number;
@@ -13,12 +22,24 @@ export interface ProcedureGetAllResponseEntity {
13
22
 
14
23
  export type ProcedureGetByIdResponseEntity = ProcedureGetAllResponseEntity;
15
24
 
16
- export interface ProcedureCreateResponseEntity {
17
- id: ProcedureEntity['id'];
18
- ok: boolean;
25
+ /** De qué institución y nómina del CPAT vienen los procedimientos, y cuándo se trajeron. */
26
+ export interface ProcedureCpatStatusEntity {
27
+ /** Código de la municipalidad en el CPAT (`CPAT_INSTITUTION_CODE`); `null` si no está configurado. */
28
+ institutionCode: string | null;
29
+ syncedAt: string | null;
30
+ total: number | null;
31
+ /** Nómina de datos.gob.cl. Ej: «Nómina CPAT septiembre 2026». */
32
+ resourceName: string | null;
19
33
  }
20
34
 
21
- export interface ProcedureUpdateResponseEntity {
22
- id: ProcedureEntity['id'];
23
- ok: boolean;
35
+ /** Resultado de traer los procedimientos del CPAT. */
36
+ export interface ProcedureSyncResponseEntity {
37
+ institutionCode: string;
38
+ resourceName: string;
39
+ added: number;
40
+ updated: number;
41
+ /** Los que ya no informa el CPAT: dejan de elegirse, pero siguen en sus expedientes. */
42
+ retired: number;
43
+ total: number;
44
+ syncedAt: string;
24
45
  }