import type { MenuItem } from '../../../data/types';

export interface TextConfig {
  // Navigation
  navigation: {
    menuItems: MenuItem[];
    landingMenuItems: MenuItem[];
    mobileMenuAriaLabel: string;
    logoAlt: string;
  };

  // Theme Toggle
  themeToggle: {
    lightIcon: string;
    darkIcon: string;
    lightModeText: string;
    darkModeText: string;
  };

  // Footer
  footer: {
    imprintText: string;
    copyrightText: string;
    technicalLinkText: string;
    landingLinkText: string;
    codebergAriaLabel: string;
    linkedinAriaLabel: string;
    emailAriaLabel: string;
  };

  // Hero Section
  hero: {
    title: string;
    description: string;
    primaryButtonText: string;
    secondaryButtonText: string;
    tertiaryButtonText: string;
    statItems: Array<{
      label: string;
      value: string;
    }>;
  };

  // About Section
  about: {
    title: string;
    subtitle: string;
    name: string;
    bio: string[];
    featureCards: Array<{
      title: string;
      description: string;
    }>;
  };

  // Landing Hero Section
  landingHero: {
    title: string;
    description: string;
    tertiaryButtonText: string;
  };

  // Landing About Me Section
  landingAboutMe: {
    title: string;
    subtitle: string;
    greeting: string;
    name: string;
    bio: string[];
    featureCards: Array<{
      title: string;
      description: string;
    }>;
  };

  // Landing Reasons Section
  landingReasons: {
    title: string;
    reasons: Array<{
      stat: string;
      text: string;
    }>;
    outro: string;
  };

  // Landing Experience Section
  landingExperience: {
    title: string;
    paragraphs: string[];
  };

  // Landing Winnings Section
  landingWinnings: {
    title: string;
    intro: string;
    items: Array<{ text: string; }>;
    outro: string;
  };

  // Landing Processes Section
  landingProcesses: {
    title: string;
    intro: string;
    items: Array<{ text: string; }>;
    outro: string;
  };

  // Landing References Section
  landingReferences: {
    title: string;
    items: Array<{
      referenceText: string;
      name: string;
      position: string;
    }>;
  };

  // Services Section
  services: {
    title: string;
    subtitle: string;
    serviceItems: Array<{
      title: string;
      description: string;
    }>;
  };

  // Skills Section
  skills: {
    title: string;
    subtitle: string;
    skillCategories: Array<{
      title: string;
      skills: Array<{
        skill: string;
        value: number;
      }>;
    }>;
  };

  // Projects Section
  projects: {
    title: string;
    subtitle: string;
    codeButtonText: string;
    liveButtonText: string;
    projectItems: Array<{
      id: number;
      title: string;
      description: string;
      image?: string;
      technologies?: string[];
      github?: string;
      live?: string;
      year?: string;
    }>;
  };

  // Certifications Section
  certifications: {
    title: string;
    subtitle: string;
    certificationItems: Array<{
      name: string;
      issuer: string;
    }>;
  };

  // Contact Section
  contact: {
    title: string;
    subtitle: string;
    connectTitle: string;
    connectDescription: string;
    buttonText: string;
    socialTitle: string;
    availabilityText: string;
    responseTimeLabel: string;
    responseTimeValue: string;
    preferredContactLabel: string;
    preferredContactValue: string;
    locationLabel: string;
    locationValue: string;
    emailSubject: string;
    emailBody: string;
    emailAnnouncement: string;
    socialAnnouncement: string;
    codebergLinkText: string;
    linkedinLinkText: string;
    appointmentHintText: string;
    appointmentLinkText: string;
  };

