/**
 * Terminal DTOs
 */

import { TerminalProvider, HealthStatus } from '../../branches/entities/branch-payment-terminal.entity';

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;
}
