package models import ( "time" "gorm.io/gorm" ) // Metadata for describing some media // Media is, at least for Linstrom, always stored on a separate server, // be that the remote server it originated from or an s3 bucket type MediaMetadata struct { ID string `gorm:"primarykey;type:uuid;default:gen_random_uuid()"` // The unique ID of this media file CreatedAt time.Time // When this entry was created 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"` OwnedBy string // Account id this media belongs to Remote bool // whether the attachment is a remote one // Where the media is stored. Url Location string Type string // What media type this is following mime types, eg image/png // Name of the file // Could be .png, .webp for example. Or the name the file was uploaded with Name string // Alternative description of the media file's content AltText string // Whether the media is to be blurred by default Blurred bool }