evo360-types 1.3.54 → 1.3.61

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.
@@ -0,0 +1,148 @@
1
+ import type { IFireDoc, IGeoPoint, ITag } from "../../shared";
2
+ // Enums para status de pagamento
3
+ export const PaymentStatusEnum = {
4
+ Paid: "paid",
5
+ Partial: "partial",
6
+ Pending: "pending",
7
+ NotInformed: "not_informed",
8
+ } as const;
9
+
10
+ export type PaymentStatus =
11
+ (typeof PaymentStatusEnum)[keyof typeof PaymentStatusEnum];
12
+
13
+ // Enums para status do agendamento
14
+ export const AppointmentStatusEnum = {
15
+ Scheduled: "scheduled",
16
+ Confirmed: "confirmed",
17
+ Completed: "completed",
18
+ PreCheckin: "pre_checkin",
19
+ Waiting: "waiting",
20
+ NoShow: "no_show",
21
+ Cancelled: "cancelled",
22
+ ExtraSlot: "extra_slot",
23
+ InProgress: "in_progress",
24
+ Rescheduled: "rescheduled",
25
+ } as const;
26
+
27
+ export type AppointmentStatus =
28
+ (typeof AppointmentStatusEnum)[keyof typeof AppointmentStatusEnum];
29
+
30
+ // Enums para modo do agendamento
31
+ export const AppointmentModeEnum = {
32
+ Telemedicine: "telemedicine",
33
+ InPerson: "in_person",
34
+ } as const;
35
+
36
+ export type AppointmentMode =
37
+ (typeof AppointmentModeEnum)[keyof typeof AppointmentModeEnum];
38
+
39
+ // Enums para tipo do agendamento
40
+ export const AppointmentTypeEnum = {
41
+ Blocked: "blocked", // Horário bloqueado (sem atendimento)
42
+ Consultation: "consultation", // Consulta médica
43
+ FollowUp: "follow_up", // Retorno de consulta
44
+ Procedure: "procedure", // Procedimento clínico
45
+ Surgery: "surgery", // Cirurgia
46
+ Exam: "exam", // Exame diagnóstico (ex: ultrassom, raio-x)
47
+ Evaluation: "evaluation", // Avaliação inicial
48
+ Emergency: "emergency", // Atendimento de urgência
49
+ CheckUp: "check_up", // Check-up / revisão geral
50
+ Vaccination: "vaccination", // Vacinação
51
+ FitTest: "fit_test", // Teste de aptidão física / ocupacional
52
+ Therapy: "therapy", // Sessão terapêutica (fisioterapia, psicoterapia etc.)
53
+ Meeting: "meeting", // Reunião administrativa / interna
54
+ } as const;
55
+
56
+ export type AppointmentType =
57
+ (typeof AppointmentTypeEnum)[keyof typeof AppointmentTypeEnum];
58
+
59
+ // Interface para endereço
60
+ export interface Address {
61
+ address_name?: string;
62
+ address_line1?: string;
63
+ address_line2?: string;
64
+ address_city?: string;
65
+ address_state?: string;
66
+ address_zip?: string;
67
+ address_country?: string;
68
+ address_neighborhood?: string;
69
+ address_maps_url?: string;
70
+ address_notes?: string;
71
+ address_geo?: IGeoPoint;
72
+ }
73
+
74
+ // Interface para paciente
75
+ export interface Patient {
76
+ id: number | null;
77
+ name: string | null;
78
+ email: string;
79
+ gender: string;
80
+ birthDate: string;
81
+ phone: string;
82
+ wabaPhone: string;
83
+ external_id?: string;
84
+ [key: string]: unknown; // index signature
85
+ }
86
+
87
+ // Interface para profissional
88
+ export interface Professional {
89
+ id: number;
90
+ name: string;
91
+ email: string;
92
+ gender: string;
93
+ external_id?: string;
94
+ [key: string]: unknown; // index signature
95
+ }
96
+
97
+ // Interface para seguro
98
+ export interface Insurance {
99
+ name: string;
100
+ external_id?: string;
101
+ [key: string]: unknown; // index signature
102
+ }
103
+
104
+ // Interface para pagamento
105
+ export interface Payment {
106
+ total?: number | null;
107
+ paid?: number | null;
108
+ due?: number | null;
109
+ status?: PaymentStatus;
110
+ [key: string]: unknown;
111
+ }
112
+
113
+ // Interface para procedimento
114
+ export interface Procedure {
115
+ id?: number;
116
+ name: string;
117
+ description?: string;
118
+ duration?: number; // em minutos
119
+ price?: number;
120
+ }
121
+
122
+ // Interface principal do Appointment
123
+ export interface Appointment extends IFireDoc {
124
+ calendarId: number;
125
+ startDate: string; // ISO string
126
+ endDate: string; // ISO string
127
+ status: AppointmentStatus;
128
+ notes?: string;
129
+ appointmentMode: AppointmentMode;
130
+ appointmentType: AppointmentType;
131
+ specialty?: string;
132
+ address?: Address;
133
+ procedures?: Procedure[];
134
+ patient: Patient;
135
+ professional?: Professional;
136
+ insurance?: Insurance;
137
+ payment?: Payment;
138
+
139
+ // Propriedades para controle de rascunho
140
+ isDraft: boolean;
141
+ draftExpirationMinutes?: number; // tempo em minutos para expiração do rascunho
142
+
143
+ // Controle de remarcações
144
+ rescheduleCount: number; // quantidade de vezes que o agendamento foi remarcado
145
+
146
+ tags?: ITag[] | null;
147
+ [key: string]: unknown; // index signature
148
+ }
@@ -31,6 +31,7 @@ export interface IProcedure extends IFireDoc {
31
31
  acronym?: string;
32
32
  description?: string;
33
33
  tuss?: string;
34
+ price?: number;
34
35
  tags?: ITag[] | null;
35
36
  [key: string]: unknown;
36
37
  }
@@ -43,6 +43,7 @@ export interface IProcedure extends IFireDoc {
43
43
  acronym?: string; // Sigla
44
44
  description?: string;
45
45
  tuss?: string;
46
+ price?: number;
46
47
  tags?: ITag[] | null;
47
48
  [key: string]: unknown; // index signature
48
49
  }
@@ -102,6 +102,9 @@ export interface IOffice extends IFireDoc {
102
102
  address_state?: string;
103
103
  address_zip?: string;
104
104
  address_country?: string;
105
+ address_neighborhood?: string;
106
+ address_maps_url?: string;
107
+ address_notes?: string;
105
108
  address_geo?: IGeoPoint;
106
109
  readonly employee_counters?: IEmployeeCounters;
107
110
  tags?: ITag[] | null;
@@ -151,6 +151,9 @@ export interface IOffice extends IFireDoc {
151
151
  address_state?: string;
152
152
  address_zip?: string;
153
153
  address_country?: string;
154
+ address_neighborhood?: string;
155
+ address_maps_url?: string;
156
+ address_notes?: string;
154
157
  address_geo?: IGeoPoint;
155
158
  readonly employee_counters?: IEmployeeCounters;
156
159
  tags?: ITag[] | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "evo360-types",
3
- "version": "1.3.54",
3
+ "version": "1.3.61",
4
4
  "description": "HREVO360 Shared Types",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",