package v1 import ( "git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/service/fullsyncretry" "github.com/gogf/gf/v2/frame/g" ) type FullSyncRunsListReq struct { g.Meta `path:"/fullSyncRuns" method:"get" tags:"全量同步" summary:"查询全量同步" x-check-permission:"cpm:iot:fullSyncRuns:view"` SyncKind string `json:"syncKind"` Limit int `json:"limit"` } type FullSyncRunsListRes struct { Items []fullsyncretry.RunView `json:"items"` Total int `json:"total"` } type FullSyncRunDetailReq struct { g.Meta `path:"/fullSyncRuns/{runId}" method:"get" tags:"全量同步" summary:"查看全量同步详情" x-check-permission:"cpm:iot:fullSyncRuns:view"` RunID string `json:"runId" v:"required"` } type FullSyncRunDetailRes struct { fullsyncretry.RunView SyncKind string `json:"syncKind"` SyncName string `json:"syncName"` } type FullSyncRunFailuresReq struct { g.Meta `path:"/fullSyncRuns/{runId}/failures" method:"get" tags:"全量同步" summary:"查看全量同步失败明细" x-check-permission:"cpm:iot:fullSyncRuns:failures"` RunID string `json:"runId" v:"required"` Limit int `json:"limit"` Cursor string `json:"cursor"` } type FullSyncRunFailuresRes struct { Items []fullsyncretry.Failure `json:"items"` NextCursor string `json:"nextCursor"` } type FullSyncRunStartReq struct { g.Meta `path:"/fullSyncRuns/start" method:"post" tags:"全量同步" summary:"手动启动全量同步" x-check-permission:"cpm:iot:fullSyncRuns:start"` SyncKind string `json:"syncKind" v:"required"` // Channels narrows the run to the listed chanKeys. Empty or omitted means a // full sync, which is the only behaviour that existed before this field. Channels []string `json:"channels"` // QueryDate backfills a specific day (yyyyMMdd) instead of the default // "yesterday". Only valid when syncKind=traffic_usage_daily; empty keeps the // default period. QueryDate string `json:"queryDate"` // QueryMonth backfills a specific month (yyyyMM) instead of the default // "previous month". Only valid when syncKind=traffic_usage_monthly; empty // keeps the default period. QueryMonth string `json:"queryMonth"` } type FullSyncRunStartRes struct { RunID string `json:"runId"` SyncKind string `json:"syncKind"` Status string `json:"status"` // ScopeChannels is the normalized channel count; 0 means a full sync. ScopeChannels int `json:"scopeChannels"` // QueryPeriod echoes the requested period (yyyyMMdd or yyyyMM); empty means // the run used its default period. QueryPeriod string `json:"queryPeriod"` } type FullSyncChannelOptionsReq struct { g.Meta `path:"/fullSyncRuns/channels" method:"get" tags:"全量同步" summary:"可同步通道候选" x-check-permission:"cpm:iot:fullSyncRuns:view"` } type FullSyncChannelOptionsRes struct { Items []FullSyncChannelOption `json:"items"` } type FullSyncChannelOption struct { ChanKey string `json:"chanKey"` ChanName string `json:"chanName"` TempKey string `json:"tempKey"` Operator int `json:"operator"` CardCount int64 `json:"cardCount"` SyncEnabled bool `json:"syncEnabled"` }