package models import ( "time" "github.com/google/uuid" ) type DiscordUser struct { ID int `db:"id"` Username string `db:"username"` Discriminator string `db:"discriminator"` AccessToken string `db:"access_token"` RefreshToken string `db:"refresh_token"` Avatar *string `db:"avatar"` Locale string `db:"locale"` UserID string `db:"userid"` Expiry time.Time `db:"expiry"` HMNUserId int `db:"hmn_user_id"` } /* Logs the existence of a Discord message and what we've done with it. Created unconditionally for all users, regardless of link status. Therefore, it must not contain any actual content. */ type DiscordMessage struct { ID string `db:"id"` ChannelID string `db:"channel_id"` GuildID *string `db:"guild_id"` Url string `db:"url"` UserID string `db:"user_id"` SentAt time.Time `db:"sent_at"` SnippetCreated bool `db:"snippet_created"` } /* Stores the content of a Discord message for users with a linked Discord account. Always created for users with a linked Discord account, regardless of whether we create snippets or not. */ type DiscordMessageContent struct { MessageID string `db:"message_id"` LastContent string `db:"last_content"` // This should always be cleaned up with nice user IDs and stuff DiscordID int `db:"discord_id"` } type DiscordMessageAttachment struct { ID string `db:"id"` AssetID uuid.UUID `db:"asset_id"` MessageID string `db:"message_id"` } type DiscordMessageEmbed struct { ID int `db:"id"` Title *string `db:"title"` Description *string `db:"description"` URL *string `db:"url"` ImageID *uuid.UUID `db:"image_id"` MessageID string `db:"message_id"` VideoID *uuid.UUID `db:"video_id"` } type DiscordSession struct { ID string `db:"session_id"` SequenceNumber int `db:"sequence_number"` } type DiscordOutgoingMessage struct { ID int `db:"id"` ChannelID string `db:"channel_id"` PayloadJSON string `db:"payload_json"` ExpiresAt time.Time `db:"expires_at"` }