// SEO Types
export interface SEOSettings {
  id: string;
  site_name: string;
  site_description: string | null;
  site_keywords: string | null;
  default_og_image: string | null;
  favicon_url: string | null;
  google_analytics_id: string | null;
  google_search_console_verification: string | null;
  facebook_app_id: string | null;
  twitter_handle: string | null;
  robots_txt: string | null;
  created_at: string;
  updated_at: string;
}

export interface PageSEO {
  id: string;
  page_path: string;
  page_title: string;
  meta_description: string | null;
  meta_keywords: string | null;
  og_title: string | null;
  og_description: string | null;
  og_image: string | null;
  og_type: string;
  twitter_card: string;
  twitter_title: string | null;
  twitter_description: string | null;
  twitter_image: string | null;
  canonical_url: string | null;
  structured_data: Record<string, any> | null;
  noindex: boolean;
  nofollow: boolean;
  created_at: string;
  updated_at: string;
}

export interface URLRedirect {
  id: string;
  from_path: string;
  to_path: string;
  redirect_type: number;
  is_active: boolean;
  created_at: string;
  updated_at: string;
}

export interface SEOMetaTags {
  title: string;
  description?: string;
  keywords?: string;
  ogTitle?: string;
  ogDescription?: string;
  ogImage?: string;
  ogType?: string;
  twitterCard?: string;
  twitterTitle?: string;
  twitterDescription?: string;
  twitterImage?: string;
  canonicalUrl?: string;
  noindex?: boolean;
  nofollow?: boolean;
}

export interface StructuredDataOrganization {
  '@context': 'https://schema.org';
  '@type': 'Organization';
  name: string;
  url: string;
  logo?: string;
  sameAs?: string[];
}

export interface StructuredDataWebSite {
  '@context': 'https://schema.org';
  '@type': 'WebSite';
  name: string;
  url: string;
  potentialAction?: {
    '@type': 'SearchAction';
    target: string;
    'query-input': string;
  };
}

export interface StructuredDataBreadcrumb {
  '@context': 'https://schema.org';
  '@type': 'BreadcrumbList';
  itemListElement: Array<{
    '@type': 'ListItem';
    position: number;
    name: string;
    item: string;
  }>;
}
