device_discovery.go 1.9 KB

123456789101112131415161718192021222324252627282930313233
  1. package dao
  2. import (
  3. "time"
  4. "wails-app/internal/global"
  5. )
  6. // DeviceDiscovery 保存一次手工 IP 身份读取结果和管理员确认状态。
  7. // payload 只保存设备公开身份,不保存配对码、MQTT 密码或其他敏感令牌。
  8. type DeviceDiscovery struct {
  9. global.GVA_MODEL
  10. RequestID string `gorm:"size:64;index:idx_device_discovery_request_id;not null" json:"request_id"`
  11. DeviceID string `gorm:"size:100;index;not null" json:"device_id"`
  12. DeviceCode string `gorm:"size:50" json:"device_code"`
  13. DeviceType string `gorm:"size:50" json:"device_type"`
  14. DeviceModel string `gorm:"size:100" json:"device_model"`
  15. FirmwareVersion string `gorm:"size:100" json:"firmware_version"`
  16. SourceIP string `gorm:"size:50;not null" json:"source_ip"`
  17. ConfigPort int `gorm:"not null" json:"config_port"`
  18. Payload string `gorm:"type:text" json:"payload"`
  19. CertificateFingerprint string `gorm:"size:128" json:"certificate_fingerprint"`
  20. PublicKeyFingerprint string `gorm:"size:128" json:"public_key_fingerprint"`
  21. Signature string `gorm:"type:text" json:"signature"`
  22. SignatureVerified bool `gorm:"not null;default:false" json:"signature_verified"`
  23. ProvisionMethod string `gorm:"size:20;index;default:'manual_ip'" json:"provision_method"`
  24. PairingRequired bool `gorm:"not null;default:false" json:"pairing_required"`
  25. Verified bool `gorm:"not null;default:false" json:"verified"`
  26. VerifiedAt *time.Time `json:"verified_at"`
  27. ExpiredAt time.Time `gorm:"index;not null" json:"expired_at"`
  28. ProvisionStatus string `gorm:"size:20;index;default:'identity_unverified'" json:"provision_status"`
  29. }
  30. func (DeviceDiscovery) TableName() string { return "device_discovery" }