* SPDX-License-Identifier: AGPL-3.0-or-later */ namespace KTXM\ProviderImapMail\Service\Remote\Command; use Gricob\IMAP\Protocol\Command\Command; use Gricob\IMAP\Protocol\Command\Argument\QuotedString; use Gricob\IMAP\Protocol\Command\Argument\SequenceSet; /** * Raw UID COPY command. * * gricob does not expose message copying; this thin wrapper fills the gap. * Accepts a set of UIDs formatted as a comma-separated sequence set. * * Example: UID COPY 1,3,7 "INBOX.Archive" */ final readonly class CopyCommand extends Command { /** * @param int[] $uids Source message UIDs * @param string $destination Target mailbox name */ public function __construct(array $uids, string $destination) { parent::__construct( 'UID COPY', new SequenceSet(...$uids), new QuotedString($destination), ); } }