Files
seadoc/models/models.go
Vladimir V Maksimov 488f11bd56 alpha
2025-11-04 00:18:00 +03:00

29 lines
889 B
Go

package models
import (
"encoding/json"
"time"
"github.com/google/uuid"
)
// Document — логическая сущность (например, пользователь, настройки и т.п.)
type Document struct {
ID uuid.UUID `gorm:"type:char(36);primaryKey"`
Name string
CreatedAt time.Time
UpdatedAt time.Time
LatestVersion uuid.UUID `gorm:"type:char(36);"`
}
// Version — конкретная версия документа
type Version struct {
ID uuid.UUID `gorm:"type:char(36);primaryKey"`
DocumentID uuid.UUID `gorm:"type:char(36);index"`
ParentID *uuid.UUID `gorm:"type:char(36);"`
IsSnapshot bool
Patch json.RawMessage `gorm:"type:json"` // JSON Patch или nil, если Snapshot
Snapshot json.RawMessage `gorm:"type:json"` // Полный JSON, если IsSnapshot = true
CreatedAt time.Time
}