/**
 * Terminal DTOs
 */

// Define types locally instead of importing from non-existent modules
export type TerminalProvider = 'mercadopago' | 'clip' | 'stripe_terminal';
export type HealthStatus = 'healthy' | 'degraded' | 'offline' | 'unknown';

export class CreateTerminalDto {
  branchId: string;
  terminalProvider: TerminalProvider;
  terminalId: string;
  terminalName?: string;
  credentials?: Record<string, any>;
  isPrimary?: boolean;
  dailyLimit?: number;
  transactionLimit?: number;
}

export class UpdateTerminalDto {
  terminalName?: string;
  credentials?: Record<string, any>;
  isPrimary?: boolean;
  isActive?: boolean;
  dailyLimit?: number;
  transactionLimit?: number;
}

export class TerminalHealthCheckDto {
  terminalId: string;
  status: HealthStatus;
  message?: string;
  responseTime?: number;
}

export class TerminalResponseDto {
  id: string;
  branchId: string;
  terminalProvider: TerminalProvider;
  terminalId: string;
  terminalName?: string;
  isPrimary: boolean;
  isActive: boolean;
  dailyLimit?: number;
  transactionLimit?: number;
  healthStatus: HealthStatus;
  lastTransactionAt?: Date;
  lastHealthCheckAt?: Date;
}
