package Database import ( "gorm.io/gorm" "gorm.io/gorm/clause" ) // Attachment holds the attachment data type Attachment struct { Base FilePath string `gorm:"not null" json:"-"` Mimetype string `gorm:"not null" json:"mimetype"` Extension string `gorm:"not null" json:"extension"` Data string `gorm:"-" json:"data"` ImageLink string `gorm:"-" json:"image_link"` } // GetAttachmentByID gets the attachment record by the id func GetAttachmentByID(id string) (MessageData, error) { var ( messageData MessageData err error ) err = DB.Preload(clause.Associations). First(&messageData, "id = ?", id). Error return messageData, err } // CreateAttachment creates the attachment record func (attachment *Attachment) CreateAttachment() error { var ( err error ) err = DB.Session(&gorm.Session{FullSaveAssociations: true}). Create(attachment). Error return err } // DeleteAttachment deletes the attachment record func (attachment *Attachment) DeleteAttachment() error { return DB.Session(&gorm.Session{FullSaveAssociations: true}). Delete(attachment). Error }