export interface PublicAppConfig {
  oauth: { google: boolean; microsoft: boolean };
  authOAuth: { google: boolean; linkedin: boolean };
  emailProviders: {
    id: string;
    label: string;
    description: string;
    smtpHost: string | null;
    smtpPort: number;
  }[];
}

export type EmailProviderId =
  | 'platform'
  | 'gmail'
  | 'outlook'
  | 'yahoo'
  | 'sendgrid'
  | 'smtp';

export interface EmailSettings {
  provider: EmailProviderId;
  smtpHost: string | null;
  smtpPort: number;
  smtpUser: string | null;
  hasSmtpPassword: boolean;
  fromEmail: string | null;
  fromName: string | null;
  notificationsEnabled: boolean;
  sendFromUserEmail: boolean;
  sendReminderToGuest: boolean;
  sendReminderToHost: boolean;
  sendFollowUpEnabled: boolean;
  sendPostMeetingSurvey: boolean;
}

export interface UpdateEmailSettingsRequest {
  provider: EmailProviderId;
  smtpHost?: string | null;
  smtpPort?: number;
  smtpUser?: string | null;
  smtpPassword?: string | null;
  fromEmail?: string | null;
  fromName?: string | null;
  notificationsEnabled?: boolean;
  sendFromUserEmail?: boolean;
  sendReminderToGuest?: boolean;
  sendReminderToHost?: boolean;
  sendFollowUpEnabled?: boolean;
  sendPostMeetingSurvey?: boolean;
}
