"""Mail folder management. Manages collections of messages in named folders (Inbox, Sent, Drafts, Trash). Ported from i2p.susi.webmail.WebMail folder handling. """ from __future__ import annotations from dataclasses import dataclass, field from i2p_apps.susimail.message import MailMessage @dataclass class MailFolder: """A named folder containing email messages.""" name: str messages: list[MailMessage] = field(default_factory=list) def add(self, message: MailMessage) -> None: """Add a message to this folder.""" self.messages.append(message) def delete(self, index: int) -> None: """Delete a message by index.""" del self.messages[index] @property def unread_count(self) -> int: return sum(1 for m in self.messages if not m.read)