import type { Locale, WeekDays } from '../services/http/types' import type { SupportedCurrencies } from './Contract' import type { LocalizedString } from './Exports' export type HouseOffboardedReason = | 'lack_of_availability' | 'other' | 'never_rented' | 'house_sold' | 'bad_client_reviews' | 'no_longer_on_lc_standard' | 'owner_problem' | 'unreachable_minimal_commission' | 'geographically_too_far_away' export type HouseCollectionIdentifier = 'essential' | 'signature' | 'iconic' export type House = { additionalAddress: string | null address: string adminUserId: number auditComment: string availabilitiesUpdatedAt: string bankAccountOwner: string bankBic: string bankRibUrl: string bathrooms: number bedrooms: number brandFriendly: boolean capacity: number capacityAdults: number capacityChildren: number centralHeatingSystem: boolean checkInTime: string checkOutTime: string collectionId: number comment: string commercialComment: string | null commissionRate: number commissionRateB2b2c: number commissionRatePublicPrice: number conciergeServiceOffer: 'essential' | 'tailor' | 'club' confirmCommission: boolean cons: string contractDetails: string coolingFloorSystem: boolean countryCode: string createdAt: string currency: SupportedCurrencies defaultPriceStructure: string deposit: number description: string destination: string destinationId: string displayAvailabilities: boolean displayPrices: boolean domainSurface: number elevator: boolean eventMaximumNumberOfPeopleAllowed: number eventTypesIds: string[] exclusivity: boolean exclusivityType: 'mandat' | 'de_facto' | 'seasonal' fakeGpslatitude: string fakeGpslongitude: string figaro: boolean firstPhotoUrl: string flexibleCancelation: boolean flexibleCancelationType: 'full_refund' | 'flexible' floorHeatingSystem: boolean floorNumber: number gpslatitude: string gpslongitude: string heatingCoolingSystemComment: string | null houseArchitecturalStyleId: number houseCategoryId: string | null housekeeping: 'daily' | 'other' housekeepingHandledBy: 'owner' | 'other' houseStyleId: number hubspotId: number icalPrivateToken: string iconicCollection: boolean id: string includedServicesComment: string includedServicesIds: string[] insideParking: boolean insideParkingPlaces: boolean isLastMinute: boolean isVisible: boolean keys: number leadText: LocalizedString levels: number licenceNumber: string | null licenseStatus: 'yes' | 'no' | 'requested' | 'not_applicable' liveInStaff: boolean liveInStaffBedrooms: number liveInStaffComment: string mandateEmail: string mandateLanguage: Locale mandateName: string maxPrice: number migrationComment: string minimumCommission: number minPrice: number name: string newMandateSignedOn: string | null oldName: string oldUrl: string onlineReservation: boolean otherFunction: string | null outsideParking: boolean outsideParkingPlaces: number ownerMinimumPrice: number platformDescription: LocalizedString platformReferenceId: string pricesExpirationDate: string | null pricesUpdatedAt: string privateToken: string pros: string publicMinimumPrice?: number publicTaxes: number retroCommission: boolean position: number segment: 'gold' | 'silver' | 'bronze' | 'argent' | 'diamond' seasonalExclusivityEndAt: string seasonalExclusivityStartAt: string sheetsAndTowelsReplacement: string slug: LocalizedString state: 'published' | 'hidden' | 'offboarded' | 'onboarding' | 'warning' stateChangeReason: HouseOffboardedReason suitableForEvents: boolean suitableForEventsComment: string surface: number surrounding: LocalizedString topQualityObtainedOn: string touristTaxCategoryDocument: string | null touristTaxes: number touristTaxPricePerStay: number | null touristTaxSystem: 'real' | 'flat' | 'free' updatedAt: string vatRecovery: boolean weekdayStart: WeekDays welcomeHandledBy: string wifiCode: string | null withOnboardingFees: boolean withOnboardingFeesIsApplicable: boolean zipCode: string relationships: { signatory: object | null } type: 'house' } export type AddHousePayload = { house: { bathrooms: number bedrooms: number collection_id: number destination_id: number id: string name: string } }