export interface Product {
  id: string
  slug: string
  name: string
  tagline: string | null
  description: string
  icon: string | null
  heroImage: string | null
  isActive: boolean
  sortOrder: number
  features: Feature[]
  pricingPlans: PricingPlan[]
  faqs: FAQ[]
  createdAt: string
  updatedAt: string
}

export interface Feature {
  id: string
  productId: string
  title: string
  description: string
  icon: string | null
  sortOrder: number
}

export interface PricingPlan {
  id: string
  productId: string
  name: string
  description: string | null
  price: number
  currency: string
  interval: string
  features: string[]
  isPopular: boolean
  isActive: boolean
  sortOrder: number
}

export interface FAQ {
  id: string
  productId: string | null
  question: string
  answer: string
  isActive: boolean
  sortOrder: number
}

export interface Policy {
  id: string
  slug: string
  title: string
  type: PolicyType
  content: string
  version: string
  isActive: boolean
  effectiveAt: string
  createdAt: string
  updatedAt: string
}

export type PolicyType =
  | 'PRIVACY_POLICY'
  | 'TERMS_OF_SERVICE'
  | 'APP_STORE_REQUIREMENTS'
  | 'PLAY_STORE_REQUIREMENTS'
  | 'COOKIES_POLICY'
  | 'REFUND_POLICY'
  | 'ACCEPTABLE_USE'

export interface Page {
  id: string
  slug: string
  title: string
  content: string
  metaTitle: string | null
  metaDesc: string | null
  isPublished: boolean
  publishedAt: string | null
  createdAt: string
  updatedAt: string
}

export interface Testimonial {
  id: string
  name: string
  role: string | null
  company: string | null
  content: string
  avatar: string | null
  rating: number
  isActive: boolean
  sortOrder: number
}

export interface ContactSubmission {
  id: string
  name: string
  email: string
  phone: string | null
  company: string | null
  subject: string
  message: string
  isRead: boolean
  createdAt: string
}

export interface User {
  id: string
  email: string
  name: string
  role: 'SUPER_ADMIN' | 'ADMIN' | 'EDITOR'
  isActive: boolean
}

export interface AuthResponse {
  accessToken: string
  user: User
}

export interface SiteConfig {
  [key: string]: string
}
