Changes in maths and new image
All checks were successful
Deploy NPM app / Deploy NPM (push) Successful in 1m15s

This commit is contained in:
Ichitux
2026-05-29 12:01:55 +02:00
parent 3671103b51
commit 35166529fa
5 changed files with 25 additions and 5 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

View File

@@ -114,13 +114,18 @@ const MixedBookingSection = () => {
{price > 0 ? `${price}` : t("mixedBooking.priceTBD")}
</p>
<p className="text-sm font-medium text-foreground mt-2">
{t(`mixedBooking.passTypes.${pkg.id}`)}: {passPrice} {pkg.id === "full" ? t("mixedBooking.perPerson") : t("mixedBooking.perParty")}
{t(`mixedBooking.passTypes.${pkg.id}`)}: {basePrice} {pkg.id === "full" ? t("mixedBooking.perPerson") : t("mixedBooking.perParty")}
</p>
{showNonHotelNote && (
<p className="text-xs text-red-600 font-medium mt-2">
{t("mixedBooking.nonHotelNote")}
</p>
)}
{pkg.id === "full" && fullPassPricing.validUntilKey && (
<p className="text-xs text-muted-foreground mt-1">
{t(`mixedBooking.${fullPassPricing.validUntilKey}`)}
</p>
)}
{hasHotel && (
<p className="text-sm font-medium text-foreground mt-2">
{t(`mixedBooking.roomTypes.${selectedRoom}`)}: {roomPrice}

View File

@@ -25,6 +25,7 @@ import milu from "@/assets/staff/milu.jpg";
import safira from "@/assets/staff/safira.jpg";
import brazromi from "@/assets/staff/braz_romi.jpg";
import emanoel from "@/assets/staff/emanoel.jpg";
import didipatri from "@/assets/staff/didipatri.jpg";
import gal1 from "@/assets/gallery/gal1.jpg";
import gal2 from "@/assets/gallery/gal2.jpg";
@@ -233,6 +234,16 @@ export const STAFF = [
instagram: "",
},
},
{
id: "15",
name: "[Didi & Patricia]",
role: "Teacher" as const,
description: "[Breve biografía del profesor]",
image: didipatri,
socials: {
instagram: "",
},
},
];
// ---- PROGRAMA DEL EVENTO ----
@@ -342,19 +353,19 @@ export const ROOM_TYPES: { id: RoomType }[] = [
* - 1 de julio - 1 de septiembre: 190€
* - Después del inicio del evento: 200€ (último precio)
*/
export function getFullPassPrice(): { price: number; isLastPrice: boolean } {
export function getFullPassPrice(): { price: number; isLastPrice: boolean; validUntilKey: string | null } {
const now = new Date();
const julyFirst = new Date("2026-07-01T00:00:00");
const septemberFirst = new Date("2026-09-01T00:00:00");
const eventStart = new Date(EVENT_INFO.date);
if (now < julyFirst) {
return { price: 170, isLastPrice: false };
return { price: 170, isLastPrice: false, validUntilKey: "validUntilJuly" };
} else if (now < septemberFirst) {
return { price: 190, isLastPrice: false };
return { price: 190, isLastPrice: false, validUntilKey: "validUntilSeptember" };
} else {
// After event starts
return { price: 200, isLastPrice: true };
return { price: 200, isLastPrice: true, validUntilKey: null };
}
}

View File

@@ -137,6 +137,8 @@
"hotelYes": "Yes",
"hotelNo": "No",
"nonHotelNote": "+50€ fee for not staying in hotel",
"validUntilJuly": "From now until 1 July",
"validUntilSeptember": "From now until 1 September",
"roomTypes": {
"individual": "Single Room",
"double": "Double Room",

View File

@@ -137,6 +137,8 @@
"hotelYes": "Sí",
"hotelNo": "No",
"nonHotelNote": "+50€ por no alojarse en hotel",
"validUntilJuly": "Desde ahora hasta el 1 de julio",
"validUntilSeptember": "Desde ahora hasta el 1 de septiembre",
"roomTypes": {
"individual": "Habitación Individual",
"double": "Habitación Doble",