aboutsummaryrefslogtreecommitdiff
path: root/types.go
diff options
context:
space:
mode:
Diffstat (limited to 'types.go')
-rw-r--r--types.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/types.go b/types.go
new file mode 100644
index 0000000..903705d
--- /dev/null
+++ b/types.go
@@ -0,0 +1,42 @@
+package main
+
+type Provider string
+
+const (
+ Gemini Provider = "gemini"
+ // OpenAI Provider = "openai" // TODO: Add support for OpenAI in the future
+)
+
+type ServerConfig struct {
+ Port int
+ Provider Provider
+ Model string
+ APIKey string
+}
+
+type Identity struct {
+ ID string `json:"id,omitempty"`
+ Email string `json:"email,omitempty"`
+ Name string `json:"name,omitempty"`
+}
+
+type ComposeDetails struct {
+ Subject string `json:"subject,omitempty"`
+ To []string `json:"to,omitempty"`
+ Cc []string `json:"cc,omitempty"`
+ Bcc []string `json:"bcc,omitempty"`
+ BodyPlain string `json:"bodyPlain,omitempty"`
+ BodyHTML string `json:"bodyHTML,omitempty"`
+ IdentityID string `json:"identityId,omitempty"`
+ IsHTML bool `json:"isHTML"`
+}
+
+type ComposeContext struct {
+ Account Identity `json:"account"`
+ Compose ComposeDetails `json:"compose"`
+}
+
+type Payload struct {
+ Prompt string `json:"prompt"`
+ Context ComposeContext `json:"context"`
+}