about summary refs log tree commit diff stats
path: root/models/models.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/models.go')
-rw-r--r--models/models.go52
1 files changed, 52 insertions, 0 deletions
diff --git a/models/models.go b/models/models.go
new file mode 100644
index 0000000..cff05b1
--- /dev/null
+++ b/models/models.go
@@ -0,0 +1,52 @@
+package models
+
+import (
+	"io"
+	"time"
+
+	"github.com/emersion/go-imap"
+	"github.com/emersion/go-message/mail"
+)
+
+type Directory struct {
+	Name       string
+	Attributes []string
+}
+
+type DirectoryInfo struct {
+	Name     string
+	Flags    []string
+	ReadOnly bool
+
+	// The total number of messages in this mailbox.
+	Exists int
+
+	// The number of messages not seen since the last time the mailbox was opened.
+	Recent int
+
+	// The number of unread messages
+	Unseen int
+}
+
+// A MessageInfo holds information about the structure of a message
+type MessageInfo struct {
+	BodyStructure *imap.BodyStructure
+	Envelope      *imap.Envelope
+	Flags         []string
+	InternalDate  time.Time
+	RFC822Headers *mail.Header
+	Size          uint32
+	Uid           uint32
+}
+
+// A MessageBodyPart can be displayed in the message viewer
+type MessageBodyPart struct {
+	Reader io.Reader
+	Uid    uint32
+}
+
+// A FullMessage is the entire message
+type FullMessage struct {
+	Reader io.Reader
+	Uid    uint32
+}