refactor(documents): split document models
This commit is contained in:
@@ -12,26 +12,26 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type SaDocument struct {
|
type SaDocument struct {
|
||||||
ID uint `gorm:"primaryKey"`
|
ID uint `gorm:"primaryKey"`
|
||||||
Identity string `gorm:"type:char(36);uniqueIndex"`
|
Identity string `gorm:"type:char(36);uniqueIndex"`
|
||||||
ProjectID uint `gorm:"index;not null;uniqueIndex:uidx_sa_document_sibling,priority:1"`
|
ProjectID uint `gorm:"index;not null;uniqueIndex:uidx_sa_document_sibling,priority:1"`
|
||||||
ProjectIdentity string `gorm:"type:char(36);index"`
|
ProjectIdentity string `gorm:"type:char(36);index"`
|
||||||
ParentID *uint `gorm:"index"`
|
ParentID *uint `gorm:"index"`
|
||||||
ParentIdentity *string `gorm:"type:char(36);index"`
|
ParentIdentity *string `gorm:"type:char(36);index"`
|
||||||
ParentScope string `gorm:"type:char(36);not null;default:'';uniqueIndex:uidx_sa_document_sibling,priority:2"`
|
ParentScope string `gorm:"type:char(36);not null;default:'';uniqueIndex:uidx_sa_document_sibling,priority:2"`
|
||||||
CreatedBy uint `gorm:"index;not null"`
|
CreatedBy uint `gorm:"index;not null"`
|
||||||
CreatedByIdentity string `gorm:"type:char(36);index"`
|
CreatedByIdentity string `gorm:"type:char(36);index"`
|
||||||
SourceInboxItemID *uint `gorm:"index"`
|
SourceInboxItemID *uint `gorm:"index"`
|
||||||
SourceInboxItemIdentity *string `gorm:"type:char(36);index"`
|
SourceInboxItemIdentity *string `gorm:"type:char(36);index"`
|
||||||
Kind string `gorm:"size:16;not null"`
|
Kind string `gorm:"size:16;not null"`
|
||||||
Name string `gorm:"not null"`
|
Name string `gorm:"not null"`
|
||||||
NormalizedName string `gorm:"not null;uniqueIndex:uidx_sa_document_sibling,priority:3"`
|
NormalizedName string `gorm:"not null;uniqueIndex:uidx_sa_document_sibling,priority:3"`
|
||||||
Extension string `gorm:"size:32"`
|
Extension string `gorm:"size:32"`
|
||||||
MimeType string `gorm:"size:255"`
|
MimeType string `gorm:"size:255"`
|
||||||
Size int64 `gorm:"not null;default:0"`
|
Size int64 `gorm:"not null;default:0"`
|
||||||
Revision uint64 `gorm:"not null;default:1"`
|
Revision uint64 `gorm:"not null;default:1"`
|
||||||
SortOrder int `gorm:"not null;default:0"`
|
SortOrder int `gorm:"not null;default:0"`
|
||||||
ScanStatus string `gorm:"size:24;not null;default:'not_scanned'"`
|
ScanStatus string `gorm:"size:24;not null;default:'not_scanned'"`
|
||||||
CreatedAt time.Time
|
CreatedAt time.Time
|
||||||
UpdatedAt time.Time
|
UpdatedAt time.Time
|
||||||
DeletedAt gorm.DeletedAt `gorm:"index"`
|
DeletedAt gorm.DeletedAt `gorm:"index"`
|
||||||
@@ -40,46 +40,3 @@ type SaDocument struct {
|
|||||||
func (SaDocument) TableName() string {
|
func (SaDocument) TableName() string {
|
||||||
return "sa_documents"
|
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