const GENERAL_FAQ_EN = [ { title: 'What\'s the chosen company for the service?', titleZh: '选择的服务公司是什么?', description: 'Walter is choosing the best company available. Each company has been tested and evaluated to assure you the best service quality.', descriptionResident: 'Walter is choosing the best company available. Each company has been tested and evaluated to assure you the best service quality.', }, { title: 'I need to cancel/change my reservation time.', titleZh: '我需要取消/更改我的预订时间。', description: 'To do so, go into your basket, click on “UPCOMING ORDERS” and select “CONTACT SUPPLIER” if you which to change your date and time of your service. If you need to cancel, simply clicked on “CANCEL ORDER”. ', descriptionResident: 'To do so, go into your basket, click on “UPCOMING ORDERS” and select “CONTACT SUPPLIER” if you which to change your date and time of your service. If you need to cancel, simply clicked on “CANCEL ORDER”. ', }, { title: 'What is the cancellation fee?', titleZh: '取消费用是多少?', description: 'We understand that your time is extremely valuable and that your schedule may change very rapidly. Therefor, Walter do not charge any fee for a cancellation. ', descriptionResident: 'We understand that your time is extremely valuable and that your schedule may change very rapidly. Therefor, Walter do not charge any fee for a cancellation. ', }, ] const GENERAL_FAQ_FR = [ { title: 'Quelle est la compagnie choisi pour le service?', titleZh: 'Quelle est la compagnie choisi pour le服务?', description: 'Walter se charge de choisir la meilleure entreprise. Chaque compagnie de service a été évalué et testé par Walter afin d\'assurer la meilleure qualité aux résidents.', descriptionResident: 'Walter se charge de choisir la meilleure entreprise. Chaque compagnie de service a été évalué et testé par Walter afin d\'assurer la meilleure qualité aux résidents.', }, ] const servicesFeatured = [ 'MEALBOX', 'JUICE', 'CATERING', 'COFFEE', 'DISINFECTION', 'MEDICAL', 'CLEANING', 'TAILOR', 'TRAINER', 'MASSAGE', 'GROCERY', 'FLOWER', ] const servicesPositionInApp = [ 'MEALBOX', 'JUICE', 'CATERING', 'DISINFECTION', 'MEDICAL', 'CLEANING', 'TAILOR', 'TRAINER', 'MASSAGE', 'GROCERY', 'CAR_WASH', 'HANDYMAN', 'FLOWER', 'DOG', 'TICKET', 'COFFEE', ] export const SERVICES = [ { type: 'TRAINER', accountingName: 'P', faqItemsFr: [...GENERAL_FAQ_FR], faqItemsEn: [ ...GENERAL_FAQ_EN, { title: 'How can I make sure to always have the same trainer?', titleZh: '我怎样才能确保始终拥有相同的培训师?', description: 'If you order a subscription, our gym partner will always make sure that the same trainer serves you. If for any reason he or she is not available, our partner will directly reach you via the app to let you know and book you with either another trainer or date. If you book your sessions one at a time, you may ask our partner through the app to send you a specific trainer. Simply go to your basket, select “UPCOMING ORDERS”, than “CONTACT SUPPLIER”.', descriptionResident: 'If you order a subscription, our gym partner will always make sure that the same trainer serves you. If for any reason he or she is not available, our partner will directly reach you via the app to let you know and book you with either another trainer or date. If you book your sessions one at a time, you may ask our partner through the app to send you a specific trainer. Simply go to your basket, select “UPCOMING ORDERS”, than “CONTACT SUPPLIER”.', }, { title: 'I do not want to be served by this trainer anymore. What should I do? ', titleZh: '我不想再被这位教练所服务。我该怎么办?', description: 'In personal training, we understand that there is a connection between the trainer and the trainee that needs to be established. So if you don’t like the trainer that has been sent to you, simply go into your basket and select “UPCOMING ORDERS”. Then, click on “CONTACT SUPPLIER”. Simply ask to be served by a different person. Our trusted partner will accommodate you! ', descriptionResident: 'In personal training, we understand that there is a connection between the trainer and the trainee that needs to be established. So if you don’t like the trainer that has been sent to you, simply go into your basket and select “UPCOMING ORDERS”. Then, click on “CONTACT SUPPLIER”. Simply ask to be served by a different person. Our trusted partner will accommodate you! ', }, ], title: 'Personal Trainer', titleFr: 'Entraineur privé', isComingSoon: false, description: 'Train in the comfort of your building\'s gym. Reach your goals!', descriptionFr: 'Entrainez-vous avec un entraineur privé dans le confort de la salle d’entrainement de votre immeuble!', descriptionResident: 'Train in the comfort of your building\'s gym. Reach your goals!', descriptionResidentFr: 'Entrainez-vous avec un entraineur privé dans le confort de la salle d’entrainement de votre immeuble!', isInApp: true, heroImageUrl: 'https://res.cloudinary.com/din7dm84v/image/upload/v1579624422/janitor/services/heroImages/v2/personaltrainer.jpg', iconUrl: 'http://res.cloudinary.com/din7dm84v/image/upload/v1529441374/janitor/services/icons/Gym.png', iconUrlResident: 'http://res.cloudinary.com/din7dm84v/image/upload/v1529441374/janitor/services/icons/Gym.png', iconUrlV2: '', }, { type: 'TAILOR', accountingName: 'D', faqItemsFr: [ ...GENERAL_FAQ_FR, { title: 'Combien de temps cela prend avant de ravoir mes vêtements lavés?', titleZh: 'Combien de temps cela prend avant de ravoirmesvêtementslavé?', description: 'Les vêtements seront retournés à votre résidence ou à votre gardien 48-72h après le ramassage.', descriptionResident: 'Les vêtements seront retournés à votre résidence ou à votre gardien 48-72h après le ramassage.', }, ], faqItemsEn: [ ...GENERAL_FAQ_EN, { title: 'Do I need to be present to hand over my laundry?', titleZh: '我是否需要在场交出衣物?', description: 'The choice is yours! Depending on your building’s policies, you can leave your clothes at your building’s reception.', descriptionResident: 'The choice is yours! Depending on your building’s policies, you can leave your clothes at your building’s reception.', }, { title: 'How long does it take until I receive my cleaned clothes? ', titleZh: '我收到干净的衣服需要多长时间?', description: 'Because all orders are different, we cannot give you a guaranteed date of return. However, upon reception, our partner will give you a delivery estimate. In general, it is always between 2 to 4 business days. ', descriptionResident: 'Because all orders are different, we cannot give you a guaranteed date of return. However, upon reception, our partner will give you a delivery estimate. In general, it is always between 2 to 4 business days. ', }, { title: 'In what should I put my dirty laundry? ', titleZh: '我应该把脏衣服放在什么地方?', description: 'In order to pick-up your clothes, our partner asks that you put them into any sort of bag. It can be a paper bag, a grocery bag, garment bag, etc. Did you know that Walter gives a special garment bag upon a first dry-cleaning order? If you didn’t get yours, send a message to our support team!', descriptionResident: 'In order to pick-up your clothes, our partner asks that you put them into any sort of bag. It can be a paper bag, a grocery bag, garment bag, etc. Did you know that Walter gives a special garment bag upon a first dry-cleaning order? If you didn’t get yours, send a message to our support team!', }, ], title: 'Dry Cleaner', titleFr: 'Nettoyeur', isComingSoon: false, description: 'Pickup and delivery of your dry cleaning & laundry. Simple & convenient!', descriptionFr: 'Ramassage et livraison de vos vêtements pour nettoyage à sec. Simple et efficace!', descriptionResident: 'Pickup and delivery of your dry cleaning & laundry. Simple & convenient! ($25 minimum)', descriptionResidentFr: 'Ramassage et livraison de vos vêtements pour nettoyage à sec. Simple et efficace! (minimum 25$)', isInApp: true, heroImageUrl: 'https://res.cloudinary.com/din7dm84v/image/upload/v1579624422/janitor/services/heroImages/v2/drycleaner.jpg', iconUrl: 'http://res.cloudinary.com/din7dm84v/image/upload/v1529077058/janitor/services/icons/Dryer.png', iconUrlManager: 'http://res.cloudinary.com/din7dm84v/image/upload/v1529077058/janitor/services/icons/Dryer.png', iconUrlResident: 'http://res.cloudinary.com/din7dm84v/image/upload/v1529077058/janitor/services/icons/Dryer.png', iconUrlV2: '', }, { type: 'CLEANING', accountingName: 'C', faqItemsFr: [...GENERAL_FAQ_FR], faqItemsEn: [ ...GENERAL_FAQ_EN, { title: 'How can I know which cleaning option is good for my unit size? ', titleZh: '我怎么知道哪个清洁选项对我的单位尺寸有好处?', description: 'If your condo is less than 950 square feet, we recommend choosing a 2-hour cleaning option. For anything more than 950 square feet, you should choose a 4-hour cleaning.', descriptionResident: 'If your condo is less than 950 square feet, we recommend choosing a 2-hour cleaning option. For anything more than 950 square feet, you should choose a 4-hour cleaning.', }, { title: 'Do I need to supply the cleaning products/materials?', titleZh: '我需要提供清洁产品/材料吗?', description: 'No! Our cleaning partner brings everything he needs', descriptionResident: 'No! Our cleaning partner brings everything he needs', }, { title: 'Do I need to be present?', titleZh: '我需要在场吗?', description: 'If you’d like to be present for the entire length of the cleaning, the choice is yours! Note that we have complete trust in our cleaning partner and we do not demand your presence! But, depending on your building’s policy, your presence may be asked to access your unit. ', descriptionResident: 'If you’d like to be present for the entire length of the cleaning, the choice is yours! Note that we have complete trust in our cleaning partner and we do not demand your presence! But, depending on your building’s policy, your presence may be asked to access your unit. ', }, ], title: 'House Cleaning', titleFr: 'Entretien ménager', isComingSoon: false, description: 'Affordable and reliable house cleaning service. Clean home, clean mind!', descriptionFr: 'Commandez une équipe d’entretien ménager, abordable et efficace, pour votre condo/Appartement!', descriptionResident: 'Affordable and reliable house cleaning service. Clean home, clean mind!', descriptionResidentFr: 'Commandez une équipe d’entretien ménager, abordable et efficace, pour votre chez-soi!', isInApp: true, heroImageUrl: 'https://res.cloudinary.com/din7dm84v/image/upload/v1579624422/janitor/services/heroImages/v2/housecleaning.jpg', iconUrl: 'http://res.cloudinary.com/din7dm84v/image/upload/v1529441189/janitor/services/icons/Cleaning.png', iconUrlManager: 'http://res.cloudinary.com/din7dm84v/image/upload/v1529441189/janitor/services/icons/Cleaning.png', iconUrlResident: 'http://res.cloudinary.com/din7dm84v/image/upload/v1529441189/janitor/services/icons/Cleaning.png', iconUrlV2: '', }, { type: 'MASSAGE', accountingName: 'M', faqItemsFr: [ ...GENERAL_FAQ_FR, { title: 'Qu\'est-ce qu\'un Massage Détente?', titleZh: 'Qu\'est-ce qu\'un按摩Détente?', description: 'Êtes-vous fatigués et épuisés par la sensation que procure le stress? Le Massage Détente est la solution. Parmi les bienfaits du massage détente: amélioration du sommeil, diminution du stress, favorise le calme et procure un état général de relaxation.', descriptionResident: 'Êtes-vous fatigués et épuisés par la sensation que procure le stress? Le Massage Détente est la solution. Parmi les bienfaits du massage détente: amélioration du sommeil, diminution du stress, favorise le calme et procure un état général de relaxation.', }, { title: 'Qu\'est-ce qu\'un Massage thérapeutique?', titleZh: 'Qu\'est-ce qu\'un按摩thérapeutique?', description: 'Le massage thérapeutique soulage la douleur aigue et chronique ainsi que le dysfonctionnement par le biais de manipulations musculaires. Parmi les bienfaits du massage thérapeutique: réduction ou élimination de la douleur, amélioration de la mobilité, amélioration de la circulation et réhabilitation d\'une blessure.', descriptionResident: 'Le massage thérapeutique soulage la douleur aigue et chronique ainsi que le dysfonctionnement par le biais de manipulations musculaires. Parmi les bienfaits du massage thérapeutique: réduction ou élimination de la douleur, amélioration de la mobilité, amélioration de la circulation et réhabilitation d\'une blessure.', }, { title: 'Qu\'est-ce qu\'un Massage Tissus Profonds?', titleZh: 'Qu\'est-ce qu\'un按摩Tissus Profonds?', description: 'Ce type de massage est tout indiqué pour cibler un inconfort musculaire persistant en réduisant ainsi la douleur. Le massage Tissus Profonds est idéal pour toute personne ayant des douleurs chroniques, une blessure ou une tension musculaire chronique.', descriptionResident: 'Ce type de massage est tout indiqué pour cibler un inconfort musculaire persistant en réduisant ainsi la douleur. Le massage Tissus Profonds est idéal pour toute personne ayant des douleurs chroniques, une blessure ou une tension musculaire chronique.', }, { title: 'Qu\'est-ce qu\'un Massage Femme Enceinte?', titleZh: 'Qu\'est-ce qu\'un按摩Femme Enceinte?', description: 'Le massage pour femme enceinte est la manière la plus saine de réduire le stress et favoriser le bien-être général. Que vous soyez enceinte pour la première fois ou nouvelle maman, recevoir un massage pour femme enceinte à domicile est un choix judicieux. Ce massage est conçu pour soulager les inconforts provoqué par le nouveau centre de gravité comme les maux de dos et raideurs au cou. ', descriptionResident: 'Le massage pour femme enceinte est la manière la plus saine de réduire le stress et favoriser le bien-être général. Que vous soyez enceinte pour la première fois ou nouvelle maman, recevoir un massage pour femme enceinte à domicile est un choix judicieux. Ce massage est conçu pour soulager les inconforts provoqué par le nouveau centre de gravité comme les maux de dos et raideurs au cou. ', }, ], faqItemsEn: [ ...GENERAL_FAQ_EN, { title: 'Do I need to supply anything? ', titleZh: '我需要提供任何东西吗?', description: 'No! The massage therapist brings everything with him/her. If you prefer using your own towel, simply tell your massage therapist.', descriptionResident: 'No! The massage therapist brings everything with him/her. If you prefer using your own towel, simply tell your massage therapist.', }, { title: 'My condo is quite small, how much spaces do the therapist needs?', titleZh: '我的公寓很小,治疗师需要多少空间?', description: 'Not much! The table is XXX wide and XXX long. It can fit almost anywhere. If you need to move one furniture or two, your therapist will help you do so!', descriptionResident: 'Not much! The table is XXX wide and XXX long. It can fit almost anywhere. If you need to move one furniture or two, your therapist will help you do so!', }, { title: 'What is the difference between a “Relaxing”, “Therapeutic” and “Deep tissue” massage?', titleZh: '“放松”,“治疗”和“深层组织”按摩有什么区别?', description: 'Just like the title may suggest it, the massage called “Relaxing” is to help you relax any stressful day or week! The “Therapeutic” is aimed to help you ease muscle pain. “Deep Tissue” is similar to “Therapeutic” but your therapist will perform many technics on a specific location to ease muscle or chronic pain. ', descriptionResident: 'Just like the title may suggest it, the massage called “Relaxing” is to help you relax any stressful day or week! The “Therapeutic” is aimed to help you ease muscle pain. “Deep Tissue” is similar to “Therapeutic” but your therapist will perform many technics on a specific location to ease muscle or chronic pain. ', }, { title: 'How can I make sure to always have the same therapist?', titleZh: '我怎样才能确保始终拥有相同的治疗师?', description: 'If you order a subscription, our massage partner will always make sure that the same therapist serves you. If for any reason he or she is not available, our partner will directly reach you via the app to let you know and book you with either another therapist or date. If you book your sessions one at a time, you may ask our partner through the app to send you a specific therapist. Simply go to your basket, select “UPCOMING ORDERS”, than “CONTACT SUPPLIER”.', descriptionResident: 'If you order a subscription, our massage partner will always make sure that the same therapist serves you. If for any reason he or she is not available, our partner will directly reach you via the app to let you know and book you with either another therapist or date. If you book your sessions one at a time, you may ask our partner through the app to send you a specific therapist. Simply go to your basket, select “UPCOMING ORDERS”, than “CONTACT SUPPLIER”.', }, { title: 'I do not want to be served by this trainer anymore. What should I do? ', titleZh: '我不想再被这位教练所服务。我该怎么办?', description: 'With massage therapy, we understand that there needs to be a positive connection between the therapist and who is receiving the therapy. So if you don’t like who has been sent to you, simply go into your basket and select “UPCOMING ORDERS”. Then, click on “CONTACT SUPPLIER”. Simply ask to be served by a different person. Our trusted partner will accommodate you! ', descriptionResident: 'With massage therapy, we understand that there needs to be a positive connection between the therapist and who is receiving the therapy. So if you don’t like who has been sent to you, simply go into your basket and select “UPCOMING ORDERS”. Then, click on “CONTACT SUPPLIER”. Simply ask to be served by a different person. Our trusted partner will accommodate you! ', }, { title: 'What is a relaxing massage?', titleZh: '什么是放松按摩?', description: 'Are you tired and exhausted from feeling stressed? A relaxing massage is the solution. Among its many benefits are: improved sleep, reduced stress, a sense of calm and a general state of well-being.', descriptionResident: 'Are you tired and exhausted from feeling stressed? A relaxing massage is the solution. Among its many benefits are: improved sleep, reduced stress, a sense of calm and a general state of well-being.', }, { title: 'What is a Therapeutic massage?', titleZh: '什么是治疗按摩?', description: 'Therapeutic massage relieves acute and chronic pain and dysfunction through specific muscle manipulation. Among the benefits of therapeutic massage: reduction or elimination of pain, improvement of mobility, reduction of muscle tension, improvement of circulation and rehabilitation of an injury.', descriptionResident: 'Therapeutic massage relieves acute and chronic pain and dysfunction through specific muscle manipulation. Among the benefits of therapeutic massage: reduction or elimination of pain, improvement of mobility, reduction of muscle tension, improvement of circulation and rehabilitation of an injury.', }, { title: 'What is a Deep Tissue massage?', titleZh: '什么是深层组织按摩?', description: 'This type of massage is ideal for targeting persistent muscle discomfort while resolving painful stress points thereby reducing pain. Deep Tissue massage is ideal for anyone with chronic pain, injury or chronic muscle tension. ', descriptionResident: 'This type of massage is ideal for targeting persistent muscle discomfort while resolving painful stress points thereby reducing pain. Deep Tissue massage is ideal for anyone with chronic pain, injury or chronic muscle tension. ', }, { title: 'What is a Pre/Post natal massage', titleZh: '什么是产前/产后按摩', description: 'Pre/Post natal massage is the healthiest way to reduce stress and promote overall well-being. Whether you are pregnant for the first time or a new mom, getting an Pre/Post natal massage is a wonderful choice. This massage is designed to relieve discomfort caused by the new center of gravity such as back pain and stiffness in the neck.', descriptionResident: 'Pre/Post natal massage is the healthiest way to reduce stress and promote overall well-being. Whether you are pregnant for the first time or a new mom, getting an Pre/Post natal massage is a wonderful choice. This massage is designed to relieve discomfort caused by the new center of gravity such as back pain and stiffness in the neck.', }, ], title: 'Massage', titleFr: 'Massage à domicile', isComingSoon: false, description: 'Quality massage in the comfort of your home. Make time for yourself!', descriptionFr: 'Commandez un massage de qualité dans le confort de votre résidence!', descriptionResident: 'Quality massage in the comfort of your home. Make time for yourself!', descriptionResidentFr: 'Commandez un massage de qualité dans le confort de votre résidence!', isInApp: true, heroImageUrl: 'https://res.cloudinary.com/din7dm84v/image/upload/v1579624423/janitor/services/heroImages/v2/massage.jpg', iconUrl: 'http://res.cloudinary.com/din7dm84v/image/upload/v1528920490/janitor/services/icons/Massage.png', iconUrlManager: 'http://res.cloudinary.com/din7dm84v/image/upload/v1528920490/janitor/services/icons/Massage.png', iconUrlResident: 'http://res.cloudinary.com/din7dm84v/image/upload/v1528920490/janitor/services/icons/Massage.png', iconUrlV2: '', }, { type: 'GROCERY', accountingName: 'G', faqItemsFr: [...GENERAL_FAQ_FR], faqItemsEn: [...GENERAL_FAQ_EN], title: 'Grocery', titleFr: 'Épicerie', isComingSoon: false, description: 'Order some essentials for you fridge. You’re next meal’s only a few clicks away!', descriptionResident: 'Order some essentials for you fridge. You’re next meal’s only a few clicks away!', descriptionFr: 'Commandez quelques essentiels pour votre réfrigérateur. Vous n\'êtes qu\'à quelques clics du prochain repas!', descriptionManager: 'Ordering of a fresh, creative and elegant flower bouquet.', descriptionManagerFr: 'Service de livraison de fleurs.', descriptionResidentZh: '订购新鲜, 创意和优雅的鲜花花束。', descriptionResidentEs: 'Pide un ramo de flores fresco, creativo y elegante.', descriptionResidentFr: 'Commandez quelques essentiels pour votre réfrigérateur. Vous n\'êtes qu\'à quelques clics du prochain repas!', isInApp: true, heroImageUrl: 'https://res.cloudinary.com/din7dm84v/image/upload/v1584480547/janitor/services/heroImages/v2/grocery.jpg', }, { type: 'JUICE', accountingName: 'J', faqItemsFr: [...GENERAL_FAQ_FR], faqItemsEn: [...GENERAL_FAQ_EN], title: 'Fresh juices', titleFr: 'Jus frais', isComingSoon: false, description: '100% organic cold pressed juices & ginger shots or ready to serve Mixology kits', descriptionFr: 'Jus 100% biologiques pressés à froid ou kits de mixologie prêts à servir', descriptionResident: ' 100% organic cold pressed juices & ginger shots or ready to serve Mixology kits', descriptionResidentFr: 'Jus 100% biologiques pressés à froid ou kits de mixologie prêts à servirJus 100% biologiques pressés à froid et gingembre ou kits de mixologie prêts à servir', isInApp: true, heroImageUrl: 'https://c.stocksy.com/a/9p5C00/za/2882327.jpg', }, { type: 'CATERING', accountingName: 'CAT', faqItemsFr: [...GENERAL_FAQ_FR], faqItemsEn: [...GENERAL_FAQ_EN], title: 'Catering', titleFr: 'Services traiteurs', isComingSoon: false, description: 'Traiteurs', descriptionFr: 'Catering', descriptionResident: ' Traiteurs', descriptionResidentFr: 'Catering', isInApp: true, heroImageUrl: 'https://c.stocksy.com/a/MBX900/za/2272508.jpg', }, { type: 'MEDICAL', accountingName: 'MED', faqItemsFr: [...GENERAL_FAQ_FR], faqItemsEn: [...GENERAL_FAQ_EN], title: 'At-home medical services', titleFr: 'Services medicaux à domicile', isComingSoon: false, description: 'Medical', descriptionFr: 'Médicale', descriptionResident: 'Medical', descriptionResidentFr: 'Médicale', isInApp: true, heroImageUrl: 'https://c.stocksy.com/a/l6l700/z9/1849383.jpg', }, { type: 'DISINFECTION', accountingName: 'DIS', faqItemsFr: [...GENERAL_FAQ_FR], faqItemsEn: [...GENERAL_FAQ_EN], title: 'Disinfection and cleaning services', titleFr: 'Services de nettoyage et désinfectation', isComingSoon: false, description: 'Disinfection', descriptionFr: 'Services de nettoyage et désinfectation', descriptionResident: 'Disinfection', descriptionResidentFr: 'Services de nettoyage et désinfectation', isInApp: true, heroImageUrl: 'https://c.stocksy.com/a/azKC00/z9/2940634.jpg', }, { type: 'MEALBOX', accountingName: 'MEAL', faqItemsFr: [...GENERAL_FAQ_FR], faqItemsEn: [...GENERAL_FAQ_EN], title: 'Fresh and local meals', titleFr: 'Des repas frais et locaux', isComingSoon: false, description: '100% local products delivered to your home', descriptionFr: 'Des produits 100% locaux livrés chez vous', descriptionResident: '100% local products delivered to your home', descriptionResidentFr: 'Des produits 100% locaux livrés chez vous', isInApp: true, heroImageUrl: 'https://c.stocksy.com/a/5g0600/za/1432577.jpg', }, { type: 'FLOWER', accountingName: 'F', faqItemsFr: [...GENERAL_FAQ_FR], faqItemsEn: [ ...GENERAL_FAQ_EN, { title: 'Is it possible to buy per flower?', titleZh: '每朵花可以买吗?', description: 'It is not possible to buy flowers per unit. All of our packages are bouquets that are freshly made but that cannot be separated. ', descriptionResident: 'It is not possible to buy flowers per unit. All of our packages are bouquets that are freshly made but that cannot be separated. ', }, { title: 'Is it possible to add, remove or change a certain type of flower? ', titleZh: '是否可以添加,删除或更换某种类型的花?', description: 'Yes it is possible. Simply contact the supplier once your order is made. However, if the change of flower will affect the final price, that change won’t be able to be made. Our partner will let you know!', descriptionResident: 'Yes it is possible. Simply contact the supplier once your order is made. However, if the change of flower will affect the final price, that change won’t be able to be made. Our partner will let you know!', }, ], title: 'Florist', titleFr: 'Fleuriste', isComingSoon: false, description: 'Order a fresh, creative and elegant flower bouquet.', descriptionFr: 'Commandez un bouquet de fleurs fraiches et élégantes.', descriptionResident: 'Order a fresh, creative and elegant flower bouquet.', descriptionResidentFr: 'Commandez un bouquet de fleurs fraiches et élégantes.', isInApp: true, heroImageUrl: 'https://res.cloudinary.com/din7dm84v/image/upload/v1579624422/janitor/services/heroImages/v2/flower.jpg', iconUrl: 'https://res.cloudinary.com/din7dm84v/image/upload/v1537307856/janitor/services/icons/v1/flowers2.png', iconUrlManager: 'https://res.cloudinary.com/din7dm84v/image/upload/v1537307856/janitor/services/icons/v1/flowers2.png', iconUrlResident: 'https://res.cloudinary.com/din7dm84v/image/upload/v1537307856/janitor/services/icons/v1/flowers2.png', iconUrlV2: '', }, { type: 'DOG', accountingName: 'DW', faqItemsFr: [...GENERAL_FAQ_FR], faqItemsEn: [ ...GENERAL_FAQ_EN, { title: 'Can I bring my dog to your official partner? ', titleZh: '我可以把我的狗带到你的官方合作伙伴吗?', description: 'No. We come to you. Moreover, our housesitting service can only be made at your unit.', descriptionResident: 'No. We come to you. Moreover, our housesitting service can only be made at your unit.', }, { title: 'Do I need to be present when you will pick up my dog for a walk?', titleZh: '当你带我的狗去散步时,我是否需要在场?', description: 'For first visit, we require the presence of the dog owner. Once the walker is familiarized with your pet, and depending on your building’s policies, it is your choice to be present or not during pick-up.', descriptionResident: 'For first visit, we require the presence of the dog owner. Once the walker is familiarized with your pet, and depending on your building’s policies, it is your choice to be present or not during pick-up.', }, ], title: 'Dog Walking', titleFr: 'Promeneur de chien', isComingSoon: true, description: 'Schedule a dog walker for your pet.', descriptionFr: 'Commandez un promeneur de chien pour votre animal de compagnie.', descriptionResident: 'Schedule a dog walker for your pet.', descriptionResidentFr: 'Commandez un promeneur de chien pour votre animal de compagnie.', isInApp: true, heroImageUrl: 'https://res.cloudinary.com/din7dm84v/image/upload/v1579624422/janitor/services/heroImages/v2/dogwalking.jpg', iconUrl: 'http://res.cloudinary.com/din7dm84v/image/upload/v1529335131/janitor/services/icons/Dog.png', iconUrlManager: 'http://res.cloudinary.com/din7dm84v/image/upload/v1529335131/janitor/services/icons/Dog.png', iconUrlResident: 'http://res.cloudinary.com/din7dm84v/image/upload/v1529335131/janitor/services/icons/Dog.png', iconUrlV2: '', }, { type: 'TICKET', accountingName: 'T', faqItemsFr: [...GENERAL_FAQ_FR], faqItemsEn: [...GENERAL_FAQ_EN], title: 'Tickets', titleFr: 'Billets', isComingSoon: true, description: 'Get tickets for your favorite events.', descriptionFr: 'Procurez-vous des billets pour vos événements préférés.', descriptionResident: 'Get tickets for your favorite events.', descriptionResidentFr: 'Procurez-vous des billets pour vos événements préférés.', isInApp: true, heroImageUrl: 'https://res.cloudinary.com/din7dm84v/image/upload/v1579624423/janitor/services/heroImages/v2/ticket.jpg', iconUrl: 'http://res.cloudinary.com/din7dm84v/image/upload/v1528907831/janitor/services/icons/Tickets.png', iconUrlManager: 'http://res.cloudinary.com/din7dm84v/image/upload/v1528907831/janitor/services/icons/Tickets.png', iconUrlResident: 'http://res.cloudinary.com/din7dm84v/image/upload/v1528907831/janitor/services/icons/Tickets.png', iconUrlV2: '', }, { type: 'CAR_WASH', accountingName: 'CW', faqItemsFr: [...GENERAL_FAQ_FR], faqItemsEn: [ ...GENERAL_FAQ_EN, { title: 'I have a pick-up truck; can I still use your service?', titleZh: '我有一辆小卡车;我还可以使用你的服务吗?', description: 'Of course! Simply select an SUV package!', descriptionResident: 'Of course! Simply select an SUV package!', }, { title: 'Do I need to be present for duration of the service?', titleZh: '我是否需要在服务期间在场?', description: 'Depending on your building’s policies, your presence is not required. If you want to have the inside cleaning, our partner will need to have access to your keys. If you would then like to stay for the duration of the cleaning, the choice if yours!', descriptionResident: 'Depending on your building’s policies, your presence is not required. If you want to have the inside cleaning, our partner will need to have access to your keys. If you would then like to stay for the duration of the cleaning, the choice if yours!', }, { title: 'Do every service comes with an interior cleaning?', titleZh: '每项服务都配有室内清洁服务吗?', description: 'Yes! All our packages come standard with an exterior and an interior cleaning unless our cleaning team can’t access the interior of your car. ', descriptionResident: 'Yes! All our packages come standard with an exterior and an interior cleaning unless our cleaning team can’t access the interior of your car. ', }, { title: 'If the cleaning team can’t access the interior of my car, do I get a price rebate?', titleZh: '如果清洁团队无法进入我的车内,我会得到价格折扣吗?', description: 'No rebate is given if our partner cannot access the interior of your car. ', descriptionResident: 'No rebate is given if our partner cannot access the interior of your car. ', }, ], title: 'Car Wash', titleFr: 'Lave-auto', isComingSoon: false, description: 'Book a mobile car detailing service in your building\'s garage. It\'s time to shine!', descriptionFr: 'Commandez une équipe mobile de spécialistes en nettoyage automobile qui se déplaceront à votre garage pour nettoyer votre voiture.', descriptionResident: 'Book a mobile car detailing service in your building\'s garage. It\'s time to shine!', descriptionResidentFr: 'Commandez une équipe mobile de spécialistes en nettoyage automobile qui se déplaceront à votre garage pour nettoyer votre voiture.', isInApp: true, heroImageUrl: 'https://res.cloudinary.com/din7dm84v/image/upload/v1579624422/janitor/services/heroImages/v2/carwash.jpg', iconUrl: 'http://res.cloudinary.com/din7dm84v/image/upload/v1529441189/janitor/services/icons/Carwash.png', iconUrlManager: 'http://res.cloudinary.com/din7dm84v/image/upload/v1529441189/janitor/services/icons/Carwash.png', iconUrlResident: 'http://res.cloudinary.com/din7dm84v/image/upload/v1529441189/janitor/services/icons/Carwash.png', iconUrlV2: '', }, { type: 'HANDYMAN', accountingName: 'H', faqItemsFr: [...GENERAL_FAQ_FR], faqItemsEn: [...GENERAL_FAQ_EN], title: 'Handyman', titleFr: 'Homme à tout faire', isComingSoon: true, description: 'Need a handyman to help you? Walter has your back.', descriptionFr: 'Ne vous inquiétez pas! Nous allons nous en occuper!', descriptionResident: 'Need a handyman to help you? Walter has your back.', descriptionResidentFr: 'Besoin d’un homme à tout faire ? Ne vous inquiétez pas! Nous allons nous en occuper!', isInApp: true, heroImageUrl: 'https://res.cloudinary.com/din7dm84v/image/upload/v1579624422/janitor/services/heroImages/v2/handyman.jpg', iconUrl: 'https://res.cloudinary.com/din7dm84v/image/upload/v1555201065/janitor/services/icons/handymanV2.png', iconUrlManager: 'https://res.cloudinary.com/din7dm84v/image/upload/v1555201065/janitor/services/icons/handymanV2.png', iconUrlResident: 'https://res.cloudinary.com/din7dm84v/image/upload/v1555201065/janitor/services/icons/handymanV2.png', iconUrlV2: '', }, { type: 'COFFEE', accountingName: 'COF', faqItemsFr: [...GENERAL_FAQ_FR], faqItemsEn: [...GENERAL_FAQ_EN], title: 'Coffee', titleFr: 'Café', isComingSoon: false, description: 'The Belgian company Café Liégeois offered un Montreal!', descriptionFr: 'La compagnie belge Café Liégeois offert à Montréal!', descriptionResident: 'The Belgian company Café Liégeois offered un Montreal!', descriptionResidentFr: 'La compagnie belge Café Liégeois offert à Montréal!', isInApp: true, heroImageUrl: 'https://c.stocksy.com/a/FeM500/z9/1278703.jpg', iconUrl: 'https://res.cloudinary.com/din7dm84v/image/upload/v1555201065/janitor/services/icons/handymanV2.png', iconUrlManager: 'https://res.cloudinary.com/din7dm84v/image/upload/v1555201065/janitor/services/icons/handymanV2.png', iconUrlResident: 'https://res.cloudinary.com/din7dm84v/image/upload/v1555201065/janitor/services/icons/handymanV2.png', iconUrlV2: '', }, ].map((service) => ({ ...service, appHomeScreenPosition: servicesPositionInApp.findIndex( (serviceType) => serviceType === service.type ), isFeatured: servicesFeatured.includes(service.type), })) // Make sure we didn't fuck up // Would be easier with TypeScript here... SERVICES.forEach((service) => { if (!servicesPositionInApp.includes(service.type)) { throw new Error(`Can't find service ${service.type} in the services order list`) } })