feat: add master classes section with registration system

- New master classes section on landing page with upcoming events grid
- Admin CRUD for master classes (image, slots, trainer, style, cost, location)
- User signup modal (name + Instagram required, Telegram optional)
- Admin registration management: view, add, edit, delete with quick-contact links
- Customizable success message for signup confirmation
- Auto-filter past events, Russian date formatting, duration auto-calculation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-15 18:29:06 +03:00
parent 6981376171
commit 84b0bc4d60
14 changed files with 1573 additions and 3 deletions

View File

@@ -69,6 +69,24 @@ export interface ScheduleLocation {
days: ScheduleDay[];
}
export interface MasterClassSlot {
date: string; // ISO "2026-03-13"
startTime: string; // "19:00"
endTime: string; // "21:00"
}
export interface MasterClassItem {
title: string;
image: string;
slots: MasterClassSlot[];
trainer: string;
cost: string;
style: string;
location?: string;
description?: string;
instagramUrl?: string;
}
export interface ContactInfo {
title: string;
addresses: string[];
@@ -113,6 +131,11 @@ export interface SiteContent {
rentalItems: PricingItem[];
rules: string[];
};
masterClasses: {
title: string;
successMessage?: string;
items: MasterClassItem[];
};
schedule: {
title: string;
locations: ScheduleLocation[];

View File

@@ -1,2 +1,2 @@
export type { NavLink } from "./navigation";
export type { ClassItem, TeamMember, FAQItem, PricingItem, ContactInfo, SiteContent, ScheduleClass, ScheduleDay, ScheduleLocation } from "./content";
export type { ClassItem, TeamMember, FAQItem, PricingItem, MasterClassItem, MasterClassSlot, ContactInfo, SiteContent, ScheduleClass, ScheduleDay, ScheduleLocation } from "./content";