export interface ListingLocation {
  city: string;
  country: string;
  /**
   * @deprecated
   * Do not use this field, is doesnt exist in API. Probably created for compatibility 🤷🏻‍♂️
   */
  geolocation: string;
  latitude: number;
  description: string | null;
  longitude: number;
  postalCode: string;
  state?: string | null;
  street1: string;
  street2?: string | null;
  timezone: string | null;
}

export interface Listing {
  active: boolean;
  activeVersion: boolean;
  createdAt: string;
  createdById: string;
  createdByType: "user";
  deletedAt: string;
  description?: string | null;
  externalId?: string | null;
  id: string;
  listingId: string;
  location?: ListingLocation | null;
  title: string;
  updatedAt: string;
  version: string;
}

export interface ListingTimeSlot {
  id: string;
  listingId: string;
  end: string;
  start: string;
  createdAt: string;
  updatedAt: string;
  createdById: string;
  isBookable: boolean;
  createdByType: string;
  updatedById?: string;
  updatedByType?: string;
}

export interface ListingTimeSlotContact {
  /**
   * @deprecated
   * Do not use this field, is doesnt exist, but it's a workaround for BE not returning ID's for this resource.
   * Use a combination of `ListingTimeSlot.id` and `ListingTimeSlotContact.contactId` to uniquely identify resources.
   */
  id: string;
  contactId: string;
  isExclusive: boolean;
}
