skedify-types
Version:
114 lines • 3.54 kB
TypeScript
import { BaseFields, Customer, Employee, Location, MeetingType, Outcome, Subject, WithContactEmployee, WithEmployeeUser } from ".";
export type AppointmentState = "incoming" | "outgoing" | "completed" | "cancelled" | "accepted" | "occurred";
export declare enum AppointmentStateEnum {
ACCEPTED = "accepted",
INCOMING = "incoming",
OUTGOING = "outgoing",
COMPLETED = "completed",
CANCELLED = "cancelled",
OCCURRED = "occurred"
}
export declare enum AppointmentUserType {
CUSTOMER = "customer",
EMPLOYEE = "employee"
}
export declare enum ApplicationType {
WEB_APP = "Skedify_Web_Application",
PLUGIN = "Skedify_Plugin",
PBA_BOOKING = "Skedify_PBA_booking",
PBA_SELF_SERVICE = "Skedify_PBA_selfservice"
}
export interface AppointmentMessage {
category: "dateChangedByContact" | "assignedByContact" | "possibilitiesRequestedByContact" | "cancelledByContact" | "acceptedByContact";
created_by_id: string;
created_by_type: "employee" | "customer";
value: string;
}
export interface Appointment extends Omit<BaseFields, "enterprise_id"> {
uuid: string;
listing_uuid: string | null;
contact_id: string;
customer_id: string;
subject_id: string;
office_id: string;
external_id: string | null;
state: AppointmentState;
meeting_type: MeetingType;
first_possibility_id: string | null;
notes: string | null;
outcome_remark: string | null;
trailing_buffer_time: number;
metadata: any[];
location: Location | null;
customer_showed: boolean;
is_success: boolean;
video_url_for_contact: string | null;
video_url_for_customer: string | null;
video_test_url_for_contact: string | null;
video_test_url_for_customer: string | null;
cancellation_reason_id: string | null;
cancelled_by_id: string | null;
cancelled_by_type: AppointmentUserType | null;
initiated_from: ApplicationType | null;
initiated_by_id: string;
initiated_by_type: AppointmentUserType;
updated_at: string;
updated_by_id: string | null;
updated_by_type: AppointmentUserType | null;
}
export interface AppointmentOutcome {
id: string;
appointment_id: string;
outcome_id: string;
}
export interface Possibility extends Omit<BaseFields, "enterprise_id" | "external_id"> {
appointment_id: string;
start: string;
end: string;
timezone: string;
duration: number;
is_accepted: boolean;
next_possibility_id: string | null;
created_by_id: string;
created_by_type: AppointmentUserType;
updated_by_id: string | null;
updated_by_type: AppointmentUserType | null;
updated_at: string;
}
export interface AppointmentAnswer {
id: string;
value: string | number | string[] | null;
appointment_id: string;
question_id: string;
option_id: string | null;
}
export interface WithAnswers {
answers: AppointmentAnswer[];
}
export interface WithSubject {
subject: Subject;
}
export interface WithCustomer {
customer: Customer;
}
export interface WithContact {
contact: Employee & WithEmployeeUser & WithContactEmployee;
}
export interface WithAcceptedPossibility {
accepted_possibility: Possibility;
}
export interface WithPossibilities {
possibilities: Possibility[];
}
export interface WithCalendarLinks {
calendar_links: {
google: string;
yahoo: string;
outlook: string;
ical: string;
};
}
export type WithOutcomes = {
outcomes: Outcome[];
};
//# sourceMappingURL=appointment.d.ts.map