import { ContactType, NotificationType } from '../../domain/entities/user-contact.entity';

// Request DTOs
export class AddContactDto {
  type: ContactType;
  value: string;
}

export class UpdateContactValueDto {
  value: string;
}

export class VerifyContactDto {
  code: string;
}

export class EnableNotificationsDto {
  notificationTypes: NotificationType[];
}

export class UpdateNotificationTypesDto {
  notificationTypes: NotificationType[];
}

// Response DTOs
export class UserContactResponseDto {
  id: string;
  userId: string;
  type: string;
  value: string;
  displayName: string | null;
  isVerified: boolean;
  verifiedAt: Date | null;
  notificationEnabled: boolean;
  enabledNotificationTypes: string[];
  createdAt: Date;
  updatedAt: Date;
}

export class VerificationResponseDto {
  message: string;
  expiresAt: Date;
  // code is only included in development mode
  code?: string;
}

export class ContactStatsDto {
  EMAIL: number;
  WECHAT: number;
  WHATSAPP: number;
  TELEGRAM: number;
  LINE: number;
}
