/**
 * ID Mapping Domain - Contract
 *
 * Normalized types for mapping portal users to external systems.
 */

import type { IsoDateTimeString } from "@customer-portal/domain/common";

export interface UserIdMapping {
  id: string;
  userId: string;
  whmcsClientId: number;
  sfAccountId: string;
  createdAt: IsoDateTimeString | Date;
  updatedAt: IsoDateTimeString | Date;
}

export interface CreateMappingRequest {
  userId: string;
  whmcsClientId: number;
  sfAccountId: string;
}

export interface UpdateMappingRequest {
  whmcsClientId?: number | undefined;
  sfAccountId?: string | undefined;
}

/**
 * Validation result for mapping operations
 */
export interface MappingValidationResult {
  isValid: boolean;
  errors: string[];
  warnings: string[];
}
