export interface LinkItem {
  id: number
  url: string
  type: 'link' | 'media'
  description: string | null
  created_at: string
  file_path: string | null
}

export interface UserList {
  id: number
  name: string
  created_at: string
  item_count: number
}

export interface Stats {
  total_items: number
  total_media: number
  total_links: number
  first_saved: string | null
  last_saved: string | null
}

export interface Subscription {
  status: 'active' | 'expired' | 'cancelled' | 'none'
  expires_at: string | null
  is_active: boolean
  days_remaining: number
}

export interface PaginatedResponse<T> {
  data: T[]
  pagination: {
    page: number
    per_page: number
    total: number
    total_pages: number
  }
}

export interface User {
  id: number
  email: string
  name: string
  is_admin?: boolean
}

export interface AdminUser {
  id: number
  name: string
  email: string
  status: 'pending' | 'active' | 'suspended'
  is_admin: boolean
  created_at: string
  sub_id: number | null
  sub_status: 'active' | 'expired' | 'cancelled' | null
  sub_active: boolean
  starts_at: string | null
  expires_at: string | null
  days_remaining: number
}

export interface AdminStats {
  total_users: number
  active_users: number
  pending_users: number
  suspended_users: number
  active_subscriptions: number
  total_telegram_users: number
  active_telegram_subs: number
}

export interface SubscriptionPlan {
  id: number
  name: string
  duration_days: number
  price: number
  storage_limit_mb: number
  file_limit: number | null
  is_active: boolean | number
  created_at: string
}

export interface TelegramUser {
  telegram_user_id: number
  username: string | null
  first_name: string
  created_at: string
  plan_id: number | null
  plan_name: string | null
  sub_id: number | null
  storage_limit_mb: number
  file_limit: number | null
  expires_at: string | null
  sub_status: 'active' | 'expired' | 'cancelled' | null
  file_count: number
  storage_used_mb: number
}
