feat(contracts): add TableName and gorm serializer tags to DTOs

This commit is contained in:
ryan
2026-09-03 10:08:11 +08:00
parent 1d4bfea63b
commit 967c3e4209
26 changed files with 221 additions and 171 deletions
+12 -7
View File
@@ -10,13 +10,18 @@ import (
// SystemConfigDTO represents a system configuration key-value entry.
type SystemConfigDTO struct {
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"`
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"
}
// SystemConfigService defines the unified contract for querying and mutating system configurations.
+5
View File
@@ -71,6 +71,11 @@ 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"
+14 -9
View File
@@ -23,20 +23,25 @@ type UploadMetadataDTO struct {
// UploadDTO represents an uploaded file record.
type UploadDTO struct {
ID uint64 `json:"id"`
UserID uint64 `json:"user_id"`
FileName string `json:"file_name"`
FilePath string `json:"file_path"`
MimeType string `json:"mime_type"`
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"`
Size int64 `json:"size"`
Hash string `json:"hash"`
Status string `json:"status"`
Type string `json:"type"`
Metadata UploadMetadataDTO `json:"metadata"`
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"`
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