init
This commit is contained in:
78
internal/transfer/model.go
Normal file
78
internal/transfer/model.go
Normal file
@@ -0,0 +1,78 @@
|
||||
package transfer
|
||||
|
||||
type TransferStatus string
|
||||
|
||||
const (
|
||||
TransferStatusPending TransferStatus = "pending"
|
||||
TransferStatusAccepted TransferStatus = "accepted"
|
||||
TransferStatusRejected TransferStatus = "rejected"
|
||||
TransferStatusCompleted TransferStatus = "completed"
|
||||
TransferStatusError TransferStatus = "error"
|
||||
TransferStatusCanceled TransferStatus = "canceled"
|
||||
TransferStatusActive TransferStatus = "active"
|
||||
)
|
||||
|
||||
type TransferType string
|
||||
|
||||
const (
|
||||
TransferTypeSend TransferType = "send"
|
||||
TransferTypeReceive TransferType = "receive"
|
||||
)
|
||||
|
||||
type ContentType string
|
||||
|
||||
const (
|
||||
ContentTypeFile ContentType = "file"
|
||||
ContentTypeText ContentType = "text"
|
||||
ContentTypeFolder ContentType = "folder"
|
||||
)
|
||||
|
||||
// Transfer
|
||||
type Transfer struct {
|
||||
ID string `json:"id" binding:"required"` // 传输会话 ID
|
||||
Sender Sender `json:"sender" binding:"required"` // 发送者
|
||||
FileName string `json:"file_name"` // 文件名
|
||||
FileSize int64 `json:"file_size"` // 文件大小 (字节)
|
||||
SavePath string `json:"savePath"` // 保存路径
|
||||
Status TransferStatus `json:"status"` // 传输状态
|
||||
Progress Progress `json:"progress"` // 传输进度
|
||||
Type TransferType `json:"type"` // 进度类型
|
||||
ContentType ContentType `json:"content_type"` // 内容类型
|
||||
Text string `json:"text"` // 文本内容
|
||||
ErrorMsg string `json:"error_msg"` // 错误信息
|
||||
Token string `json:"token"` // 用于上传的凭证
|
||||
DecisionChan chan Decision `json:"-"` // 用户决策通道
|
||||
}
|
||||
|
||||
type Sender struct {
|
||||
ID string `json:"id" binding:"required"` // 发送者 ID
|
||||
Name string `json:"name" binding:"required"` // 发送者名称
|
||||
}
|
||||
|
||||
// Progress 用户前端传输进度
|
||||
type Progress struct {
|
||||
Current int64 `json:"current"` // 当前进度
|
||||
Total int64 `json:"total"` // 总进度
|
||||
Speed float64 `json:"speed"` // 速度
|
||||
}
|
||||
|
||||
// Decision 用户前端决策
|
||||
type Decision struct {
|
||||
ID string `json:"id"` // 传输会话 ID
|
||||
Accepted bool `json:"accepted"`
|
||||
SavePath string `json:"save_path"`
|
||||
}
|
||||
|
||||
// TransferAskResponse 握手回应
|
||||
type TransferAskResponse struct {
|
||||
ID string `json:"id"` // 传输会话 ID
|
||||
Accepted bool `json:"accepted"`
|
||||
Token string `json:"token,omitempty"` // 用于上传的凭证
|
||||
Message string `json:"message,omitempty"` // 错误信息
|
||||
}
|
||||
|
||||
// TransferUploadResponse 上传回应
|
||||
type TransferUploadResponse struct {
|
||||
ID string `json:"id"` // 传输会话 ID
|
||||
Message string `json:"message"`
|
||||
}
|
||||
Reference in New Issue
Block a user