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; }; };