fix: remove Herrnhof Villa from accommodation options
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
b02ebcacae
commit
d6e33f12e3
|
|
@ -42,11 +42,6 @@ const PROCESSING_FEE_PERCENT = 0.02 // 2% to cover Mollie payment processing fee
|
|||
const ACCOMMODATION_PRICES: Record<string, { label: string; price: number }> = {
|
||||
"ch-multi": { label: "Bed in shared room (Commons Hub)", price: 279.30 },
|
||||
"ch-double": { label: "Bed in double room (Commons Hub)", price: 356.30 },
|
||||
"hh-single": { label: "Single room (Herrnhof)", price: 665 },
|
||||
"hh-double-separate": { label: "Double room, separate beds (Herrnhof)", price: 420 },
|
||||
"hh-double-shared": { label: "Double room, shared double bed (Herrnhof)", price: 350 },
|
||||
"hh-triple": { label: "Triple room (Herrnhof)", price: 350 },
|
||||
"hh-daybed": { label: "Daybed or extra bed in living room (Herrnhof)", price: 280 },
|
||||
}
|
||||
|
||||
// Public base URL
|
||||
|
|
|
|||
|
|
@ -117,47 +117,6 @@ export default function FinancialTransparencyPage() {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<h4 className="font-semibold mb-3">Herrnhof Villa (nearby)</h4>
|
||||
<p className="text-xs text-muted-foreground mb-3">
|
||||
Historic 19th-century mansion with newly renovated apartments, sauna, and river swimming platform.
|
||||
All prices per person for 7 nights (incl. city tax & VAT).
|
||||
</p>
|
||||
<div className="space-y-3 mb-6">
|
||||
<div className="bg-muted/50 p-4 rounded-lg">
|
||||
<div className="flex justify-between items-baseline">
|
||||
<span className="text-sm font-medium">Single room</span>
|
||||
<span className="text-lg font-bold">€665<span className="text-sm font-normal text-muted-foreground"> (€95/night)</span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div className="bg-muted/50 p-4 rounded-lg">
|
||||
<div className="flex justify-between items-baseline">
|
||||
<span className="text-sm font-medium">Double room (separate beds)</span>
|
||||
<span className="text-lg font-bold">€420<span className="text-sm font-normal text-muted-foreground">/person (€60/night)</span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div className="bg-muted/50 p-4 rounded-lg">
|
||||
<div className="flex justify-between items-baseline">
|
||||
<span className="text-sm font-medium">Double room (shared double bed)</span>
|
||||
<span className="text-lg font-bold">€350<span className="text-sm font-normal text-muted-foreground">/person (€50/night)</span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div className="bg-muted/50 p-4 rounded-lg">
|
||||
<div className="flex justify-between items-baseline">
|
||||
<span className="text-sm font-medium">Triple room (one single, one shared double bed)</span>
|
||||
<span className="text-lg font-bold">€350<span className="text-sm font-normal text-muted-foreground">/person (€50/night)</span></span>
|
||||
</div>
|
||||
</div>
|
||||
<div className="bg-muted/50 p-4 rounded-lg">
|
||||
<div className="flex justify-between items-baseline">
|
||||
<span className="text-sm font-medium">Daybed or extra bed in living room</span>
|
||||
<span className="text-lg font-bold">€280<span className="text-sm font-normal text-muted-foreground">/person (€40/night)</span></span>
|
||||
</div>
|
||||
</div>
|
||||
<p className="text-xs text-muted-foreground">
|
||||
For whole-apartment quotes, contact <a href="mailto:office@commons-hub.at" className="text-primary hover:underline">office@commons-hub.at</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="pt-4">
|
||||
<h4 className="font-semibold mb-3">Other accommodation nearby:</h4>
|
||||
<ul className="space-y-2 text-sm text-muted-foreground">
|
||||
|
|
@ -215,7 +174,7 @@ export default function FinancialTransparencyPage() {
|
|||
|
||||
<p className="text-sm text-muted-foreground italic pt-4">
|
||||
*With regular pricing (€120 ticket), total would be €399.30. With late pricing (€150 ticket), total
|
||||
would be €429.30. Herrnhof Villa accommodation starts from €280/person for the week (€40/night).
|
||||
would be €429.30.
|
||||
</p>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
|
|
|||
|
|
@ -28,11 +28,6 @@ function getCurrentTier() {
|
|||
const ACCOMMODATION_PRICES: Record<string, { label: string; price: number }> = {
|
||||
"ch-multi": { label: "Bed in shared room (Commons Hub)", price: 279.30 },
|
||||
"ch-double": { label: "Bed in double room (Commons Hub)", price: 356.30 },
|
||||
"hh-single": { label: "Single room (Herrnhof)", price: 665 },
|
||||
"hh-double-separate": { label: "Double room, separate beds (Herrnhof)", price: 420 },
|
||||
"hh-double-shared": { label: "Double room, shared double bed (Herrnhof)", price: 350 },
|
||||
"hh-triple": { label: "Triple room, one single + one shared double bed (Herrnhof)", price: 350 },
|
||||
"hh-daybed": { label: "Daybed or extra bed in living room (Herrnhof)", price: 280 },
|
||||
}
|
||||
|
||||
// ── Promo codes ───────────────────────────────────────────────
|
||||
|
|
@ -56,7 +51,7 @@ export default function RegisterForm({ tierOverride, promoCode, banner }: Regist
|
|||
const [isSubmitting, setIsSubmitting] = useState(false)
|
||||
const [includeAccommodation, setIncludeAccommodation] = useState(true)
|
||||
const [wantFood, setWantFood] = useState(false)
|
||||
const [accommodationVenue, setAccommodationVenue] = useState<"commons-hub" | "herrnhof">("commons-hub")
|
||||
const [accommodationVenue, setAccommodationVenue] = useState<"commons-hub">("commons-hub")
|
||||
const [accommodationType, setAccommodationType] = useState("ch-multi")
|
||||
const [formData, setFormData] = useState({
|
||||
name: "",
|
||||
|
|
@ -207,33 +202,7 @@ export default function RegisterForm({ tierOverride, promoCode, banner }: Regist
|
|||
</div>
|
||||
{includeAccommodation ? (
|
||||
<div className="mt-3 space-y-4">
|
||||
{/* Venue selection */}
|
||||
<RadioGroup
|
||||
value={accommodationVenue}
|
||||
onValueChange={(value: string) => {
|
||||
const venue = value as "commons-hub" | "herrnhof"
|
||||
setAccommodationVenue(venue)
|
||||
setAccommodationType(venue === "commons-hub" ? "ch-multi" : "hh-single")
|
||||
}}
|
||||
className="space-y-2"
|
||||
>
|
||||
<div className="flex items-center space-x-2">
|
||||
<RadioGroupItem value="commons-hub" id="venue-ch" />
|
||||
<Label htmlFor="venue-ch" className="font-medium cursor-pointer text-sm">
|
||||
Commons Hub
|
||||
</Label>
|
||||
</div>
|
||||
<div className="flex items-center space-x-2">
|
||||
<RadioGroupItem value="herrnhof" id="venue-hh" />
|
||||
<Label htmlFor="venue-hh" className="font-medium cursor-pointer text-sm">
|
||||
Herrnhof Villa
|
||||
</Label>
|
||||
</div>
|
||||
</RadioGroup>
|
||||
|
||||
{/* Sub-options per venue */}
|
||||
{accommodationVenue === "commons-hub" ? (
|
||||
<div className="pl-6 border-l-2 border-primary/20">
|
||||
<div className="pl-6 border-l-2 border-primary/20">
|
||||
<p className="text-xs text-muted-foreground mb-2">
|
||||
30 beds on-site at the main venue. Basic, communal accommodation.
|
||||
</p>
|
||||
|
|
@ -256,54 +225,6 @@ export default function RegisterForm({ tierOverride, promoCode, banner }: Regist
|
|||
</div>
|
||||
</RadioGroup>
|
||||
</div>
|
||||
) : (
|
||||
<div className="pl-6 border-l-2 border-primary/20">
|
||||
<p className="text-xs text-muted-foreground mb-2">
|
||||
Historic 19th-century mansion with newly renovated apartments, sauna,
|
||||
and river swimming platform. Prices per person for 7 nights (incl. city tax & VAT).
|
||||
</p>
|
||||
<RadioGroup
|
||||
value={accommodationType}
|
||||
onValueChange={setAccommodationType}
|
||||
className="space-y-2"
|
||||
>
|
||||
<div className="flex items-center space-x-2">
|
||||
<RadioGroupItem value="hh-single" id="hh-single" />
|
||||
<Label htmlFor="hh-single" className="font-normal cursor-pointer text-sm">
|
||||
Single room — €665 (€95/night)
|
||||
</Label>
|
||||
</div>
|
||||
<div className="flex items-center space-x-2">
|
||||
<RadioGroupItem value="hh-double-separate" id="hh-double-separate" />
|
||||
<Label htmlFor="hh-double-separate" className="font-normal cursor-pointer text-sm">
|
||||
Double room (separate beds) — €420 (€60/night per person)
|
||||
</Label>
|
||||
</div>
|
||||
<div className="flex items-center space-x-2">
|
||||
<RadioGroupItem value="hh-double-shared" id="hh-double-shared" />
|
||||
<Label htmlFor="hh-double-shared" className="font-normal cursor-pointer text-sm">
|
||||
Double room (shared double bed) — €350 (€50/night per person)
|
||||
</Label>
|
||||
</div>
|
||||
<div className="flex items-center space-x-2">
|
||||
<RadioGroupItem value="hh-triple" id="hh-triple" />
|
||||
<Label htmlFor="hh-triple" className="font-normal cursor-pointer text-sm">
|
||||
Triple room (one single, one shared double bed) — €350 (€50/night per person)
|
||||
</Label>
|
||||
</div>
|
||||
<div className="flex items-center space-x-2">
|
||||
<RadioGroupItem value="hh-daybed" id="hh-daybed" />
|
||||
<Label htmlFor="hh-daybed" className="font-normal cursor-pointer text-sm">
|
||||
Daybed or extra bed in living room — €280 (€40/night per person)
|
||||
</Label>
|
||||
</div>
|
||||
</RadioGroup>
|
||||
<p className="text-xs text-muted-foreground mt-2">
|
||||
For whole-apartment quotes, contact{" "}
|
||||
<a href="mailto:office@commons-hub.at" className="text-primary hover:underline">office@commons-hub.at</a>.
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
) : (
|
||||
<p className="text-sm text-muted-foreground mt-1">
|
||||
|
|
|
|||
|
|
@ -21,27 +21,6 @@ const ACCOMMODATION_CRITERIA: Record<
|
|||
bedTypes: ["double", "double (shared)"],
|
||||
roomFilter: (room) => room === "2",
|
||||
},
|
||||
"hh-single": {
|
||||
venue: "Herrnhof Villa",
|
||||
bedTypes: ["double"],
|
||||
},
|
||||
"hh-double-separate": {
|
||||
venue: "Herrnhof Villa",
|
||||
bedTypes: ["single"],
|
||||
},
|
||||
"hh-double-shared": {
|
||||
venue: "Herrnhof Villa",
|
||||
bedTypes: ["double (shared)"],
|
||||
},
|
||||
"hh-triple": {
|
||||
venue: "Herrnhof Villa",
|
||||
bedTypes: ["double (shared)"],
|
||||
roomFilter: (room) => room.toLowerCase().includes("triple"),
|
||||
},
|
||||
"hh-daybed": {
|
||||
venue: "Herrnhof Villa",
|
||||
bedTypes: ["couch"],
|
||||
},
|
||||
}
|
||||
|
||||
interface BedRow {
|
||||
|
|
@ -65,7 +44,7 @@ interface BookingResult {
|
|||
* Parse the booking spreadsheet to extract bed information.
|
||||
*
|
||||
* Expected sheet structure:
|
||||
* - Two venue sections: "Commons Hub" and "Herrnhof Villa" appear as section headers
|
||||
* - Venue sections (e.g. "Commons Hub") appear as section headers
|
||||
* - Below each header: column headers with Room, Bed Type, then date columns
|
||||
* - Bed rows follow with room number, bed type, and occupant names in date columns
|
||||
* - Room numbers may be merged (only first row of a room group has the room number)
|
||||
|
|
@ -96,15 +75,6 @@ function parseBookingSheet(data: string[][]): BedRow[] {
|
|||
lastRoom = ""
|
||||
continue
|
||||
}
|
||||
if (
|
||||
firstCell.toLowerCase().includes("herrnhof") ||
|
||||
firstCell.toLowerCase().includes("villa")
|
||||
) {
|
||||
currentVenue = "Herrnhof Villa"
|
||||
inDataSection = false
|
||||
lastRoom = ""
|
||||
continue
|
||||
}
|
||||
|
||||
if (!currentVenue) continue
|
||||
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ export async function sendPaymentConfirmation(
|
|||
data.accommodationVenue
|
||||
? `<p>Your accommodation at the <strong>${data.accommodationVenue}</strong>${data.accommodationRoom ? ` (Room ${data.accommodationRoom})` : ""} has been reserved for the duration of the gathering.</p>
|
||||
<p>We'll be in touch about food arrangements as we work to keep costs down while creating inclusive, participatory processes for the event.</p>`
|
||||
: `<p>We'll be in touch about food arrangements as we work to keep costs down while creating inclusive, participatory processes for the event. If you haven't yet decided on accommodation, the <strong>Commons Hub</strong> (our main venue) and the nearby <strong>Herrnhof Villa</strong> are the most convenient options — right in the heart of the gathering. Email <a href="mailto:contact@cryptocommonsgather.ing" style="color: #f59e0b;">contact@cryptocommonsgather.ing</a> for any questions.</p>`
|
||||
: `<p>We'll be in touch about food arrangements as we work to keep costs down while creating inclusive, participatory processes for the event. If you haven't yet decided on accommodation, the <strong>Commons Hub</strong> (our main venue) is the most convenient option — right in the heart of the gathering. Email <a href="mailto:contact@cryptocommonsgather.ing" style="color: #f59e0b;">contact@cryptocommonsgather.ing</a> for any questions.</p>`
|
||||
}
|
||||
|
||||
<h3 style="color: #92400e;">What's Next?</h3>
|
||||
|
|
|
|||
Loading…
Reference in New Issue