index.ts1.6 KBView on GitHub
import type { Sender } from '@/modules/threads/threadList/store/threadSlice';

// ============================================
// User & Authentication Types
// ============================================

export interface User {
  name: string;
  email: string;
  avatar: string;
}

export interface IConnection {
  id: string;
  email: string;
  name?: string;
  picture?: string;
  createdAt: Date;
  providerId: string;
}

// ============================================
// UI & Navigation Types
// ============================================

export interface Account {
  name: string;
  logo: React.ComponentType<{ className?: string }>;
  email: string;
}

export interface NavItem {
  title: string;
  url: string;
  icon?: React.ComponentType<{ className?: string }>;
  isActive?: boolean;
  badge?: number;
}

export interface NavSection {
  title: string;
  items: NavItem[];
}

export interface SidebarData {
  user: User;
  accounts: Account[];
  navMain: NavSection[];
}

// ============================================
// Email Sending Types
// ============================================

export interface ISendEmail {
  to: Sender[];
  subject: string;
  message: string;
  attachments?: File[];
  headers?: Record<string, string>;
  cc?: Sender[];
  bcc?: Sender[];
  threadId?: string;
  fromEmail?: string;
}

export interface IOutgoingMessage {
  to: Sender[];
  subject: string;
  message: string;
  attachments?: File[];
  headers?: Record<string, string>;
  cc?: Sender[];
  bcc?: Sender[];
  threadId?: string;
  fromEmail?: string;
  isForward?: boolean;
  originalMessage?: string;
}