refactor(documents): split document models
This commit is contained in:
@@ -12,26 +12,26 @@ const (
|
||||
)
|
||||
|
||||
type SaDocument struct {
|
||||
ID uint `gorm:"primaryKey"`
|
||||
Identity string `gorm:"type:char(36);uniqueIndex"`
|
||||
ProjectID uint `gorm:"index;not null;uniqueIndex:uidx_sa_document_sibling,priority:1"`
|
||||
ProjectIdentity string `gorm:"type:char(36);index"`
|
||||
ParentID *uint `gorm:"index"`
|
||||
ParentIdentity *string `gorm:"type:char(36);index"`
|
||||
ParentScope string `gorm:"type:char(36);not null;default:'';uniqueIndex:uidx_sa_document_sibling,priority:2"`
|
||||
CreatedBy uint `gorm:"index;not null"`
|
||||
CreatedByIdentity string `gorm:"type:char(36);index"`
|
||||
SourceInboxItemID *uint `gorm:"index"`
|
||||
SourceInboxItemIdentity *string `gorm:"type:char(36);index"`
|
||||
Kind string `gorm:"size:16;not null"`
|
||||
Name string `gorm:"not null"`
|
||||
NormalizedName string `gorm:"not null;uniqueIndex:uidx_sa_document_sibling,priority:3"`
|
||||
Extension string `gorm:"size:32"`
|
||||
MimeType string `gorm:"size:255"`
|
||||
Size int64 `gorm:"not null;default:0"`
|
||||
Revision uint64 `gorm:"not null;default:1"`
|
||||
SortOrder int `gorm:"not null;default:0"`
|
||||
ScanStatus string `gorm:"size:24;not null;default:'not_scanned'"`
|
||||
ID uint `gorm:"primaryKey"`
|
||||
Identity string `gorm:"type:char(36);uniqueIndex"`
|
||||
ProjectID uint `gorm:"index;not null;uniqueIndex:uidx_sa_document_sibling,priority:1"`
|
||||
ProjectIdentity string `gorm:"type:char(36);index"`
|
||||
ParentID *uint `gorm:"index"`
|
||||
ParentIdentity *string `gorm:"type:char(36);index"`
|
||||
ParentScope string `gorm:"type:char(36);not null;default:'';uniqueIndex:uidx_sa_document_sibling,priority:2"`
|
||||
CreatedBy uint `gorm:"index;not null"`
|
||||
CreatedByIdentity string `gorm:"type:char(36);index"`
|
||||
SourceInboxItemID *uint `gorm:"index"`
|
||||
SourceInboxItemIdentity *string `gorm:"type:char(36);index"`
|
||||
Kind string `gorm:"size:16;not null"`
|
||||
Name string `gorm:"not null"`
|
||||
NormalizedName string `gorm:"not null;uniqueIndex:uidx_sa_document_sibling,priority:3"`
|
||||
Extension string `gorm:"size:32"`
|
||||
MimeType string `gorm:"size:255"`
|
||||
Size int64 `gorm:"not null;default:0"`
|
||||
Revision uint64 `gorm:"not null;default:1"`
|
||||
SortOrder int `gorm:"not null;default:0"`
|
||||
ScanStatus string `gorm:"size:24;not null;default:'not_scanned'"`
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
DeletedAt gorm.DeletedAt `gorm:"index"`
|
||||
@@ -40,46 +40,3 @@ type SaDocument struct {
|
||||
func (SaDocument) TableName() string {
|
||||
return "sa_documents"
|
||||
}
|
||||
|
||||
type SaDocumentContent struct {
|
||||
ID uint `gorm:"primaryKey"`
|
||||
DocumentID uint `gorm:"uniqueIndex;not null"`
|
||||
Markdown string `gorm:"type:text"`
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
}
|
||||
|
||||
func (SaDocumentContent) TableName() string {
|
||||
return "sa_document_contents"
|
||||
}
|
||||
|
||||
type SaDocumentBlob struct {
|
||||
ID uint `gorm:"primaryKey"`
|
||||
DocumentID uint `gorm:"uniqueIndex;not null"`
|
||||
StorageKey string `gorm:"size:64;uniqueIndex;not null"`
|
||||
RelativePath string `gorm:"not null"`
|
||||
OriginalName string `gorm:"not null"`
|
||||
Checksum string `gorm:"size:64;not null"`
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
}
|
||||
|
||||
func (SaDocumentBlob) TableName() string {
|
||||
return "sa_document_blobs"
|
||||
}
|
||||
|
||||
type SaDocumentShare struct {
|
||||
ID uint `gorm:"primaryKey"`
|
||||
Identity string `gorm:"type:char(36);uniqueIndex"`
|
||||
DocumentID uint `gorm:"index;not null"`
|
||||
DocumentIdentity string `gorm:"type:char(36);index"`
|
||||
CreatedBy uint `gorm:"index;not null"`
|
||||
TokenHash string `gorm:"size:64;uniqueIndex;not null"`
|
||||
ExpiresAt time.Time `gorm:"index;not null"`
|
||||
RevokedAt *time.Time `gorm:"index"`
|
||||
CreatedAt time.Time
|
||||
}
|
||||
|
||||
func (SaDocumentShare) TableName() string {
|
||||
return "sa_document_shares"
|
||||
}
|
||||
|
||||
18
backend/internal/models/document_blob.go
Normal file
18
backend/internal/models/document_blob.go
Normal file
@@ -0,0 +1,18 @@
|
||||
package models
|
||||
|
||||
import "time"
|
||||
|
||||
type SaDocumentBlob struct {
|
||||
ID uint `gorm:"primaryKey"`
|
||||
DocumentID uint `gorm:"uniqueIndex;not null"`
|
||||
StorageKey string `gorm:"size:64;uniqueIndex;not null"`
|
||||
RelativePath string `gorm:"not null"`
|
||||
OriginalName string `gorm:"not null"`
|
||||
Checksum string `gorm:"size:64;not null"`
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
}
|
||||
|
||||
func (SaDocumentBlob) TableName() string {
|
||||
return "sa_document_blobs"
|
||||
}
|
||||
15
backend/internal/models/document_content.go
Normal file
15
backend/internal/models/document_content.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package models
|
||||
|
||||
import "time"
|
||||
|
||||
type SaDocumentContent struct {
|
||||
ID uint `gorm:"primaryKey"`
|
||||
DocumentID uint `gorm:"uniqueIndex;not null"`
|
||||
Markdown string `gorm:"type:text"`
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
}
|
||||
|
||||
func (SaDocumentContent) TableName() string {
|
||||
return "sa_document_contents"
|
||||
}
|
||||
19
backend/internal/models/document_share.go
Normal file
19
backend/internal/models/document_share.go
Normal file
@@ -0,0 +1,19 @@
|
||||
package models
|
||||
|
||||
import "time"
|
||||
|
||||
type SaDocumentShare struct {
|
||||
ID uint `gorm:"primaryKey"`
|
||||
Identity string `gorm:"type:char(36);uniqueIndex"`
|
||||
DocumentID uint `gorm:"index;not null"`
|
||||
DocumentIdentity string `gorm:"type:char(36);index"`
|
||||
CreatedBy uint `gorm:"index;not null"`
|
||||
TokenHash string `gorm:"size:64;uniqueIndex;not null"`
|
||||
ExpiresAt time.Time `gorm:"index;not null"`
|
||||
RevokedAt *time.Time `gorm:"index"`
|
||||
CreatedAt time.Time
|
||||
}
|
||||
|
||||
func (SaDocumentShare) TableName() string {
|
||||
return "sa_document_shares"
|
||||
}
|
||||
Reference in New Issue
Block a user