fix(contracts): decouple DTOs from ORM tags and table name mappings

This commit is contained in:
ryan
2026-09-03 10:17:11 +08:00
parent 807343c82c
commit 99fff5d5af
3 changed files with 16 additions and 31 deletions
+7 -12
View File
@@ -10,18 +10,13 @@ import (
// SystemConfigDTO represents a system configuration key-value entry.
type SystemConfigDTO struct {
Key string `json:"key" gorm:"primaryKey;column:key;size:255"`
Value string `json:"value" gorm:"column:value;type:text"`
Type string `json:"type" gorm:"column:type;size:50"`
Visibility int `json:"visibility" gorm:"column:visibility"`
Description string `json:"description" gorm:"column:description;size:500"`
UpdatedAt time.Time `json:"updated_at" gorm:"column:updated_at"`
CreatedAt time.Time `json:"created_at" gorm:"column:created_at"`
}
// TableName returns the default table name for SystemConfigDTO.
func (SystemConfigDTO) TableName() string {
return "w_system_configs"
Key string `json:"key"`
Value string `json:"value"`
Type string `json:"type"`
Visibility int `json:"visibility"`
Description string `json:"description"`
UpdatedAt time.Time `json:"updated_at"`
CreatedAt time.Time `json:"created_at"`
}
// SystemConfigService defines the unified contract for querying and mutating system configurations.
-5
View File
@@ -71,11 +71,6 @@ type TaskExecutionDTO struct {
UpdatedAt time.Time `json:"updated_at"`
}
// TableName returns the default table name for TaskExecutionDTO.
func (TaskExecutionDTO) TableName() string {
return "w_task_executions"
}
// Canonical triggered_by values persisted on task executions and shown in admin UI.
const (
TaskTriggerSystem = "system"
+9 -14
View File
@@ -23,25 +23,20 @@ type UploadMetadataDTO struct {
// UploadDTO represents an uploaded file record.
type UploadDTO struct {
ID uint64 `json:"id" gorm:"primaryKey"`
UserID uint64 `json:"user_id" gorm:"index"`
FileName string `json:"file_name" gorm:"size:255"`
FilePath string `json:"file_path" gorm:"size:500"`
MimeType string `json:"mime_type" gorm:"size:100"`
ID uint64 `json:"id"`
UserID uint64 `json:"user_id"`
FileName string `json:"file_name"`
FilePath string `json:"file_path"`
MimeType string `json:"mime_type"`
Size int64 `json:"size"`
Hash string `json:"hash" gorm:"size:64"`
Status string `json:"status" gorm:"type:varchar(20)"`
Type string `json:"type" gorm:"size:50;index"`
Metadata UploadMetadataDTO `json:"metadata" gorm:"serializer:json;type:jsonb"`
Hash string `json:"hash"`
Status string `json:"status"`
Type string `json:"type"`
Metadata UploadMetadataDTO `json:"metadata"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
// TableName returns the default table name for UploadDTO.
func (UploadDTO) TableName() string {
return "w_uploads"
}
// OpenedUploadDTO encapsulates the retrieved object stream and its metadata.
type OpenedUploadDTO struct {
Upload UploadDTO