import type {
  SendRequest,
  NormalizedMessage,
  ApplicationConfig,
  RoutingConfig,
} from '@zyphon/shared-types';

export const sampleSendRequest: SendRequest = {
  channel: 'email',
  recipient: 'user@example.com',
  content: {
    type: 'text',
    subject: 'Welcome to Zyphon',
    body: 'Your test message body.',
  },
  metadata: {
    environment: 'test',
  },
};

export const sampleNormalizedMessage: NormalizedMessage = {
  message_id: 'msg_01J8TEST1234567890ABCDEF',
  request_id: 'req_01J8TEST1234567890ABCDEF',
  application_id: 'app_test',
  channel: 'email',
  recipient: 'user@example.com',
  content: {
    type: 'text',
    subject: 'Welcome to Zyphon',
    body: 'Your test message body.',
  },
  metadata: {
    environment: 'test',
  },
  created_at: 1700000000000,
};

export const sampleAppConfig: ApplicationConfig = {
  id: 'app_ecommerce',
  name: 'E-Commerce Store',
  enabled: true,
  source: 'manual',
  channels: ['email', 'sms', 'whatsapp'],
  quota: {
    per_min: 120,
    per_day: 10000,
  },
  bindings: {
    email: ['smtp-primary', 'sendgrid-backup'],
    sms: ['twilio-sms'],
    whatsapp: ['meta-whatsapp'],
  },
};

export const sampleRoutingConfig: RoutingConfig = {
  default: {
    email: ['smtp-primary', 'sendgrid-backup'],
    sms: ['twilio-sms'],
    whatsapp: ['meta-whatsapp', 'twilio-whatsapp'],
  },
  retry: {
    max_attempts: 3,
    backoff_ms: 100,
  },
  timeout_ms: {
    email: 5000,
    sms: 4000,
    whatsapp: 6000,
  },
  circuit_breaker: {
    failure_threshold: 3,
    recovery_time_seconds: 20,
  },
};

