31 lines
923 B
Go
31 lines
923 B
Go
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
|
|
}
|