<?php
declare(strict_types=1);

namespace Oscar\MailEngine\ImapClient;

final class RealImapClient implements ImapClientInterface
{
    // ... existing properties ...

    public function setFlags(string $uid, FlagSet $flags, string $accountId): bool
    {
        // TODO: Implement v0.2.0
        $conn = $this->getConnection($accountId);
        $conn->store($uid, '+FLAGS', $this->flagsToImap($flags));
        return true;
    }

    /**
     * @param FlagSet $flags
     * @return list<string>
     */
    private function flagsToImap(FlagSet $flags): array
    {
        $imapFlags = [];
        if ($flags->flagged) $imapFlags[] = '\\Flagged';
        if ($flags->seen) $imapFlags[] = '\\Seen';
        if ($flags->answered) $imapFlags[] = '\\Answered';
        if ($flags->deleted) $imapFlags[] = '\\Deleted';
        return $imapFlags;
    }

    // ... other new methods ...
}