import { Injectable } from '@angular/core';
import { Meta, Title } from '@angular/platform-browser';

export interface SEOData {
  title: string;
  description: string;
  keywords?: string;
  image?: string;
  url?: string;
  type?: string;
}

@Injectable({
  providedIn: 'root'
})
export class SEOService {
  constructor(
    private meta: Meta,
    private titleService: Title
  ) {}

  updateSEO(data: SEOData) {
    // Update title
    this.titleService.setTitle(data.title);

    // Update meta description
    this.meta.updateTag({ name: 'description', content: data.description });

    // Update keywords if provided
    if (data.keywords) {
      this.meta.updateTag({ name: 'keywords', content: data.keywords });
    }

    // Open Graph tags
    this.meta.updateTag({ property: 'og:title', content: data.title });
    this.meta.updateTag({ property: 'og:description', content: data.description });
    this.meta.updateTag({ property: 'og:type', content: data.type || 'website' });
    
    if (data.url) {
      this.meta.updateTag({ property: 'og:url', content: data.url });
    }
    
    if (data.image) {
      this.meta.updateTag({ property: 'og:image', content: data.image });
    }

    // Twitter Card tags
    this.meta.updateTag({ name: 'twitter:card', content: 'summary_large_image' });
    this.meta.updateTag({ name: 'twitter:title', content: data.title });
    this.meta.updateTag({ name: 'twitter:description', content: data.description });
    
    if (data.image) {
      this.meta.updateTag({ name: 'twitter:image', content: data.image });
    }

    // Additional SEO tags
    this.meta.updateTag({ name: 'robots', content: 'index, follow' });
    this.meta.updateTag({ name: 'author', content: 'Florale Emotion - Veronika & Corinna' });
    this.meta.updateTag({ name: 'viewport', content: 'width=device-width, initial-scale=1' });
    
    // Structured data for local business
    this.updateStructuredData();
  }

  private updateStructuredData() {
    const structuredData = {
      "@context": "https://schema.org",
      "@type": "LocalBusiness",
      "name": "Florale Emotion",
      "description": "Spezialist für Blumenarrangements bei Hochzeiten, Beerdigungen und Events",
      "url": "https://florale-emotion.de",
      "telephone": "+49-XXX-XXXXXXX",
      "email": "info@florale-emotion.de",
      "address": {
        "@type": "PostalAddress",
        "addressCountry": "DE",
        "addressLocality": "Deutschland"
      },
      "geo": {
        "@type": "GeoCoordinates",
        "latitude": "51.1657",
        "longitude": "10.4515"
      },
      "openingHours": [
        "Mo-Fr 09:00-18:00",
        "Sa 10:00-16:00"
      ],
      "serviceArea": {
        "@type": "Country",
        "name": "Deutschland"
      },
      "services": [
        {
          "@type": "Service",
          "name": "Hochzeitsfloristik",
          "description": "Brautsträuße, Kirchenschmuck und Hochzeitsdekorationen"
        },
        {
          "@type": "Service", 
          "name": "Trauerfloristik",
          "description": "Trauerkränze, Gestecke und Grabschmuck"
        },
        {
          "@type": "Service",
          "name": "Event-Floristik",
          "description": "Florale Arrangements für Corporate Events und private Feiern"
        }
      ],
      "founder": [
        {
          "@type": "Person",
          "name": "Veronika",
          "jobTitle": "Floristmeisterin"
        },
        {
          "@type": "Person",
          "name": "Corinna", 
          "jobTitle": "Floristin"
        }
      ],
      "sameAs": [
        "https://www.instagram.com/florale_emotion",
        "https://www.facebook.com/floraleemotion",
        "https://www.tiktok.com/@floraleemotion"
      ]
    };

    // Remove existing structured data
    const existingScript = document.querySelector('script[type="application/ld+json"]');
    if (existingScript) {
      existingScript.remove();
    }

    // Add new structured data
    const script = document.createElement('script');
    script.type = 'application/ld+json';
    script.text = JSON.stringify(structuredData);
    document.head.appendChild(script);
  }

  getPageSEO(page: string): SEOData {
    const baseUrl = 'https://florale-emotion.de';
    
    const seoData: { [key: string]: SEOData } = {
      home: {
        title: 'Florale Emotion - Blumen für Hochzeiten, Beerdigungen & Events',
        description: 'Professionelle Floristik für Ihre besonderen Momente. Spezialist für Hochzeiten, Beerdigungen und Events. Individuelle Beratung und hochwertige Blumenarrangements.',
        keywords: 'Floristik, Hochzeit, Beerdigung, Events, Blumen, Brautstrauß, Trauerfloristik, Deutschland',
        url: baseUrl,
        type: 'website'
      },
      portfolio: {
        title: 'Portfolio - Unsere schönsten Blumenarrangements | Florale Emotion',
        description: 'Entdecken Sie unsere vielfältigen Blumenarrangements für Hochzeiten, Beerdigungen und Events. Lassen Sie sich von unseren Arbeiten inspirieren.',
        keywords: 'Portfolio, Blumenarrangements, Hochzeitsfloristik, Trauerfloristik, Galerie, Inspiration',
        url: `${baseUrl}/portfolio`,
        type: 'website'
      },
      services: {
        title: 'Services - Professionelle Floristik für jeden Anlass | Florale Emotion',
        description: 'Unsere Services: Hochzeitsfloristik, Trauerfloristik, Corporate Events. Von der Beratung bis zur Umsetzung - wir begleiten Sie bei jedem Schritt.',
        keywords: 'Services, Hochzeitsfloristik, Trauerfloristik, Corporate Events, Beratung, Floristik-Services',
        url: `${baseUrl}/services`,
        type: 'service'
      },
      about: {
        title: 'Über uns - Das Team von Florale Emotion | Veronika & Corinna',
        description: 'Lernen Sie Veronika und Corinna kennen - das Team hinter Florale Emotion. Erfahren Sie mehr über unsere Leidenschaft für die Floristik.',
        keywords: 'Über uns, Team, Veronika, Corinna, Floristmeisterin, Floristin, Leidenschaft',
        url: `${baseUrl}/about`,
        type: 'website'
      },
      contact: {
        title: 'Kontakt - Beratung anfragen | Florale Emotion',
        description: 'Kontaktieren Sie uns für eine persönliche Beratung. Wir erstellen Ihnen gerne ein individuelles Angebot für Ihr Event.',
        keywords: 'Kontakt, Beratung, Angebot, Anfrage, Termin, Floristik-Beratung',
        url: `${baseUrl}/contact`,
        type: 'website'
      }
    };

    return seoData[page] || seoData['home'];
  }
}