import { AptlyOrganizationSchema } from './organization.js'; import { AptlyProjectSchema } from './project.js'; import { AptlyUnitSchema } from './unit.js'; import { AptlyUserSchema } from './user.js'; export type AptlyBooking = AptlyBookingSchema; export interface AptlyBookingSchema { _id: ID; organization: ID | AptlyOrganizationSchema; project: ID | AptlyProjectSchema; unit: ID | AptlyUnitSchema; user: ID | AptlyUserSchema; availability: ID | AptlyAvailabilitySchema; calendar: ID | AptlyAvailabilityCalendarSchema; availableTime: ID; from: DATE; to: DATE; archived?: boolean; } export type AptlyAvailability = AptlyAvailabilitySchema; export interface AptlyAvailabilitySchema { _id: ID; organization?: ID | AptlyOrganizationSchema; project: ID | AptlyProjectSchema; archived?: boolean; calendars: AptlyAvailabilityCalendarSchema[]; } export type AptlyAvailabilityCalendar = AptlyAvailabilityCalendarSchema; export interface AptlyAvailabilityCalendarSchema { _id: ID; name: string; description: string; fee?: number; location: { name: string; formatted_address?: string; geometry?: { location: { lat: number; lng: number; }; }; }; attendees: (ID | AptlyUserSchema)[]; availableTimes: AptlyAvailabilityCalendarAvailableTimeSchema[]; endAvailabilityAt?: DATE | null; userAvailability?: ID[]; } export type AptlyAvailabilityCalendarAvailableTime = AptlyAvailabilityCalendarAvailableTimeSchema; export interface AptlyAvailabilityCalendarAvailableTimeSchema { _id: ID; from: DATE; to: DATE; booked: boolean; booking: ID; user?: ID | AptlyUserSchema; calendar?: ID; }