Some checks failed
Build and deploy updated apps / Build & deploy (push) Failing after 50s
172 lines
6.0 KiB
TypeScript
172 lines
6.0 KiB
TypeScript
class Text {
|
|
constructor(
|
|
readonly $de: string,
|
|
readonly $en: string
|
|
) {}
|
|
}
|
|
|
|
class Feature {
|
|
readonly label: Text | string
|
|
|
|
constructor(
|
|
readonly icon: string,
|
|
readonly de: string,
|
|
readonly en?: string
|
|
) {
|
|
this.label = en ? new Text(de, en) : de
|
|
}
|
|
}
|
|
|
|
const features = [
|
|
new Feature('lucide:shower-head', 'Badezimmer mit Dusche', 'Bathroom with shower'),
|
|
new Feature('lucide:toilet', 'Bad und WC getrennt', 'Bathroom and toilet in separate rooms'),
|
|
new Feature('lucide:wifi', 'Schnelles WLAN', 'High-speed WiFi'),
|
|
new Feature('lucide:tv', 'Fernseher', 'TV'),
|
|
new Feature('lucide:microwave', 'Mikrowelle', 'Microwave'),
|
|
new Feature('lucide:microwave', 'Backrohr', 'Oven'),
|
|
new Feature('lucide:bubbles', 'Geschirrspüler', 'Dishwasher'),
|
|
new Feature('lucide:coffee', 'Kaffeemaschine', 'Coffee maker'),
|
|
new Feature('lucide:coffee', 'Wasserkocher', 'Electric water boiler'),
|
|
new Feature('lucide:bed', 'Bettwäsche', 'Bed sheets'),
|
|
new Feature('lucide:layers', 'Handtücher', 'Towels'),
|
|
new Feature('lucide:wind', 'Haarföhn', 'Hairdryer'),
|
|
]
|
|
|
|
class Apartment {
|
|
readonly title: string
|
|
readonly subtitle: Text
|
|
readonly features: Feature[]
|
|
|
|
constructor(
|
|
index: number,
|
|
readonly de: string,
|
|
readonly en: string,
|
|
specifics: Feature[],
|
|
readonly images: string[]
|
|
) {
|
|
this.title = '${apartments[' + index.toString() + '].title}'
|
|
this.subtitle = new Text(de, en)
|
|
|
|
this.features = [
|
|
new Feature('lucide:coins', '${apartments[' + index.toString() + '].price.text}'),
|
|
new Feature('lucide:users', '${apartments[' + index.toString() + '].capacity.text}'),
|
|
new Feature('lucide:scaling', '${apartments[' + index.toString() + '].size} m²'),
|
|
...specifics,
|
|
...features,
|
|
]
|
|
}
|
|
}
|
|
|
|
export default {
|
|
list: [
|
|
new Apartment(
|
|
0,
|
|
'${apartments[0].size} m² Urlaubsvergnügen! Dieses gemütliche Appartement bietet Ihnen Platz für bis zu ${apartments[0].capacity.to} Personen. Freuen Sie sich auf 1 Schlafzimmer, eine Wohnküche mit ausziehbarer Couch, Badezimmer, eine kleine Terrasse und ein getrenntes WC.',
|
|
'${apartments[0].size} m² of holiday comfort! This cozy apartment comfortably accommodates up to ${apartments[0].capacity.to} guests. It features one bedroom, an open-plan kitchen and living area with a pull-out sofa, a bathroom, a small terrace, and a separate toilet.',
|
|
[
|
|
new Feature(
|
|
'lucide:mountain',
|
|
'Terrasse mit idyllischem Ausblick',
|
|
'Terrace with idyllic view'
|
|
),
|
|
new Feature('lucide:bed-double', 'Schlafzimmer mit Doppelbett', 'Bedroom with double bed'),
|
|
new Feature(
|
|
'lucide:sofa',
|
|
'Wohnküche mit ausziehbarem Schlafsofa',
|
|
'Living/kitchen area with sofa bed'
|
|
),
|
|
],
|
|
[
|
|
'/apartments/1/1.webp',
|
|
'/apartments/1/2.webp',
|
|
'/apartments/1/3.webp',
|
|
'/apartments/1/4.webp',
|
|
'/apartments/1/5.webp',
|
|
'/apartments/1/6.webp',
|
|
'/apartments/1/7.webp',
|
|
'/apartments/1/8.webp',
|
|
'/apartments/1/9.webp',
|
|
'/apartments/1/10.webp',
|
|
'/apartments/1/11.webp',
|
|
]
|
|
),
|
|
new Apartment(
|
|
1,
|
|
'Wohnkomfort auf ${apartments[1].size} m²! Dieses großzügige Appartement bietet Ihnen Platz für bis zu ${apartments[1].capacity.to} Personen und bietet 2 Schlafzimmer, eine Wohnküche, Badezimmer, einen Balkon und ein getrenntes WC.',
|
|
'Enjoy ${apartments[1].size} m² of comfortable living! This large apartment sleeps up to ${apartments[1].capacity.to} people and includes 2 bedrooms, a combined kitchen and living room, a bathroom, a balcony, and a separate toilet.',
|
|
[
|
|
new Feature(
|
|
'lucide:mountain',
|
|
'Balkon mit idyllischem Ausblick',
|
|
'Balcony with idyllic view'
|
|
),
|
|
new Feature(
|
|
'lucide:bed-double',
|
|
'Schlafzimmer 1 mit Doppelbett',
|
|
'Bedroom 1 with double bed'
|
|
),
|
|
new Feature(
|
|
'lucide:bed-double',
|
|
'Schlafzimmer 2 mit Doppelbett & Schlafsofa',
|
|
'Bedroom 2 with double bed & sofa bed'
|
|
),
|
|
new Feature('lucide:sofa', 'Wohnküche', 'Living/kitchen area'),
|
|
],
|
|
[
|
|
'/apartments/2/1.webp',
|
|
'/apartments/2/2.webp',
|
|
'/apartments/2/3.webp',
|
|
'/apartments/2/4.webp',
|
|
'/apartments/2/5.webp',
|
|
'/apartments/2/6.webp',
|
|
'/apartments/2/7.webp',
|
|
'/apartments/2/8.webp',
|
|
'/apartments/2/9.webp',
|
|
'/apartments/2/10.webp',
|
|
'/apartments/2/11.webp',
|
|
'/apartments/2/12.webp',
|
|
'/apartments/2/13.webp',
|
|
]
|
|
),
|
|
new Apartment(
|
|
2,
|
|
'Wohlfühlen auf ${apartments[2].size} m²! Dieses geräumige Appartement bietet Ihnen Platz für bis zu ${apartments[2].capacity.to} Personen und bietet 2 Schlafzimmer, eine Wohnküche, Badezimmer, einen Balkon und ein getrenntes WC.',
|
|
'Spacious ${apartments[2].size} m² apartment for up to ${apartments[2].capacity.to} guests, with 2 bedrooms, a living kitchen, bathroom, balcony, and separate toilet.',
|
|
[
|
|
new Feature(
|
|
'lucide:mountain',
|
|
'Balkon mit idyllischem Ausblick',
|
|
'Balcony with idyllic view'
|
|
),
|
|
new Feature(
|
|
'lucide:bed-double',
|
|
'Schlafzimmer 1 mit Doppelbett',
|
|
'Bedroom 1 with double bed'
|
|
),
|
|
new Feature(
|
|
'lucide:bed-double',
|
|
'Schlafzimmer 2 mit Doppelbett & Schlafsofa',
|
|
'Bedroom 2 with double bed & sofa bed'
|
|
),
|
|
new Feature('lucide:sofa', 'Wohnküche', 'Living/kitchen area'),
|
|
],
|
|
[
|
|
'/apartments/3/1.webp',
|
|
'/apartments/3/2.webp',
|
|
'/apartments/3/3.webp',
|
|
'/apartments/3/4.webp',
|
|
'/apartments/3/5.webp',
|
|
'/apartments/3/6.webp',
|
|
'/apartments/3/7.webp',
|
|
'/apartments/3/8.webp',
|
|
'/apartments/3/9.webp',
|
|
'/apartments/3/10.webp',
|
|
'/apartments/3/11.webp',
|
|
'/apartments/3/12.webp',
|
|
'/apartments/3/13.webp',
|
|
'/apartments/3/14.webp',
|
|
]
|
|
),
|
|
],
|
|
}
|