/** * Site-wide configuration for GridPilot website. * * Values are primarily sourced from environment variables so that * deployments can provide real company details without hard-coding * production data in the repository. * * Website must remain an API consumer (no adapter imports). */ export interface SiteConfigData { // Platform Information platformName: string; platformUrl: string; // Contact Information supportEmail: string; sponsorEmail: string; // Legal & Business Information legal: { companyName: string; vatId: string; registeredCountry: string; registeredAddress: string; }; // Platform Fees fees: { platformFeePercent: number; description: string; }; // VAT Information vat: { euReverseChargeApplies: boolean; nonEuVatExempt: boolean; standardRate: number; notice: string; euBusinessNotice: string; nonEuNotice: string; }; // Sponsorship Types Available sponsorshipTypes: { leagues: { enabled: boolean; title: string; description: string; }; teams: { enabled: boolean; title: string; description: string; }; drivers: { enabled: boolean; title: string; description: string; }; races: { enabled: boolean; title: string; description: string; }; platform: { enabled: boolean; title: string; description: string; }; }; // Feature Flags for Sponsorship Features features: { liveryPlacement: boolean; leaguePageBranding: boolean; racePageBranding: boolean; profileBadges: boolean; socialMediaMentions: boolean; newsletterInclusion: boolean; homepageAds: boolean; sidebarAds: boolean; broadcastOverlays: boolean; }; } export const siteConfig: SiteConfigData = { // Platform Information platformName: process.env.NEXT_PUBLIC_SITE_NAME ?? 'GridPilot', platformUrl: process.env.NEXT_PUBLIC_SITE_URL ?? 'https://gridpilot.com', // Contact Information supportEmail: process.env.NEXT_PUBLIC_SUPPORT_EMAIL ?? 'support@example.com', sponsorEmail: process.env.NEXT_PUBLIC_SPONSOR_EMAIL ?? 'sponsors@example.com', // Legal & Business Information legal: { companyName: process.env.NEXT_PUBLIC_LEGAL_COMPANY_NAME ?? '', vatId: process.env.NEXT_PUBLIC_LEGAL_VAT_ID ?? '', registeredCountry: process.env.NEXT_PUBLIC_LEGAL_REGISTERED_COUNTRY ?? '', registeredAddress: process.env.NEXT_PUBLIC_LEGAL_REGISTERED_ADDRESS ?? '', }, // Platform Fees fees: { platformFeePercent: 10, description: 'Platform fee supports maintenance, analytics, and secure payment processing.', }, // VAT Information vat: { euReverseChargeApplies: true, nonEuVatExempt: true, standardRate: 20, notice: 'All prices shown are exclusive of VAT. Applicable taxes will be calculated at checkout.', euBusinessNotice: 'EU businesses with a valid VAT ID may apply reverse charge.', nonEuNotice: 'Non-EU businesses are not charged VAT.', }, // Sponsorship Types Available sponsorshipTypes: { leagues: { enabled: true, title: 'League Sponsorship', description: 'Sponsor entire racing leagues and get your brand in front of all participants.', }, teams: { enabled: true, title: 'Team Sponsorship', description: 'Partner with competitive racing teams for long-term brand association.', }, drivers: { enabled: true, title: 'Driver Sponsorship', description: 'Support individual drivers and grow with rising sim racing talent.', }, races: { enabled: true, title: 'Race Sponsorship', description: 'Sponsor individual race events for targeted, high-impact exposure.', }, platform: { enabled: true, title: 'Platform Advertising', description: 'Reach the entire GridPilot audience with strategic platform placements.', }, }, // Feature Flags for Sponsorship Features features: { liveryPlacement: true, leaguePageBranding: true, racePageBranding: true, profileBadges: true, socialMediaMentions: true, newsletterInclusion: true, homepageAds: true, sidebarAds: true, broadcastOverlays: false, }, } as const; export type SiteConfig = typeof siteConfig;