skedify-types
Version:
126 lines (110 loc) • 3.07 kB
text/typescript
import { MeetingType } from ".";
export interface DayTemplate {
id: string;
contact_id: string;
name: string;
color: string;
is_unavailable?: boolean;
order: number;
created_at: string;
updated_at: string;
}
export interface UnvailableDayTemplate extends DayTemplate {
is_unavailable: true;
}
export interface AppliedDayTemplate {
id: string;
contact_id: string;
day_template_id: string;
date: string;
is_unavailable: boolean;
created_at: string;
updated_at: string;
}
export interface AppliedDayTemplateWithDayTemplate extends AppliedDayTemplate {
day_template: DayTemplate;
}
export interface WeekTemplate {
id: string;
contact_id: string;
name: string;
color: string;
order: number;
created_at: string;
updated_at: string;
}
export interface WithWeekTimeSlots {
week_time_slots: WeekTimeSlot[];
}
export interface WithDayTimeSlots {
day_time_slots: DayTimeSlot[];
}
export interface AppliedWeekTemplate {
id: string;
contact_id: string;
week_template_id: string;
end: string;
start: string;
created_at: string;
updated_at: string;
}
export interface ContactOfficeSubjectAvailabilitySettings {
contact_office_subject_id: string;
created_at: string;
id: string;
is_meeting_type_enabled: null | boolean;
max_concurrent_appointments: number | null;
meeting_type: MeetingType;
updated_at: string;
}
export interface WeekContactOfficeSubjectAvailabilitySettings
extends ContactOfficeSubjectAvailabilitySettings {
week_timeslot_id: string;
}
export interface DayContactOfficeSubjectAvailabilitySettings
extends ContactOfficeSubjectAvailabilitySettings {
day_timeslot_id: string;
}
export interface WeekTimeSlot {
id: string;
week_template_id: string;
day_of_week: number;
end: string;
start: string;
created_at: string;
updated_at: string;
}
export interface DayTimeSlot {
id: string;
day_template_id: string;
day_of_week: undefined;
end: string;
start: string;
created_at: string;
updated_at: string;
}
export interface ContactOfficeAvailabilitySettings {
id: string;
contact_office_id: string;
auto_accept: boolean | null;
uses_subject_specific_settings: boolean;
created_at: string;
updated_at: string;
}
export interface WeekContactOfficeAvailabilitySettings extends ContactOfficeAvailabilitySettings {
week_timeslot_id: string;
}
export interface DayContactOfficeAvailabilitySettings extends ContactOfficeAvailabilitySettings {
day_timeslot_id: string;
}
export interface AppliedWeekTemplateWithWeekTemplate extends AppliedWeekTemplate {
week_template: WeekTemplate;
}
export interface WithWeekAvailabilitySettings {
contact_office_availability_settings: WeekContactOfficeAvailabilitySettings[];
contact_office_subject_availability_settings: WeekContactOfficeSubjectAvailabilitySettings[];
}
export interface WithDayAvailabilitySettings {
contact_office_availability_settings: DayContactOfficeAvailabilitySettings[];
contact_office_subject_availability_settings: DayContactOfficeSubjectAvailabilitySettings[];
}