package models import "time" // ResourceMapping 表示来自 dc-control 的资源映射快照。 type ResourceMapping struct { ID uint `gorm:"primaryKey" json:"id"` // CreatedAt/UpdatedAt 由 GORM 维护。 CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` // ResourceType 资源类型(server/collector/device)。 ResourceType string `gorm:"size:32;index:idx_logs_resource_unique,unique" json:"resource_type"` // ResourceID 资源 ID(来自 dc-control)。 ResourceID string `gorm:"size:128;index:idx_logs_resource_unique,unique" json:"resource_id"` // ResourceName 资源名称。 ResourceName string `gorm:"size:256" json:"resource_name"` // IPsJSON/HostnamesJSON/LabelsJSON 以 JSON 文本存储数组和标签。 IPsJSON string `gorm:"type:text" json:"ips_json"` HostnamesJSON string `gorm:"type:text" json:"hostnames_json"` LabelsJSON string `gorm:"type:text" json:"labels_json"` // Version 用于处理乱序事件,仅允许新版本覆盖。 Version int64 `gorm:"index" json:"version"` // IsDeleted 表示逻辑删除。 IsDeleted bool `gorm:"index" json:"is_deleted"` // LastEventID 记录最后一次成功应用的事件 ID(幂等辅助)。 LastEventID string `gorm:"size:128" json:"last_event_id"` // EventTime 记录事件产生时间。 EventTime time.Time `json:"event_time"` } func (ResourceMapping) TableName() string { return "logs_resource_mappings" }