package model import ( "encoding/json" "time" ) // TraceRecord 疫病溯源记录(规格书 3.8:三级溯源) type TraceRecord struct { ID string `gorm:"type:uuid;primaryKey;default:gen_random_uuid()" json:"id"` RoomID *string `gorm:"column:room_id;type:uuid;index" json:"roomId,omitempty"` LampTestID *string `gorm:"column:lamp_test_id;type:uuid;index" json:"lampTestId,omitempty"` ConsultationID *string `gorm:"column:consultation_id;type:uuid;index" json:"consultationId,omitempty"` Disease string `gorm:"size:64" json:"disease"` Status string `gorm:"size:16;default:pending" json:"status"` // pending/reported/analysis/archived Origin *string `gorm:"size:32" json:"origin,omitempty"` // internal/external/unknown Confidence *float64 `gorm:"type:float" json:"confidence,omitempty"` AutoReport json.RawMessage `gorm:"column:auto_report;type:jsonb" json:"autoReport,omitempty"` // 一级初报 Checklist json.RawMessage `gorm:"type:jsonb" json:"checklist,omitempty"` // 二级排查清单 AnalysisReport json.RawMessage `gorm:"column:analysis_report;type:jsonb" json:"analysisReport,omitempty"` // 二级报告 ExpertNote *string `gorm:"column:expert_note;type:text" json:"expertNote,omitempty"` // 三级-专家 LabNote *string `gorm:"column:lab_note;type:text" json:"labNote,omitempty"` // 三级-实验室 CreatedAt time.Time `gorm:"type:timestamptz" json:"createdAt"` UpdatedAt time.Time `gorm:"type:timestamptz" json:"updatedAt"` RoomName *string `gorm:"-" json:"roomName,omitempty"` } func (TraceRecord) TableName() string { return "trace_records" }