openapi: 3.2.0 info: title: Lokki Rental Place API description: The main API powering the Lokki Dashboard and Online Store version: '2.0' contact: {} servers: [] security: - x-access-token: [] tags: - name: Rental Place paths: /v2/rental-place/googleRating/lokki: get: operationId: getGoogleRatingLokki parameters: [] responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/GoogleRating' tags: - Rental Place /v2/rental-place/universes: get: operationId: getRentalPlaceUniverses parameters: [] responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/RentalPlaceUniversesDto' tags: - Rental Place /v2/rental-place/stores: get: operationId: getRentalPlaceStores parameters: - name: lat required: true in: query schema: type: number - name: lng required: true in: query schema: type: number - name: universes required: false in: query schema: type: array items: type: string - name: verticales required: false in: query schema: type: array items: type: string enum: - BIKE - ELECTRIC_BIKE - MOPED - MOTORCYCLE - CAR - SCOOTER - SKI - CLIMBING - SNOWSHOES - SURF - PADDLE - CANOE_KAYAK - BOAT - EVENT - MOTOCULTURE - TOOLING - name: categories required: false in: query schema: type: array items: type: string - name: radius required: false in: query schema: minimum: 0 type: number - name: limit required: false in: query schema: minimum: 0 type: number - name: checkAvailability required: false in: query schema: type: boolean - name: delivery required: false in: query schema: type: boolean - name: insurance required: false in: query schema: type: boolean - name: onlinePayment required: false in: query schema: type: boolean - name: priceRangeMin required: false in: query schema: minimum: 0 type: number - name: priceRangeMax required: false in: query schema: minimum: 0 type: number - name: view required: false in: query schema: enum: - default - fast - events - roaming - toprating - manyratings - cancellation - groups - promo - shortrent - longrent type: string - name: startDateAvailability required: false in: query schema: format: date-time type: string - name: endDateAvailability required: false in: query schema: format: date-time type: string - name: onlineBooking required: false in: query schema: type: boolean - name: filterOutEmptyStocks required: false in: query schema: type: boolean - name: sortByRating required: false in: query schema: type: boolean - name: getBestSellers required: false in: query schema: type: boolean - name: isLLD required: false in: query schema: type: boolean - name: getEvent required: false in: query schema: type: boolean - name: language required: true in: query schema: enum: - fr - en - nl - de - it - pt - es - pl type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/RentalPlaceCompaniesDto' tags: - Rental Place /v2/rental-place/partner/stores/zone: get: operationId: getPartnerZoneRentalPlaceStores parameters: - name: swLat required: true in: query schema: type: number - name: swLng required: true in: query schema: type: number - name: neLat required: true in: query schema: type: number - name: neLng required: true in: query schema: type: number - name: verticales required: true in: query schema: default: - BIKE - ELECTRIC_BIKE type: array items: type: string enum: - BIKE - ELECTRIC_BIKE - MOPED - MOTORCYCLE - CAR - SCOOTER - SKI - CLIMBING - SNOWSHOES - SURF - PADDLE - CANOE_KAYAK - BOAT - EVENT - MOTOCULTURE - TOOLING - name: persons required: true in: query schema: minimum: 1 type: number - name: minPrice required: true in: query schema: minimum: 0 type: number - name: maxPrice required: true in: query schema: minimum: 0 type: number - name: startDate required: true in: query schema: format: date-time type: string - name: endDate required: true in: query schema: format: date-time type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/PartnerRentalPlaceCompaniesDto' tags: - Rental Place /v2/rental-place/store/{slug}: get: operationId: getRentalPlaceStore parameters: - name: slug required: true in: path schema: type: string - name: language required: true in: query schema: enum: - fr - en - nl - de - it - pt - es - pl type: string - name: withNotOnboarded required: false in: query schema: type: boolean responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/RentalPlaceExtraCompanyInfoDto' tags: - Rental Place /v2/rental-place/store/byId/{id}: get: operationId: getRentalPlaceStoreById parameters: - name: id required: true in: path schema: type: string - name: language required: true in: query schema: enum: - fr - en - nl - de - it - pt - es - pl type: string - name: withNotOnboarded required: false in: query schema: type: boolean responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/RentalPlaceExtraCompanyInfoDto' tags: - Rental Place /v2/rental-place/stores/allSlugs: get: operationId: getAllRentalPlaceStoresSlugs parameters: - name: withNotOnboarded required: false in: query schema: type: boolean responses: '200': description: '' content: application/json: schema: type: array items: type: string tags: - Rental Place /v2/rental-place/universe: post: operationId: createRentalPlaceUniverse parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateCreateRentalPlaceUniverseDto' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/RentalPlaceUniverseDto' tags: - Rental Place /v2/rental-place/company/{companyId}/visit: post: operationId: countNewVisitToRentalPlaceCompany parameters: - name: companyId required: true in: path schema: type: string responses: '201': description: '' tags: - Rental Place /v2/rental-place/search: get: operationId: rentalPlaceSearch parameters: - name: lat required: true in: query schema: minimum: -90 maximum: 90 type: number - name: lng required: true in: query schema: minimum: -180 maximum: 180 type: number - name: verticales required: false in: query schema: type: array items: type: string enum: - BIKE - ELECTRIC_BIKE - MOPED - MOTORCYCLE - CAR - SCOOTER - SKI - CLIMBING - SNOWSHOES - SURF - PADDLE - CANOE_KAYAK - BOAT - EVENT - MOTOCULTURE - TOOLING - name: categories required: false in: query schema: type: array items: type: string - name: radius required: false in: query schema: minimum: 0 type: number - name: lokkiOnly required: false in: query schema: type: boolean - name: inDeliveryRange required: false in: query schema: type: boolean - name: delivery required: false in: query schema: type: boolean - name: insurance required: false in: query schema: type: boolean - name: onlinePayment required: false in: query schema: type: boolean - name: lld required: false in: query schema: type: boolean - name: dailyPriceMin required: false in: query schema: minimum: 0 type: number - name: dailyPriceMax required: false in: query schema: type: number - name: view required: false in: query schema: enum: - default - fast - events - roaming - toprating - manyratings - cancellation - groups - promo - shortrent - longrent type: string - name: startDateAvailability required: false in: query schema: format: date-time type: string - name: endDateAvailability required: false in: query schema: format: date-time type: string - name: limit required: false in: query schema: minimum: 0 type: number - name: sortBy required: false in: query schema: enum: - distance - bestRated - nbRentals - nbReviews - relevance type: string responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/RentalPlaceStoresWithProductsDto' tags: - Rental Place components: schemas: RawOnlineStoreVerticalCategoryDto: type: object properties: id: type: string name: type: string i18nKey: type: string required: - id - name - i18nKey OpeningTimeFrame: type: object properties: id: type: string day: type: string enum: - monday - tuesday - wednesday - thursday - friday - saturday - sunday - ALL isOpen: type: boolean from: type: string to: type: string required: - id - day - isOpen PriceModelLLDDuration: type: object properties: type: type: string default: LLD enum: - LLD calendarMonths: type: number id: type: string price: type: - number - 'null' priceLowSeason: type: - number - 'null' label: $ref: '#/components/schemas/LocalizedContent' required: - type - calendarMonths - id - price - priceLowSeason - label RentalPlacePriceDto: type: object properties: initial: type: - number - 'null' discounted: type: - number - 'null' required: - initial - discounted RawOnlineStoreSubProductDto: type: object properties: id: type: string isAvailable: type: boolean required: - id - isAvailable CompanyRentalPlaceDescriptionsDto: type: object properties: fr: type: string en: type: string required: - fr - en DeliveryRangeSpecificPrice: type: object properties: price: type: number cities: type: array items: $ref: '#/components/schemas/CompanyDeliveryCity' required: - price - cities DeliveryRange: type: object properties: min: type: number max: type: number price: type: number specificPrices: type: array items: $ref: '#/components/schemas/DeliveryRangeSpecificPrice' required: - min - max - price - specificPrices CompanyRentalPlaceTeamDto: type: object properties: descriptions: $ref: '#/components/schemas/CompanyRentalPlaceDescriptionsDto' image: type: string video: type: string teamName: type: string required: - descriptions - image - video - teamName RawOnlineStorePackDto: type: object properties: type: type: string default: pack enum: - pack category: type: string default: pack enum: - pack priceModels: type: array items: oneOf: - $ref: '#/components/schemas/PriceModelSpecificDuration' - $ref: '#/components/schemas/PriceModelRangeDuration' - $ref: '#/components/schemas/PriceModelLLDDuration' bailAmount: type: number relatedProducts: type: array items: type: string isRelatedProduct: type: boolean options: type: array items: $ref: '#/components/schemas/RawOnlineStorePackOptionDto' packType: enum: - PRODUCT - CATEGORY type: string categories: type: array items: $ref: '#/components/schemas/PackCategory' id: type: string name: type: string onlineStoreName: $ref: '#/components/schemas/LocalizedContent' imageUrl: type: array items: type: string videoLink: type: string description: $ref: '#/components/schemas/LocalizedContent' rank: type: number productSurveyId: type: string vat: type: number onlineAvailability: type: boolean isAvailable: type: boolean hideOnOnlineStore: type: boolean required: - type - category - priceModels - bailAmount - relatedProducts - isRelatedProduct - options - packType - categories - id - name - onlineStoreName - imageUrl - videoLink - description - rank - productSurveyId - vat - onlineAvailability - isAvailable - hideOnOnlineStore RawOnlineStoreProductDto: type: object properties: type: type: string default: product enum: - product priceModels: type: array items: oneOf: - $ref: '#/components/schemas/PriceModelSpecificDuration' - $ref: '#/components/schemas/PriceModelRangeDuration' - $ref: '#/components/schemas/PriceModelLLDDuration' bailPrice: type: number relatedProducts: type: array items: type: string isRelatedProduct: type: boolean category: type: string productModel: type: string verticalCategory: $ref: '#/components/schemas/RawOnlineStoreVerticalCategoryDto' tags: type: array items: $ref: '#/components/schemas/OnlineStoreProductTags' insurance: $ref: '#/components/schemas/ProductInsurance' subProducts: type: array items: $ref: '#/components/schemas/RawOnlineStoreSubProductDto' id: type: string name: type: string onlineStoreName: $ref: '#/components/schemas/LocalizedContent' imageUrl: type: array items: type: string videoLink: type: string description: $ref: '#/components/schemas/LocalizedContent' rank: type: number productSurveyId: type: string vat: type: number onlineAvailability: type: boolean isAvailable: type: boolean hideOnOnlineStore: type: boolean required: - type - priceModels - bailPrice - relatedProducts - isRelatedProduct - category - productModel - verticalCategory - tags - insurance - subProducts - id - name - onlineStoreName - imageUrl - videoLink - description - rank - productSurveyId - vat - onlineAvailability - isAvailable - hideOnOnlineStore CompanyAddressComponentsDto: type: object properties: streetNumber: type: string street: type: string postalCode: type: string city: type: string administrativeAreaLevel1: type: string administrativeAreaLevel2: type: string country: type: string placeId: type: string required: - streetNumber - street - postalCode - city - administrativeAreaLevel1 - administrativeAreaLevel2 - country - placeId PriceModelRangeDuration: type: object properties: type: type: string default: range enum: - range minDuration: type: number maxDuration: type: number durationInDays: type: number id: type: string price: type: - number - 'null' priceLowSeason: type: - number - 'null' label: $ref: '#/components/schemas/LocalizedContent' required: - type - minDuration - maxDuration - id - price - priceLowSeason - label PackCategory: type: object properties: id: type: string name: type: string productModelId: type: string fieldId: type: string required: - id - name - productModelId - fieldId ProductDetails: type: object properties: name: type: string image: type: - string - 'null' required: - name - image CompanyDelivery: type: object properties: activated: type: boolean ranges: type: array items: $ref: '#/components/schemas/DeliveryRange' deliveryOnly: type: boolean returnDelivery: type: boolean freeDeliveryActivated: type: boolean freeDeliveryMinimumType: type: string enum: - MINUTES - SUBTOTAL freeDeliveryMinimumVal: type: number excludedCities: type: array items: $ref: '#/components/schemas/CompanyDeliveryCity' required: - activated - ranges - deliveryOnly - returnDelivery - freeDeliveryActivated - freeDeliveryMinimumType - freeDeliveryMinimumVal - excludedCities CompanyRentalPlaceUniversesDto: type: object properties: id: type: string categoryIds: type: array items: type: string pack: type: boolean required: - id - categoryIds - pack RentalPlaceCompanyPriceRangeDto: type: object properties: min: type: number max: type: number required: - min - max RentalPlaceDiscoverEventDto: type: object properties: id: type: string urlImage: type: string name: $ref: '#/components/schemas/LocalizedContent' duration: type: number slot: type: number price: type: number required: - id - urlImage - name - duration - slot - price EventUniverse: type: object properties: id: type: string name: type: string imageUrl: type: string required: - id - name - imageUrl PartnerRentalPlaceCompanyDto: type: object properties: name: type: string slug: type: string logoURL: type: string images: type: array items: type: string lat: type: number lng: type: number url: type: string availableProducts: type: array items: type: string availableProductsDetails: type: array items: $ref: '#/components/schemas/ProductDetails' totalNbAvailableProducts: type: number averagePrice: type: number minPrice: type: number maxPrice: type: number googleRating: type: number googleReviewsNb: type: number description: type: string descriptionHtml: type: string delivery: type: boolean deliveryRange: type: number insurance: type: boolean address: type: string required: - name - slug - logoURL - images - lat - lng - url - availableProducts - availableProductsDetails - totalNbAvailableProducts - averagePrice - minPrice - maxPrice - googleRating - googleReviewsNb - description - descriptionHtml - delivery - deliveryRange - insurance - address RawOnlineStoreServiceDto: type: object properties: type: type: string default: service enum: - service priceModels: type: array items: oneOf: - $ref: '#/components/schemas/PriceModelSpecificDuration' - $ref: '#/components/schemas/PriceModelRangeDuration' - $ref: '#/components/schemas/PriceModelLLDDuration' category: type: string tags: type: array items: $ref: '#/components/schemas/OnlineStoreProductTags' isRelatedProducts: type: boolean relatedProducts: type: array items: type: string isAssuranceTulip: type: boolean productModel: type: string verticalCategory: $ref: '#/components/schemas/RawOnlineStoreVerticalCategoryDto' id: type: string name: type: string onlineStoreName: $ref: '#/components/schemas/LocalizedContent' imageUrl: type: array items: type: string videoLink: type: string description: $ref: '#/components/schemas/LocalizedContent' rank: type: number productSurveyId: type: string vat: type: number onlineAvailability: type: boolean isAvailable: type: boolean hideOnOnlineStore: type: boolean required: - type - priceModels - category - tags - isRelatedProducts - relatedProducts - isAssuranceTulip - productModel - verticalCategory - id - name - onlineStoreName - imageUrl - videoLink - description - rank - productSurveyId - vat - onlineAvailability - isAvailable - hideOnOnlineStore RentalPlaceCompanyDto: type: object properties: addressComponents: $ref: '#/components/schemas/CompanyAddressComponentsDto' id: type: string slug: type: string name: type: string logoURL: type: string description: type: string bannerURL: type: array items: type: string address: type: string lat: type: number lng: type: number rentalPlaceInfos: $ref: '#/components/schemas/CompanyRentalPlaceDto' onlineStoreConfig: $ref: '#/components/schemas/OnlineStoreConfig' distance: type: number googleRating: type: number googleReviewsNb: type: number universes: type: array items: $ref: '#/components/schemas/RentalPlaceCompanyUniverseDto' availableProducts: type: number dailyPriceRange: $ref: '#/components/schemas/RentalPlaceCompanyPriceRangeDto' tulipActivated: type: boolean discount: type: number durationRange: $ref: '#/components/schemas/RentalPlaceCompanyDurationRangeDto' timezone: type: string rentalPointId: type: string rentalPointSlug: type: string bestSellers: allOf: - $ref: '#/components/schemas/RawOnlineStoreItemListDto' haveLld: type: boolean events: type: array items: $ref: '#/components/schemas/RentalPlaceDiscoverEventDto' delivery: type: boolean required: - id - slug - name - logoURL - description - bannerURL - address - lat - lng - rentalPlaceInfos - onlineStoreConfig - distance - googleRating - googleReviewsNb - universes - availableProducts - dailyPriceRange - tulipActivated - discount - durationRange - timezone - rentalPointId - rentalPointSlug - bestSellers - haveLld - events - delivery CompanyRentalPlaceDto: type: object properties: image: type: string additionalImages: type: array items: type: string descriptions: $ref: '#/components/schemas/CompanyRentalPlaceDescriptionsDto' universes: type: array items: $ref: '#/components/schemas/CompanyRentalPlaceUniversesDto' verticales: type: array items: type: string enum: - BIKE - ELECTRIC_BIKE - MOPED - MOTORCYCLE - CAR - SCOOTER - SKI - CLIMBING - SNOWSHOES - SURF - PADDLE - CANOE_KAYAK - BOAT - EVENT - MOTOCULTURE - TOOLING showcaseProducts: type: array items: $ref: '#/components/schemas/CompanyShowcaseProductDto' team: $ref: '#/components/schemas/CompanyRentalPlaceTeamDto' lokkiComment: type: string required: - image - additionalImages - descriptions - universes - verticales - showcaseProducts - team - lokkiComment LocalizedReview: type: object properties: reviews: type: array items: $ref: '#/components/schemas/GoogleReview' fetchedAt: format: date-time type: string required: - reviews UpdateCreateRentalPlaceUniverseDto: type: object properties: name: type: string displayName: type: string img: type: string color: type: string verticales: type: array items: type: string enum: - BIKE - ELECTRIC_BIKE - MOPED - MOTORCYCLE - CAR - SCOOTER - SKI - CLIMBING - SNOWSHOES - SURF - PADDLE - CANOE_KAYAK - BOAT - EVENT - MOTOCULTURE - TOOLING required: - name - displayName - img - color - verticales RentalPlaceUniversesDto: type: object properties: universes: type: array items: $ref: '#/components/schemas/RentalPlaceUniverseDto' required: - universes ProductPriceRule: type: object properties: id: type: string title: type: string rules: type: array items: $ref: '#/components/schemas/PriceRule' required: - id - title - rules RentalPlaceStoresWithProductsDto: type: object properties: id: type: string slug: type: string name: type: string logoURL: type: string bannerURL: type: array items: type: string currencySymbol: type: string lat: type: number lng: type: number address: type: string addressComponents: allOf: - $ref: '#/components/schemas/RentalPlaceStoresWithProductsAddressComponentsDto' distance: type: number inDeliveryRange: type: boolean onlineDelivery: type: boolean deliveryMinRange: type: number deliveryMaxRange: type: number deliveryMinPrice: type: number deliveryMaxPrice: type: number discountInPercentage: type: number freeDeliveryActivated: type: boolean freeDeliveryMinimumType: type: string enum: - MINUTES - SUBTOTAL freeDeliveryMinimumValue: type: number googleRating: type: number googleReviewsNb: type: number rentalPointSlug: type: string rentalPointId: type: string verticales: type: array items: type: string enum: - BIKE - ELECTRIC_BIKE - MOPED - MOTORCYCLE - CAR - SCOOTER - SKI - CLIMBING - SNOWSHOES - SURF - PADDLE - CANOE_KAYAK - BOAT - EVENT - MOTOCULTURE - TOOLING items: type: - array - 'null' items: $ref: '#/components/schemas/RentalPlaceSearchItemDto' isOpen: type: boolean openingHours: type: array items: $ref: '#/components/schemas/OpeningTimeFrame' closedReason: allOf: - $ref: '#/components/schemas/RentalPlaceStoreClosedReason' lcdEnabled: type: boolean lldEnabled: type: boolean tulipEnabled: type: boolean tulipState: type: string enum: - 'off' - on_inclusion_hidden - on_inclusion - on_option - with_assurance directOrderEnabled: type: boolean phoneNumber: type: - string - 'null' withTimeSlots: type: boolean required: - id - slug - name - logoURL - bannerURL - currencySymbol - lat - lng - address - addressComponents - distance - inDeliveryRange - onlineDelivery - deliveryMinRange - deliveryMaxRange - deliveryMinPrice - deliveryMaxPrice - discountInPercentage - freeDeliveryActivated - freeDeliveryMinimumType - freeDeliveryMinimumValue - googleRating - googleReviewsNb - verticales - items - isOpen - openingHours - closedReason - lcdEnabled - lldEnabled - tulipEnabled - tulipState - directOrderEnabled - phoneNumber - withTimeSlots RentalPlaceCompaniesDto: type: object properties: companies: type: array items: $ref: '#/components/schemas/RentalPlaceCompanyDto' totalCount: type: number required: - companies - totalCount RentalPlaceStoresWithProductsAddressComponentsDto: type: object properties: administrativeAreaLevel1: type: string administrativeAreaLevel2: type: string city: type: string country: type: string placeId: type: string postalCode: type: string street: type: string streetNumber: type: string required: - administrativeAreaLevel1 - administrativeAreaLevel2 - city - country - placeId - postalCode - street - streetNumber PriceModelSpecificDuration: type: object properties: type: type: string default: specific enum: - specific duration: type: number id: type: string price: type: - number - 'null' priceLowSeason: type: - number - 'null' label: $ref: '#/components/schemas/LocalizedContent' required: - type - duration - id - price - priceLowSeason - label CompanyShowcaseProductDto: type: object properties: id: type: string price: type: number required: - id - price OnlineStoreProductTags: type: object properties: id: type: string name: type: string isTagged: type: boolean value: type: string required: - id - name - isTagged - value DateRange: type: object properties: id: type: string from: type: string to: type: string required: - id - from - to ReservationRanges: type: object properties: minimum: $ref: '#/components/schemas/ReservationRange' maximum: $ref: '#/components/schemas/ReservationRange' required: - minimum - maximum RentalPlaceUniverseDto: type: object properties: id: type: string name: type: string displayName: type: string img: type: string color: type: string verticales: type: array items: type: string enum: - BIKE - ELECTRIC_BIKE - MOPED - MOTORCYCLE - CAR - SCOOTER - SKI - CLIMBING - SNOWSHOES - SURF - PADDLE - CANOE_KAYAK - BOAT - EVENT - MOTOCULTURE - TOOLING required: - id - name - displayName - img - color - verticales RawOnlineStorePackOptionDto: type: object properties: items: type: array items: oneOf: - $ref: '#/components/schemas/RawOnlineStoreServiceDto' - $ref: '#/components/schemas/RawOnlineStoreProductDto' name: type: string required: - items - name ReservationRange: type: object properties: nbHours: type: number activated: type: boolean required: - nbHours - activated RentalPlaceExtraCompanyInfoDto: type: object properties: addressComponents: $ref: '#/components/schemas/CompanyAddressComponentsDto' companyType: type: string default: lokki enum: - lokki id: type: string slug: type: string name: type: string logo: type: string banner: type: array items: type: string description: type: string currency: type: string address: type: string lat: type: number lng: type: number rentalPlaceInfos: $ref: '#/components/schemas/CompanyRentalPlaceDto' googleRating: type: number googleReviews: type: array items: $ref: '#/components/schemas/GoogleReview' googleReviewsNb: type: number showcaseProducts: type: array items: $ref: '#/components/schemas/ShowcaseProductDto' verticales: type: array items: type: string enum: - BIKE - ELECTRIC_BIKE - MOPED - MOTORCYCLE - CAR - SCOOTER - SKI - CLIMBING - SNOWSHOES - SURF - PADDLE - CANOE_KAYAK - BOAT - EVENT - MOTOCULTURE - TOOLING universes: type: array items: $ref: '#/components/schemas/RentalPlaceCompanyUniverseDto' required: - companyType - id - slug - name - logo - banner - description - currency - address - lat - lng - rentalPlaceInfos - googleRating - googleReviews - googleReviewsNb - showcaseProducts - verticales - universes PriceRule: type: object properties: _id: type: string startDate: $ref: '#/components/schemas/PriceRuleDate' endDate: $ref: '#/components/schemas/PriceRuleDate' type: type: string enum: - in - include - overlap variation: type: number required: - startDate - endDate - type - variation RentalPlaceStoreClosedReason: type: object properties: type: type: string enum: - CLOSED_DATES_RANGE - CLOSED_DAYS - CLOSED_TIMES startDate: format: date-time type: - string - 'null' endDate: format: date-time type: - string - 'null' required: - type - startDate - endDate RentalPlaceSearchItemDto: type: object properties: product_online_information: $ref: '#/components/schemas/ItemOnlineStoreInformation' id: type: string product_model_id: type: string product_verticale_category: type: - string - 'null' product_verticale_category_i18n_key: type: - string - 'null' product_verticale_category_name: type: - string - 'null' product_verticale_category_verticale: type: - string - 'null' product_image: type: array items: type: string product_name: type: string price: $ref: '#/components/schemas/RentalPlacePriceDto' pricePerDay: $ref: '#/components/schemas/RentalPlacePriceDto' avgPrice: type: - number - 'null' price_rule: allOf: - $ref: '#/components/schemas/ProductPriceRule' is_bestseller: type: boolean is_low_stock: type: boolean order_count: type: number usage_count: type: number discount_in_percentage: type: number closest_valid_range: allOf: - $ref: '#/components/schemas/RentalPlaceSearchItemDuration' item_type: type: string enum: - PRODUCT - SERVICE rental_type: type: string enum: - LCD - LLD required: - product_online_information - id - product_model_id - product_verticale_category - product_verticale_category_i18n_key - product_verticale_category_name - product_verticale_category_verticale - product_image - product_name - price - pricePerDay - avgPrice - is_bestseller - is_low_stock - order_count - usage_count - discount_in_percentage - closest_valid_range - item_type - rental_type RawOnlineStoreItemListDto: type: object properties: items: type: array items: oneOf: - $ref: '#/components/schemas/RawOnlineStoreServiceDto' - $ref: '#/components/schemas/RawOnlineStoreProductDto' - $ref: '#/components/schemas/RawOnlineStorePackDto' required: - items LocalizedContent: type: object additionalProperties: type: string PartnerRentalPlaceCompaniesDto: type: object properties: totalCount: type: number stores: type: array items: $ref: '#/components/schemas/PartnerRentalPlaceCompanyDto' required: - totalCount - stores ReservationTime: type: object properties: id: type: string type: type: string enum: - start - end time: type: string required: - id - type - time ItemOnlineStoreInformation: type: object properties: name: $ref: '#/components/schemas/LocalizedContent' description: $ref: '#/components/schemas/LocalizedContent' required: - name - description RentalPlaceCompanyUniverseDto: type: object properties: id: type: string name: type: string img: type: string pricePerDay: type: number required: - id - name - img - pricePerDay OnlineStoreConfig: type: object properties: newOnlineStoreDesign: type: boolean customerTextRGPD: $ref: '#/components/schemas/LocalizedContent' description: $ref: '#/components/schemas/LocalizedContent' featuredSectionTitle: $ref: '#/components/schemas/LocalizedContent' eventsTitle: $ref: '#/components/schemas/LocalizedContent' openingTimeFrames: type: array items: $ref: '#/components/schemas/OpeningTimeFrame' openingTimeFramesLowSeason: type: array items: $ref: '#/components/schemas/OpeningTimeFrame' closedDates: type: array items: $ref: '#/components/schemas/DateRange' lowSeasonRanges: type: array items: $ref: '#/components/schemas/DateRange' bannerURL: type: array items: type: string featuredIds: type: array items: type: string bannerScroll: type: number reservationRanges: $ref: '#/components/schemas/ReservationRanges' timeLapsBeforeBookingInHours: type: number delivery: $ref: '#/components/schemas/CompanyDelivery' reservationTimes: type: array items: $ref: '#/components/schemas/ReservationTime' insuranceActivated: type: boolean eventActivated: type: boolean customFeaturedMode: type: boolean hideOnlineStoreLCD: type: boolean hideOnlineStoreLLD: type: boolean displayAddressOnlineStore: type: boolean eventDirectOrder: type: boolean eventTags: type: array items: $ref: '#/components/schemas/EventTag' eventUniverses: type: array items: $ref: '#/components/schemas/EventUniverse' eventUniversesActivated: type: boolean eventUniversesTag: type: string phoneNumber: type: string displayPhoneNumber: type: boolean script: type: string defaultPhoneCode: type: string showPricing: type: boolean showStock: type: boolean lldBilling: type: boolean required: - newOnlineStoreDesign - customerTextRGPD - description - featuredSectionTitle - eventsTitle - openingTimeFrames - openingTimeFramesLowSeason - closedDates - lowSeasonRanges - bannerURL - featuredIds - bannerScroll - reservationRanges - timeLapsBeforeBookingInHours - delivery - reservationTimes - insuranceActivated - eventActivated - customFeaturedMode - hideOnlineStoreLCD - hideOnlineStoreLLD - displayAddressOnlineStore - eventDirectOrder - eventTags - eventUniverses - eventUniversesActivated - eventUniversesTag - phoneNumber - displayPhoneNumber - script - defaultPhoneCode - showPricing - showStock - lldBilling CompanyDeliveryCity: type: object properties: cityName: type: string sublocalityName: type: string zipCode: type: string placeId: type: string hasMultiplePostcodeLocalities: type: boolean required: - cityName - sublocalityName - zipCode - placeId - hasMultiplePostcodeLocalities RentalPlaceSearchItemDuration: type: object properties: type: type: string enum: - shorter - longer duration: type: number required: - type - duration EventTag: type: object properties: id: type: string name: $ref: '#/components/schemas/LocalizedContent' required: - id - name RentalPlaceCompanyDurationRangeDto: type: object properties: min: type: number max: type: number required: - min - max PriceRuleDate: type: object properties: day: type: number time: type: string required: - day - time ShowcaseProductDto: type: object properties: id: type: string name: type: string price: type: number imageUrl: type: string required: - id - name - price - imageUrl GoogleRating: type: object properties: localizedReviews: type: object additionalProperties: $ref: '#/components/schemas/LocalizedReview' rating: type: number reviewNb: type: number placeId: type: string mapsUrl: type: string fetchedAt: format: date-time type: string required: - localizedReviews - rating - reviewNb - placeId - mapsUrl - fetchedAt GoogleReview: type: object properties: rating: type: number name: type: string comment: type: string authorPhotoUrl: type: - string - 'null' publishTime: format: date-time type: string required: - rating - name - comment - authorPhotoUrl - publishTime ProductInsurance: type: object properties: isActivated: type: boolean tulipProductId: type: string averagePurchasePrice: type: number margin: type: number sum: type: number contractType: type: string enum: - OPTION - INCLUSION - HIDDEN_INCLUSION required: - isActivated - tulipProductId - averagePurchasePrice - margin - sum securitySchemes: x-access-token: scheme: bearer bearerFormat: JWT type: apiKey in: header name: x-access-token