<?php declare(strict_types = 1);

namespace MailPoet\WooCommerce;

if (!defined('ABSPATH')) exit;


class RandomCouponCodeGenerator {
  public function generate(): string {
    return implode('-', [
      $this->generateSegment(4),
      $this->generateSegment(6),
      $this->generateSegment(4),
    ]);
  }

  private function generateSegment(int $length): string {
    $characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    $maxIndex = strlen($characters) - 1;
    $segment = '';

    for ($i = 0; $i < $length; $i++) {
      $segment .= $characters[random_int(0, $maxIndex)];
    }

    return $segment;
  }
}