package model import ( "time" ) type DocumentVersion struct { Id int `json:"id" gorm:"primaryKey"` DocumentId int `json:"document_id" gorm:"index;not null"` Content string `json:"content" gorm:"type:text;not null"` AuthorId int `json:"author_id" gorm:"not null"` CreatedAt time.Time `json:"created_at" gorm:"autoCreateTime"` } func GetDocumentVersions(documentId int, startIdx int, num int) ([]*DocumentVersion, int64, error) { query := DB.Model(&DocumentVersion{}).Where("document_id = ?", documentId) var total int64 if err := query.Count(&total).Error; err != nil { return nil, 0, err } var versions []*DocumentVersion if err := query.Order("id DESC").Offset(startIdx).Limit(num).Find(&versions).Error; err != nil { return nil, 0, err } return versions, total, nil } func CreateDocumentVersion(version *DocumentVersion) error { return DB.Create(version).Error }