<?php
namespace App\Message;
class OCRIndexationMessage
{
public ?string $organizationId = null;
public ?string $letterId;
public bool $forceIndexation = false;
private function __construct(?string $organizationId, ?string $letterId, bool $forceIndexation = false)
{
if (null === $organizationId && null === $letterId) {
throw new \InvalidArgumentException('At least one of organizationId or letterId must be provided.');
}
$this->organizationId = $organizationId;
$this->letterId = $letterId;
$this->forceIndexation = $forceIndexation;
}
public static function createWithOrganizationId(string $organizationId, bool $forceIndexation = false): self
{
return new self($organizationId, null, $forceIndexation);
}
public static function createWithLetterId(string $letterId, bool $forceIndexation = false): self
{
return new self(null, $letterId, $forceIndexation);
}
public static function createWithOrganizationIdAndLetterId(string $organizationId, string $letterId, bool $forceIndexation = false): self
{
return new self($organizationId, $letterId, $forceIndexation);
}
}