blob: 0d1624fca3a3d215ad134df647ded817f26021a6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
package models
import (
"lain/types"
"time"
"gorm.io/datatypes"
"gorm.io/gorm"
)
type Preferences struct {
// Credentials
Email string `gorm:"primaryKey;uniqueIndex"`
Authorization string `gorm:"not null"`
// Calendar
CalendarName string
CalendarURL string
CalendarUsername string
CalendarAuthorization string
CalendarColor string
CalendarDescription string
CalendarSyncIntervalMinutes int `gorm:"default:30"`
// Address Book
AddressBookName string
AddressBookURL string
AddressBookUsername string
AddressBookAuthorization string
AddressBookColor string
AddressBookDescription string
AddressBookSyncIntervalMinutes int `gorm:"default:30"`
// Mailbox View
Language string `gorm:"default:'en'"`
TimeZone string `gorm:"default:'(GMT +00:00) UTC'"`
TimeFormat types.TimeFormat `gorm:"type:varchar(20);default:'07:30'"`
DateFormat types.DateFormat `gorm:"type:varchar(20);default:'12/20/2025'"`
PrettyDates bool `gorm:"default:true"`
MarkMessagesAsRead types.EmailReadingOption `gorm:"type:varchar(20);default:'Immediately'"`
EmailsPerPage int `gorm:"default:50"`
EnableSounds bool `gorm:"default:false"`
// Displaying Emails
OpenMessagesInNewWindow bool `gorm:"default:false"`
ShowEmailAddressWithDisplayName bool `gorm:"default:false"`
DisplayHTML bool `gorm:"default:true"`
LoadRemoteContent types.RemoteResourceDownloadOption `gorm:"type:varchar(30);default:'From my contacts'"`
ReturnReceipts types.ReturnReceiptOption `gorm:"type:varchar(50);default:'Ask me each time'"`
DisplayAttachedImagesBelowMessage bool `gorm:"default:true"`
DisplayEmoticonsInPlainTextMessages bool `gorm:"default:false"`
// Composing Emails
ComposeMessagesInNewWindow bool `gorm:"default:false"`
DefaultComposeFormat types.EmailComposingOption `gorm:"type:varchar(100);default:'Always, except when replying to plain text messages'"`
AutoSaveDraftIntervalSeconds types.AutoSaveDraftIntervalOption `gorm:"default:300"`
AlwaysRequestReturnReceipt bool `gorm:"default:false"`
AlwaysRequestDeliveryStatus bool `gorm:"default:false"`
QuoteOriginalMessage types.EmailReplyOption `gorm:"type:varchar(50);default:'Place my reply below the original message'"`
MessageForwarding types.MessageForwardingOption `gorm:"type:varchar(50);default:'Inline'"`
HTMLFontFamily types.EmailHTMLFontFamilyOption `gorm:"type:varchar(50);default:'Verdana'"`
HTMLFontSize types.EmailHTMLFontSizeOption `gorm:"default:'10'"`
EnableEmoticons bool `gorm:"default:true"`
AttachmentNames types.EmailAttachementNameStyleOption `gorm:"type:varchar(30);default:'RFC 2047/2231 (Outlook)'"`
// Signature Options
IncludeSignature types.EmailSignatureOption `gorm:"type:varchar(20);default:'Always'"`
PlaceSignatureBelowQuotedText bool `gorm:"default:false"`
RemoveOriginalSignatureWhenReplying bool `gorm:"default:true"`
// Contact Options
ShowContactPhotos bool `gorm:"default:true"`
ListContactsAs types.ContactDisplayOption `gorm:"type:varchar(20);default:'Display Name'"`
SortContactsBy types.ContactSortingOption `gorm:"type:varchar(20);default:'Last Name'"`
ContactsPerPage int `gorm:"default:50"`
// Server Settings
MarkMessagesAsReadOnDelete bool `gorm:"default:true"`
FlagMessagesForDeletionInsteadOfDelete bool `gorm:"default:false"`
DoNotShowDeletedMessages bool `gorm:"default:false"`
DirectlyDeleteMessagesInJunkFolder bool `gorm:"default:false"`
MarkMessagesAsReadOnArchive bool `gorm:"default:true"`
ClearTrashOnLogout types.ClearTrashOnLogoutOption `gorm:"type:varchar(30);default:'Never'"`
UseEmailEncryption bool `gorm:"default:false"`
PGPPrivateKey datatypes.JSON `gorm:"type:jsonb"`
PGPPublicKey datatypes.JSON `gorm:"type:jsonb"`
// Sync
EmailSyncIntervalMinutes int `gorm:"default:5"`
LastSyncedAt time.Time
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt gorm.DeletedAt `gorm:"index"`
}
|