export interface IUser {
  user_id: string;
  name: string;
  email: string;
  store_id: string;
  acces_token: string;
  onboarded:boolean;
  agent_id:string;
  knowledge_base_id:string
}

export interface IShopifySession {
  id: string;
  shop: string;
  state: string;
  isOnline: boolean;
  scope: string;
  expires?: string;
  accessToken: string;
  onlineAccessInfo?: any;
}

export interface OnboardingState {
  isCompleted: boolean;
  currentStep: number;
  bussinessType?: string;
  channel?: string;
  supportAgent?: string;
}

export interface GlobalState {
  user: IUser | null;
  isLoading: boolean;
  theme: "light" | "dark";
  notifications: number;
  onboarding: OnboardingState | null;
}

export interface Product {
  product_id: string;
  description: string;
  image_url: string;
  price: number;
  title: string;
  url: string;
  currency: string;
}

export interface Message {
  id: string;
  text: string;
  sender: "user" | "agent";
  timestamp: Date;
  products?: Product[];
}

export interface ISubscriptionPlan {
  _id?: string;
  plan_id: string;
  name: string;
  description?: string;
  amount: number;
  interval?: string;
  interval_count?: number;
  benefits?: string[];
  currency?: string;
  is_deleted?: boolean;
  created_at?: number;
  updated_at?: number;
  __v?: number;
  agent_limit?: number;
  call_limit?: number;
  chat_token_limit?: number;
  knowledgebase_limit?: number;
  workspace_member_limit?: number;
}

export type SubscriptionPlansResponse = ISubscriptionPlan[];
