Add comments to storage types

This commit is contained in:
mStar aka a person 2024-06-06 11:54:50 +00:00
parent 1fbdf7fc9d
commit 94197780e1
7 changed files with 31 additions and 8 deletions

View file

@ -7,9 +7,12 @@ import (
) )
type MediaFile struct { type MediaFile struct {
ID string `gorm:"primarykey"` ID string `gorm:"primarykey"` // The unique ID of this media file
CreatedAt time.Time CreatedAt time.Time // When this entry was created
UpdatedAt time.Time UpdatedAt time.Time // When this entry was last updated
// When this entry was deleted (for soft deletions)
// Soft delete means that this entry still exists in the db, but gorm won't include it anymore unless specifically told to
// If not null, this entry is marked as deleted
DeletedAt gorm.DeletedAt `gorm:"index"` DeletedAt gorm.DeletedAt `gorm:"index"`
Remote bool // whether the attachment is a remote one Remote bool // whether the attachment is a remote one
Link string // url if remote attachment, identifier if local Link string // url if remote attachment, identifier if local

View file

@ -5,19 +5,28 @@ import (
"errors" "errors"
) )
// What feed a note is targeting (public, home, followers or dm)
type NoteTarget uint8 type NoteTarget uint8
const ( const (
// The note is intended for the public
NOTE_TARGET_PUBLIC = NoteTarget(0) NOTE_TARGET_PUBLIC = NoteTarget(0)
// The note is intended only for the home screen
// not really any idea what the difference is compared to public
// Maybe home notes don't show up on the server feed but still for everyone's home feed if it reaches them via follow or boost
NOTE_TARGET_HOME = NoteTarget(1 << iota) NOTE_TARGET_HOME = NoteTarget(1 << iota)
// The note is intended only for followers
NOTE_TARGET_FOLLOWERS NOTE_TARGET_FOLLOWERS
// The note is intended only for a DM to one or more targets
NOTE_TARGET_DM NOTE_TARGET_DM
) )
// Converts the NoteTarget value into a type the DB can use
func (n *NoteTarget) Value() (driver.Value, error) { func (n *NoteTarget) Value() (driver.Value, error) {
return n, nil return n, nil
} }
// Converts the raw value from the DB into a NoteTarget
func (n *NoteTarget) Scan(value any) error { func (n *NoteTarget) Scan(value any) error {
vBig, ok := value.(int64) vBig, ok := value.(int64)
if !ok { if !ok {

View file

@ -7,9 +7,12 @@ import (
) )
type Note struct { type Note struct {
ID string `gorm:"primarykey"` // Make ID a string (uuid) for other implementations ID string `gorm:"primarykey"` // Make ID a string (uuid) for other implementations
CreatedAt time.Time CreatedAt time.Time // When this entry was created
UpdatedAt time.Time UpdatedAt time.Time // When this entry was last updated
// When this entry was deleted (for soft deletions)
// Soft delete means that this entry still exists in the db, but gorm won't include it anymore unless specifically told to
// If not null, this entry is marked as deleted
DeletedAt gorm.DeletedAt `gorm:"index"` DeletedAt gorm.DeletedAt `gorm:"index"`
Creator string // Full handle of the creator, eg: @max@example.com Creator string // Full handle of the creator, eg: @max@example.com
Remote bool // Whether the note is originally a remote one and just "cached" Remote bool // Whether the note is originally a remote one and just "cached"

View file

@ -8,8 +8,11 @@ import (
type RemoteServer struct { type RemoteServer struct {
ID string `gorm:"primarykey"` // ID is also server url ID string `gorm:"primarykey"` // ID is also server url
CreatedAt time.Time CreatedAt time.Time // When this entry was created
UpdatedAt time.Time UpdatedAt time.Time // When this entry was last updated
// When this entry was deleted (for soft deletions)
// Soft delete means that this entry still exists in the db, but gorm won't include it anymore unless specifically told to
// If not null, this entry is marked as deleted
DeletedAt gorm.DeletedAt `gorm:"index"` DeletedAt gorm.DeletedAt `gorm:"index"`
ServerType RemoteServerType // What software the server is running. Useful for formatting ServerType RemoteServerType // What software the server is running. Useful for formatting
Name string // What the server wants to be known as (usually same as url) Name string // What the server wants to be known as (usually same as url)

View file

@ -5,6 +5,7 @@ import (
"errors" "errors"
) )
// What software a server is running
// Mostly important for rendering // Mostly important for rendering
type RemoteServerType string type RemoteServerType string

View file

@ -16,6 +16,9 @@ type User struct {
Handle string // Handle is the full handle, eg @max@example.com Handle string // Handle is the full handle, eg @max@example.com
CreatedAt time.Time // When this entry was created CreatedAt time.Time // When this entry was created
UpdatedAt time.Time // When this account was last updated. Will also be used for refreshing remote accounts UpdatedAt time.Time // When this account was last updated. Will also be used for refreshing remote accounts
// When this entry was deleted (for soft deletions)
// Soft delete means that this entry still exists in the db, but gorm won't include it anymore unless specifically told to
// If not null, this entry is marked as deleted
DeletedAt gorm.DeletedAt `gorm:"index"` DeletedAt gorm.DeletedAt `gorm:"index"`
Remote bool // Whether the account is a local or remote one Remote bool // Whether the account is a local or remote one
Server string // The url of the server this account is from Server string // The url of the server this account is from

View file

@ -5,6 +5,7 @@ import (
"errors" "errors"
) )
// What kind of being a user identifies as
type Being string type Being string
const ( const (