package domain // 定义枚举类型 type CountryType int const ( CTRY_ALL CountryType = 0 // 所有国家 CTRY_US CountryType = 2 // 美国 CTRY_AU CountryType = 3 // 澳大利亚 ) type FwhResponse[T any] struct { Code int `json:"code"` // 401 - invalid token Message string `json:"message"` Result *T `json:"result"` Success *bool `json:"success"` } type FwhPageResponse[T any] struct { Code int `json:"code"` // 401 - invalid token Message string `json:"message"` Result *T `json:"result"` Success *bool `json:"success"` Total uint64 `json:"total"` } type FwhResponseA[T any] struct { Code int `json:"code"` // 401 - invalid token Msg string `json:"msg"` Result *T `json:"result"` } type FwhResponseB[T any] struct { Code int `json:"code"` // 401 - invalid token Msg string `json:"msg"` Data *T `json:"data"` } type AlarmSnapshotInfo struct { Id int64 `json:"id"` CodeType int32 `json:"codeType"` // 作用未知 FileName string `json:"fileName"` FileUrl string `json:"fileUrl"` LinkId string `json:"linkId"` // site SN LogTime string `json:"logTime"` // format YYYY-MM-DD SerialNumber string `json:"serialNumber"` StartTime string `json:"startTime"` // format YYYY-MM-DD HH:mm:SS EndTime string `json:"endTime"` // format YYYY-MM-DD HH:mm:SS Status int `json:"status"` // 1-完成 CompleteTime string `json:"completeTime"` // format YYYY-MM-DD HH:mm:SS } type EventAlarmItem struct { ID *string `json:"id"` // UUID or null CmdType string `json:"cmdType"` // 命令说明 CmdName string `json:"cmdName"` // 命令类型 exp:201... GatewayId string `json:"gatewayId"` // SN GatewayType *string `json:"gatewayType"` GatewayStatus *string `json:"gatewayStatus"` ActiveStatus *string `json:"activeStatus"` // 激活状态 ActiveTime *string `json:"activeTime"` // 激活时间 AlarmCode string `json:"alarmCode"` // 告警码,事件则为0 LogName string `json:"logName"` LogType string `json:"logType"` // 日志类型 0-事件 1-告警 LogData string `json:"logData"` // JSON数据 LogTime string `json:"logTime"` // 设备时间(日志上传时间,告警未结束为开始时间,结束为结束时间) Time string `json:"time"` // UTC时间 StartTime string `json:"startTime"` // 事件或告警的开始时间 EndTime *string `json:"endTime"` // 告警结束时间,事件没有结束时间为null,告警枚举结束时间则未结束 } type ShutdownRecord struct { GatewayId string `json:"gatewayId"` // SN ShutdownType int `json:"shutdownType"` // 1-系统停机 2-aPower停机 Country string `json:"country"` // 国家 Province string `json:"province"` // 州/省 ActiveTime string `json:"activeTime"` // 激活时间 DeviceTime string `json:"deviceTime"` // 告警时的设备时间 (Shutdown开始时间) } type EmsLogRecordInfo struct { Id int64 `json:"id"` FileName string `json:"fileName"` // 不含后缀 CallTime string `json:"callTime"` CompleteTime string `json:"completeTime"` Status int `json:"status"` // 召唤状态 1-成功 0-召唤中 -1-失败 FileUrl string `json:"fileUrl"` LinkId string `json:"linkId"` // SN LogTime string `json:"logTime"` CodeType int `json:"codeType"` // 日志类型 4-IBG运行日志 7-电池日志 9-设备系统资源监控日志 10-4G日志 11-AWS日志 12-主进程日志 } type FaultRecordInfo struct { Id int64 `json:"id"` DeviceType int `json:"deviceType"` // 0-aPower 1-aGate 2-MPPT 3-aHub ApowerId *string `json:"apowerId"` // aPower SN, deviceType不为0或2时为null GatewayId string `json:"gatewayId"` // aGate SN PowerlinkId *string `json:"powerlinkId"` // aHub SN, deviceType不为3时为null TriggerType int `json:"triggerType"` // 触发类中:1-手动 2-自动 FaultRecordsCount int `json:"faultRecordsCount"` // 故障录波召唤数量 EarliestFaultTime string `json:"earliestFaultTime"` // 故障录波列表Format: YYY-MM-DD hh:mm:ss / 召唤记录Format: 时间戳 LatestFaultTime string `json:"latestFaultTime"` // 故障录波列表Format: YYY-MM-DD hh:mm:ss / 召唤记录Format: 时间戳 CellTime string `json:"cellTime"` // 召唤时间 Format: YYY-MM-DD hh:mm:ss FileUrl string `json:"fileUrl"` // 文件下载路径 FileName string `json:"fileName"` // 文件名,不含后缀 Status *int `json:"status"` // 录波数据查询为null,召唤记录查询则为召唤状态 0-开始召唤 2-召唤成功 -1-召唤失败 FaultReason *string `json:"faultReason"` // 录波数据查询为null,status为-1时为失败原因,否则为null } type FaultRecordCallableInfo struct { Idx int `json:"idx"` // 数据序号 IndexNumber string `json:"indexNumber"` // 数据序号 exg."01" FailureTime string `json:"failureTime"` // 故障时间 Format: YYY-MM-DD hh:mm:ss ParamVersionNumber string `json:"paramVersionNumber"` // 故障信息 TriggerSourceCode string `json:"triggerSourceCode"` // 故障码 } type FaultRecordChannelInfo struct { Code string `json:"code"` Describe string `json:"describe"` // 说明 Index int `json:"index"` } type FaultRecordSubInfo struct { DeviceType int `json:"deviceType"` // 0-aPower 1-aGate 2-MPPT 3-aHub ApowerId *string `json:"apowerId"` // aPower SN GatewayId string `json:"gatewayId"` // aGate SN FileName string `json:"fileName"` // 不含后缀 Id int64 `json:"id"` // 本条记录的ID FaultId int64 `json:"faultId"` EventTriggerSource string `json:"eventTriggerSource"` // 故障码 EventTriggerSourceName string `json:"eventTriggerSourceName"` // 故障码解释 SamplingCount uint `json:"samplingCount"` // 采样通道数量 FailureTime string `json:"failureTime"` //故障发送时间 Format: YYY-MM-DD hh:mm:ss SnapshotCount string `json:"snapshotCount"` // 快照采样通道数量 SamplingPoints string `json:"samplingPoints"` // 采样点总数 MaxFrequency string `json:"maxFrequency"` // 最大采样频率 CurrFrequency string `json:"currFrequency"` // 当前采样频率 SnapshotMeaningVal string `json:"snapshotMeaningVal"` // 快照含义? SnapshotChannel []FaultRecordChannelInfo `json:"snapshotChannel"` // 快照通道信息 SamplingMeaning string `json:"samplingMeaning"` // 采样含义? SamplingChannel []FaultRecordChannelInfo `json:"samplingChannel"` // 采样通道信息 } type SystemUpdateRecordInfo struct { Id int64 `json:"id"` OrderNo string `json:"orderNo"` // 升级单号 Name string `json:"name"` // UpgradeType string `json:"upgradeType"` UpgradeTime string `json:"upgradeTime"` // 升级开始时间 - UTC时间 UpgradeNum int `json:"upgradeNum"` // 升级设备数量 Result int `json:"result"` // 升级结果 1-升级中 2-升级成功 3-升级失败 Status int `json:"status"` SuccessNum int `json:"successNum"` FailuresNum int `json:"failuresNum"` TurnoverTime string `json:"turnoverTime"` // 升级完成时间 - UTC时间 OrderUpgradeTypeName string `json:"orderUpgradeTypeName"` // 升级类型 exg.无感升级 } type AHubUpdateRecordInfo struct { AHubSn string `json:"ahubSn"` // aHub SN OrderNo string `json:"orderNo"` // 升级单号 GatewayId string `json:"gatewayId"` // Gate SN EndTime int64 `json:"endTime"` // 升级结束时间 - 时间戳(ms) - 只能显示北京时间 UpgradeResult int `json:"upgradeResult"` // 升级结果 0-成功 DetailList []struct { UpgradeFileName string `json:"upgradeFileName"` // 升级包名 UpgradeFileOrder string `json:"upgradeFileOrder"` // 升级包单号 UpgradeResult string `json:"upgradeResult"` // 升级结果 '0'-成功 UpgradeResultDesc string `json:"upgradeResultDesc"` // 升级结果说明 OldVersion string `json:"oldVersion"` // 升级前版本 NewVersion string `json:"newVersion"` // 升级后版本 } `json:"detailList"` } type SystemUpdateDetailInfo struct { Id int64 `json:"id"` OrderNo string `json:"orderNo"` // 升级单号 GatewayId string `json:"gatewayId"` // SN GatewayName string `json:"gatewayName"` GatewayStatus int `json:"gatewayStatus"` ActiveStatus int `json:"activeStatus"` // 激活状态 0-未激活 1-已激活 Result int `json:"result"` // 升级结果 1-升级中 2-升级成功 3-升级失败 UpgradeTime string `json:"upgradeTime"` // 升级开始时间 TurnoverTime string `json:"turnoverTime"` // 升级完成时间 IbgVersion string `json:"ibgVersion"` // 设备版本信息(同IbgVersionNew) JSON string IbgVersionNew []struct { // Gate 版本 Type string `json:"type"` // 版本类型 OldVersion string `json:"oldVersion"` // 升级前版本 Version string `json:"version"` // 升级后版本 Children []struct { Type string `json:"type"` // 版本类型 OldVersion string `json:"oldVersion"` // 升级前版本 Version string `json:"version"` // 升级后版本 } `json:"children"` } `json:"ibgVersionNew"` ErrCode int `json:"errCode"` // 错误码 0-无错误 ErrMsg string `json:"errMsg"` // 错误信息 DownloadAfterStatus int `json:"downloadAfterStatus"` CoverOrderNo string `json:"coverOrderNo"` SysHdVersion int `json:"sysHdVersion"` // 系统硬件版本 int eg.104=FHP1.4 RealSysHdVersion string `json:"realSysHdVersion"` // 系统硬件版本 string EmsDeviceVer int `json:"emsDeviceVer"` OldEmsDeviceVer int `json:"oldEmsDeviceVer"` SonNewDevices []struct { // 子设备版本 (aPower、aHub) ApowerSn string `json:"apowerSn"` // 子设备SN FirstList []struct { // 1级菜单 BigType string `json:"bigType"` // 设备类型 DeviceSn string `json:"deviceSn"` // 设备SN Secondlist []struct { // 2级菜单 Type string `json:"type"` // 版本类型 Thirdlist []struct { // 3级类型 SubType string `json:"subType"` // 版本类型 Version string `json:"version"` // 升级后版本 OldVersion string `json:"oldVersion"` // 升级前版本 } `json:"thirdlist"` } `json:"secondlist"` } `json:"firstList"` } `json:"sonNewDevices"` // sonDevices ??? TODO // apboxVersion ??? TODO // apboxVersionVOList ??? TODO } type AlarmStatisticsInfo struct { LogName string `json:"logName"` LogNameEn string `json:"logNameEn"` AlarmCount int `json:"alarmCount"` AlarmCode string `json:"alarmCode"` Level int `json:"level"` AlarmPercent float32 `json:"alarmPercent"` // 告警数量占比 } type AlarmStatisticsFromCodeInfo struct { GatewayId string `json:"gatewayId"` // aGateSN ApowerList []string `json:"apowerList"` // aPowerSn List Mode string `json:"mode"` // 站点工作模式 Name string `json:"name"` // 站点工作模式名 LogTime string `json:"logTime"` // 告警日志上传时间(北京时间) format: YYYY-MM-DD HH:mm:SS } type AlarmStatisticsData[T any] struct { PageNo int `json:"pageNo"` PageSize int `json:"pageSize"` PageTotal int `json:"pageTotal"` Records []T `json:"records"` Total int `json:"total"` } type FwhSiteInfo struct { Id string `json:"id"` // aGate SN Name *string `json:"name"` DistributorId *int `json:"distributorId"` // 经销商ID DistributorName *string `json:"distributorName"` // 经销商名称 InstallerId *int `json:"installerId"` // 安装商ID InstallerAccountId *int `json:"installerAccountId"` // 安装商账号ID InstallerAccount *string `json:"installerAccount"` // 安装商账号 InstallerName *string `json:"installerName"` // 安装商名称 MaintId *int `json:"maintId"` // 维护商ID MaintName *string `json:"maintName"` // 维护商名称 Account *string `json:"account"` // 绑定的用户账号 AccountName *string `json:"accountName"` // 绑定账号名 Longitude string `json:"longitude"` // 经度 Latitude string `json:"latitude"` // 纬度 Address *string `json:"address"` InstallTime *string `json:"installTime"` // 安装时间 ActiveStatus int `json:"activeStatus"` // 激活状态 0-未激活 1-激活 ActiveTime string `json:"activeTime"` // 激活时间(北京时间) LocalActiveTime string `json:"localActiveTime"` // 激活时间(站点当地时间) Status int `json:"status"` // 网络状态 0-离线 1-在线 OnLineTime *string `json:"onLineTime"` // 最后上线时间 YYYY-MM-DD HH:mm:SS OffLineTime *string `json:"offLineTime"` // 最后离线时间 YYYY-MM-DD HH:mm:SS // model * ??? 未知字段 (TODO:后续处理) DeviceIp *string `json:"deviceIp"` // 设备联网IP Subnet *string `json:"subnet"` // 子掩码 Mac *string `json:"mac"` // MAC地址 GatewayIp *string `json:"gatewayIp"` // 网关IP Signal *string `json:"signal"` // 信号强度 ICCID string `json:"iccId"` IMEI string `json:"imei"` FirmUpgradeTime *string `json:"firmUpgradeTime"` // 固件最后更新时间 YYYY-MM-DD HH:mm:SS TurnoverTime *string `json:"turnoverTime"` // 周转时间??? YYYY-MM-DD HH:mm:SS CreateTime *string `json:"createTime"` // 设备首次登录时间 YYYY-MM-DD HH:mm:SS // 忽略部分功率字段powerSun、powerGen、powerUti、powerFhp、powerLoad BatterySoc *float32 `json:"batterySoc"` // 系统电池SOC RunStatus int `json:"runStatus"` // 设备运行状态 0-待机 1-充电 2-放电 3-故障 EmsModel *int `json:"emsModel"` // EMS调度运行模式(策略) 参考调度ID ElectricityType int `json:"electricityType"` // 电网类型 0-离网运行 1-并网运行 // workMode * ??? 未知字段 (TODO:后续处理) FhpSn string `json:"fhpSn"` // aPower SN 多设备用,分割 TimeZone float32 `json:"timeZone"` // 时区数值 Version string `json:"version"` // 设备固件版本 SlVersion string `json:"slVersion"` // EMS-DSP版本 SlVersionJson string `json:"slVersionJson"` // EMS-DSP版本详细信息JSON MeterVersion *string `json:"meterVersion"` // 电表版本 MbVersion *string `json:"mbVersion"` // MODBUS版本 AwsVersion *string `json:"awsVersion"` // AWS版本 AppVersion *string `json:"appVersion"` // APP版本(与APP通讯的模块软件) ElecnetStatus int `json:"elecnetStatus"` // 电网状态 0-离网 1-并网 SlaverStat int `json:"slaverStat"` // EMS-DSP状态 Dst *int `json:"dst"` // 夏令时 0-否 1-是 ZoneInfo string `json:"zoneInfo"` // 时区信息 America/Los_Angeles PostCode string `json:"postCode"` // 邮编 DeviceTime *string `json:"deviceTime"` // 设备时间 YYYY-MM-DD HH:mm:SS ProtocolVer string `json:"protocolVer"` // 协议版本 SysHdVersion int `json:"sysHdVersion"` // aGate硬件版本 RealSysHdVersion *string `json:"realSysHdVersion"` // aGate系统版本名称 WifiSignal string `json:"wifiSignal"` // WIFI信号 ConnType int `json:"connType"` // 网络连接类型 0-未连接 1-eth0 2-eth1 3-WIFI 4-4G UserName *string `json:"userName"` ContactNumber *string `json:"contactNumber"` // 联系方式(手机号) // 忽略部分未知字段totalData、usedData、resourceList FinancierName *string `json:"financierName"` // 大客户名称 FinancierContractNumber *string `json:"financierContractNumber"` // 大客户联系方式(手机号) CountryId *int `json:"countryId"` // 国家ID ProvinceId *int `json:"provinceId"` // 州/省ID FinancierId *int `json:"financierId"` // 大客户ID FirstName *string `json:"firstName"` // 用户名 LastName *string `json:"lastName"` // 用户姓 // region * ??? 未知字段 (TODO:后续处理) Remark *string `json:"remark"` // 备注信息 GenEn int `json:"genEn"` // 发电机是否使能 0-不使能 1-使能 UserId *int `json:"userId"` // 用户ID Country string `json:"country"` // 国家 Province string `json:"province"` // 州/省 City string `json:"city"` // 城市 AddressSecondLast *string `json:"addressSecondLast"` DeviceAddress *string `json:"deviceAddress"` // 设备地址 // whetherEncrypt * ??? 未知字段 (TODO:后续处理) EmsDeviceVer *int `json:"emsDeviceVer"` // EMS版本 Site *string `json:"site"` // 站点ID名 // 忽略部分字段newHomeFlag、sleepStatus、isJoinJA12 SiteId *uint `json:"siteId"` // 站点ID号 JobCode *string `json:"jobCode"` // Job Code (Sunrun相关) }