import Models

public struct IMAPMailboxStatus: Sendable {
	public var name: String
	public var uidValidity: Int
	public var uidNext: Int
	public var messageCount: Int
	public var recentCount: Int

	public init(name: String, uidValidity: Int, uidNext: Int, messageCount: Int, recentCount: Int) {
		self.name = name
		self.uidValidity = uidValidity
		self.uidNext = uidNext
		self.messageCount = messageCount
		self.recentCount = recentCount
	}
}

public struct IMAPMailboxInfo: Sendable {
	public var name: String
	public var attributes: Set<String>

	public init(name: String, attributes: Set<String> = []) {
		self.name = name
		self.attributes = attributes
	}
}

public struct UIDFlagsPair: Sendable {
	public var uid: Int
	public var isRead: Bool
	public var isFlagged: Bool

	public init(uid: Int, isRead: Bool, isFlagged: Bool) {
		self.uid = uid
		self.isRead = isRead
		self.isFlagged = isFlagged
	}
}