  // Imprint Page
  imprint: {
    umsatzsteuerID: string;
    vatID: string;
    title: string;
    subtitle: string;
    companyInfoTitle: string;
    businessRegistrationTitle: string;
    businessRegistration: {
      title: string;
      dateIssued: string;
      issuedBy: string;
      authority: string;
    };
    contactTitle: string;
    responsibilityTitle: string;
    disclaimerTitle: string;
    contentLiabilityTitle: string;
    contentLiabilityText: string[];
    copyrightTitle: string;
    copyrightText: string[];
    privacyTitle: string;
    privacyText: string;
    detailedPrivacyPolicy: {
      title: string;
      introduction: string;
      responsibleTitle: string;
      responsibleText: string;
      responsibleContact: string;
      dataProtectionOfficerTitle: string;
      dataProtectionOfficerText: string;
      rightsTitle: string;
      rightsIntro: string;
      rights: Array<{ title: string; text: string; }>;
      revocationTitle: string;
      revocationText: string;
      objectionTitle: string;
      objectionText: string;
      objectionHighlight: string;
      objectionContact: string;
      dataDeletionTitle: string;
      dataDeletionIntro: string;
      dataDeletionReasons: string[];
      retentionText: string;
      webhostingTitle: string;
      webhostingText: string;
      webhostingDataTypes: string[];
      webhostingPurpose: string;
      webhostingDataCategories: {
        affectedData: string;
        affectedDataList: string[];
        affectedPersons: string;
        processingPurpose: string;
        legalBasis: string;
        provider: string;
      };
      hostingProvider: {
        name: string;
        address: string;
        website: string;
        privacyPolicyLabel: string;
      };
      contactTitle: string;
      contactText: string;
      contactDataLabels: {
        affectedData: string;
        affectedPersons: string;
        processingPurpose: string;
        legalBasis: string;
      };
      contactDataCategories: {
        affectedData: string[];
        affectedPersons: string;
        processingPurpose: string;
        legalBasis: string;
      };
      onlineAppointmentTitle: string;
      onlineAppointmentIntro: string;
      onlineAppointmentProvider: string;
      onlineAppointmentDataTitle: string;
      onlineAppointmentData: string[];
      onlineAppointmentPurpose: string;
      onlineAppointmentLegalBasis: string;
      onlineAppointmentRetention: string;
      onlineAppointmentThirdParty: string;
      onlineAppointmentServerLocation: string;
      securityTitle: string;
      securityText: string;
      changesTitle: string;
      changesText: string;
      disclaimer: string;
    };
    address: {
      street: string;
      city: string;
      country: string;
    };
    contact: {
      phone: string;
    };
  };

  // Privacy Policy Page
  privacyPolicy: {
    title: string;
    lastUpdated: string;
    introTitle: string;
    introText: string;
    dataCollectionTitle: string;
    dataCollectionText: string;
    dataCollectionList: string[];
    webhostingTitle: string;
    webhostingText: string;
    webhostingProvider: string;
    webhostingProviderName: string;
    webhostingProviderAddress: string;
    webhostingProviderWebsite: string;
    rightsTitle: string;
    rightsText: string;
    rightsList: string[];
    contactTitle: string;
    contactText: string;
    contactEmail: string;
  };

  // Accessibility and Navigation
  accessibility: {
    skipLinks: {
      skipToHero: string;
      skipToAbout: string;
      skipToServices: string;
      skipToSkills: string;
      skipToProjects: string;
      skipToCertifications: string;
      skipToContact: string;
    };
    navigation: {
      keyboardHelp: string;
      keyboardHelpExpanded: string[];
      useTabToNavigate: string;
      useTabToNavigateCards: string;
      useTabToNavigateOptions: string;
      closeKeyboardHelp: string;
    };
    screenReader: {
      professionalStatistics: string;
      projectCard: string;
      viewSourceCode: string;
      viewLiveDemo: string;
      downloadResume: string;
      downloadResumeDescription: string;
      keyboardNavigationHelp: string;
      themeSwitchButton: string;
      switchToTheme: string;
      certificationCard: string;
      serviceCard: string;
      skillBadge: string;
    };
    ariaLabels: {
      mainNavigation: string;
      socialLinks: string;
      themeToggle: string;
      mobileMenuToggle: string;
      contactForm: string;
      projectsGrid: string;
      skillsGrid: string;
      certificationsGrid: string;
      servicesGrid: string;
    };
  };
}
