mirror of
https://github.com/QuantumNous/new-api.git
synced 2026-09-01 19:41:57 +00:00
92 lines
3.0 KiB
Go
92 lines
3.0 KiB
Go
package dto
|
|
|
|
import (
|
|
"encoding/json"
|
|
)
|
|
|
|
type TaskError struct {
|
|
Code string `json:"code"`
|
|
Message string `json:"message"`
|
|
Data any `json:"data"`
|
|
StatusCode int `json:"-"`
|
|
LocalError bool `json:"-"`
|
|
Error error `json:"-"`
|
|
}
|
|
|
|
type TaskData interface {
|
|
SunoDataResponse | []SunoDataResponse | string | any
|
|
}
|
|
|
|
const TaskSuccessCode = "success"
|
|
|
|
type TaskResponse[T TaskData] struct {
|
|
Code string `json:"code"`
|
|
Message string `json:"message"`
|
|
Data T `json:"data"`
|
|
}
|
|
|
|
func (t *TaskResponse[T]) IsSuccess() bool {
|
|
return t.Code == TaskSuccessCode
|
|
}
|
|
|
|
type TaskDto struct {
|
|
ID int64 `json:"id"`
|
|
CreatedAt int64 `json:"created_at"`
|
|
UpdatedAt int64 `json:"updated_at"`
|
|
TaskID string `json:"task_id"`
|
|
Platform string `json:"platform"`
|
|
UserId int `json:"user_id"`
|
|
Group string `json:"group"`
|
|
ChannelId int `json:"channel_id"`
|
|
Quota int `json:"quota"`
|
|
Action string `json:"action"`
|
|
Status string `json:"status"`
|
|
FailReason string `json:"fail_reason"`
|
|
ResultURL string `json:"result_url,omitempty"` // 任务结果 URL(视频地址等)
|
|
LegacyVideoAvailable bool `json:"legacy_video_available,omitempty"`
|
|
SubmitTime int64 `json:"submit_time"`
|
|
StartTime int64 `json:"start_time"`
|
|
FinishTime int64 `json:"finish_time"`
|
|
Progress string `json:"progress"`
|
|
Properties any `json:"properties"`
|
|
Username string `json:"username,omitempty"`
|
|
Data json.RawMessage `json:"data"`
|
|
AdminInfo *TaskAdminInfo `json:"admin_info,omitempty"`
|
|
RootInfo *TaskRootInfo `json:"root_info,omitempty"`
|
|
}
|
|
|
|
type TaskPluginInfo struct {
|
|
Key string `json:"key"`
|
|
Name string `json:"name"`
|
|
Version string `json:"version,omitempty"`
|
|
Author *TaskPluginAuthorInfo `json:"author,omitempty"`
|
|
}
|
|
|
|
type TaskPluginAuthorInfo struct {
|
|
Name string `json:"name"`
|
|
URL string `json:"url,omitempty"`
|
|
}
|
|
|
|
type TaskPluginRuntimeInfo struct {
|
|
Key string `json:"key"`
|
|
Version string `json:"version"`
|
|
APIVersion int `json:"api_version"`
|
|
Generation uint64 `json:"generation"`
|
|
}
|
|
|
|
type TaskAdminInfo struct {
|
|
RequestID string `json:"request_id,omitempty"`
|
|
RequestPath string `json:"request_path,omitempty"`
|
|
TaskPlugin *TaskPluginInfo `json:"task_plugin,omitempty"`
|
|
}
|
|
|
|
type TaskRootInfo struct {
|
|
TaskPlugin *TaskPluginRuntimeInfo `json:"task_plugin,omitempty"`
|
|
UpstreamTaskID string `json:"upstream_task_id,omitempty"`
|
|
NodeName string `json:"node_name,omitempty"`
|
|
}
|
|
|
|
type FetchReq struct {
|
|
IDs []string `json:"ids"`
|
|
}
|