Skip to content

Instantly share code, notes, and snippets.

@nicolaslopezj
Created July 22, 2024 14:19
Show Gist options
  • Save nicolaslopezj/842077efd2e5b9b95b4b80f3c34b4cae to your computer and use it in GitHub Desktop.
Save nicolaslopezj/842077efd2e5b9b95b4b80f3c34b4cae to your computer and use it in GitHub Desktop.
Categorías de reservas
import {Prop, TypedSchema} from '@orion-js/typed-model'
@TypedSchema()
export class StoreProfileTagCategoryValue {
@Prop()
value: string
@Prop()
label: string
}
@TypedSchema()
export class StoreProfileTagCategory {
@Prop()
categoryId: string
@Prop()
label: string
@Prop()
description: string
@Prop()
max: number
@Prop({type: [StoreProfileTagCategoryValue]})
values: {
value: string
label: string
}[]
}
export const storeProfileTagCategories: StoreProfileTagCategory[] = [
{
categoryId: 'cuisine_type',
label: 'Tipo de cocina',
description: 'Selecciona el tipo de cocina que ofrece el restaurante. Máximo 3 opciones',
max: 3,
values: [
{value: 'local', label: 'Comida local'},
{value: 'pasta', label: 'Pasta'},
{value: 'pizza', label: 'Pizza'},
{value: 'burgers', label: 'Hamburguesas'},
{value: 'sushi', label: 'Sushi'},
{value: 'salad', label: 'Ensalada'},
{value: 'dessert', label: 'Postre'},
{value: 'coffee', label: 'Café'},
{value: 'tea', label: 'Té'},
{value: 'ice_cream', label: 'Helado'},
{value: 'alcohol', label: 'Licor'},
{value: 'wine', label: 'Vino'},
{value: 'beer', label: 'Cerveza'},
{value: 'cocktail', label: 'Cocktails'},
{value: 'seafood', label: 'Mariscos'},
{value: 'vegetarian', label: 'Vegetariano'},
{value: 'vegan', label: 'Vegano'},
{value: 'meat', label: 'Carne'},
{value: 'fish', label: 'Pescado'},
{value: 'italian', label: 'Italiano'},
{value: 'chinese', label: 'Chino'},
{value: 'mexican', label: 'Mexicano'},
{value: 'japanese', label: 'Japonés'},
{value: 'korean', label: 'Coreano'},
{value: 'vietnamese', label: 'Vietnamita'},
{value: 'thai', label: 'Tailandesa'},
{value: 'french', label: 'Francés'},
{value: 'spanish', label: 'Español'},
{value: 'portuguese', label: 'Portugués'},
{value: 'greek', label: 'Griego'},
{value: 'turkish', label: 'Turco'},
{value: 'arab', label: 'Árabe'},
{value: 'peruvian', label: 'Peruano'},
],
},
{
categoryId: 'amenities',
label: 'Servicios',
description: 'Selecciona los servicios que ofrece el restaurante.',
max: 10,
values: [
{value: 'wifi', label: 'WiFi'},
{value: 'parking', label: 'Estacionamiento'},
{value: 'accessibility', label: 'Accesibilidad'},
{value: 'outdoor_seating', label: 'Asientos al aire libre'},
{value: 'live_music', label: 'Música en vivo'},
{value: 'pet_friendly', label: 'Admite mascotas'},
{value: 'smoking_area', label: 'Área de fumadores'},
{value: 'non_smoking', label: 'No fumadores'},
{value: 'kid_friendly', label: 'Amigable para niños'},
{value: 'heating', label: 'Calefacción'},
{value: 'air_conditioning', label: 'Aire acondicionado'},
{value: 'coat_check', label: 'Guardarropa'},
{value: 'private_dining', label: 'Comedor privado'},
{value: 'entertainment', label: 'Entretenimiento'},
{value: 'takeout', label: 'Para llevar'},
{value: 'delivery', label: 'Entrega'},
{value: 'drive_through', label: 'Autoservicio'},
{value: 'catering', label: 'Catering'},
{value: 'full_bar', label: 'Bar completo'},
{value: 'byo', label: 'Trae tu propia bebida'},
],
},
{
categoryId: 'meal_period',
label: 'Periodo de comida',
description: 'Selecciona el periodo de comida que ofrece el restaurante.',
max: 10,
values: [
{value: 'early_morning', label: 'Madrugada'},
{value: 'breakfast', label: 'Desayuno'},
{value: 'brunch', label: 'Brunch'},
{value: 'lunch', label: 'Almuerzo'},
{value: 'afternoon_tea', label: 'Té de la tarde'},
{value: 'happy_hour', label: 'Happy hour'},
{value: 'dinner', label: 'Cena'},
{value: 'late_night', label: 'Noche'},
{value: 'after_party', label: 'Después de la fiesta'},
],
},
{
categoryId: 'payment_methods',
label: 'Métodos de pago',
description: 'Selecciona los métodos de pago que ofrece el restaurante.',
max: 10,
values: [
{value: 'credit_card', label: 'Tarjeta de crédito'},
{value: 'debit_card', label: 'Tarjeta de débito'},
{value: 'cash', label: 'Efectivo'},
{value: 'online_payment', label: 'Pago en línea'},
{value: 'voucher', label: 'Vale'},
{value: 'bank_transfer', label: 'Transferencia bancaria'},
{value: 'mobile_payment', label: 'Pago móvil'},
{value: 'cryptocurrency', label: 'Criptomoneda'},
],
},
{
categoryId: 'dining_style',
label: 'Estilo de comida',
description: 'Selecciona el estilo de comida que ofrece el restaurante.',
max: 10,
values: [
{value: 'casual_dining', label: 'Cena informal'},
{value: 'fine_dining', label: 'Cena elegante'},
{value: 'fast_food', label: 'Comida rápida'},
{value: 'buffet', label: 'Buffet'},
{value: 'cafe', label: 'Cafetería'},
{value: 'food_truck', label: 'Camión de comida'},
{value: 'bistro', label: 'Bistró'},
{value: 'pub', label: 'Pub'},
{value: 'tasting_menu', label: 'Restaurante de pasos'},
],
},
{
categoryId: 'dietary_restrictions',
label: 'Restricciones dietéticas',
description: 'Selecciona las restricciones dietéticas que ofrece el restaurante.',
max: 10,
values: [
{value: 'vegetarian', label: 'Vegetariano'},
{value: 'vegan', label: 'Vegano'},
{value: 'pescatarian', label: 'Pescetariano'},
{value: 'nut_free', label: 'Sin nueces'},
{value: 'dairy_free', label: 'Sin lácteos'},
{value: 'low_carb', label: 'Bajo en carbohidratos'},
{value: 'sugar_free', label: 'Sin azúcar'},
{value: 'paleo', label: 'Paleo'},
{value: 'keto', label: 'Keto'},
{value: 'organic', label: 'Orgánico'},
],
},
{
categoryId: 'price_range',
label: 'Rango de precios',
description: 'Selecciona el rango de precios que ofrece el restaurante.',
max: 1,
values: [
{value: '1', label: '$'},
{value: '2', label: '$$'},
{value: '3', label: '$$$'},
{value: '4', label: '$$$$'},
],
},
] as const
export const storeProfileTagsValues = storeProfileTagCategories.flatMap(category => {
return category.values.map(value => `${category.categoryId}.${value.value}`)
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment