Files
file-transfer-go/internal/models/models.go
MatrixSeven 70ad644a71 第一版本
2025-07-28 16:33:10 +08:00

69 lines
1.7 KiB
Go

package models
import (
"time"
)
// FileInfo 文件信息结构
type FileInfo struct {
ID string `json:"id"`
FileName string `json:"filename"`
FileSize int64 `json:"file_size"`
ContentType string `json:"content_type"`
Code string `json:"code"`
UploadTime time.Time `json:"upload_time"`
ExpiryTime time.Time `json:"expiry_time"`
DownloadURL string `json:"download_url"`
FilePath string `json:"file_path"`
}
// UploadResponse 上传响应结构
type UploadResponse struct {
Success bool `json:"success"`
Message string `json:"message"`
Code string `json:"code,omitempty"`
FileInfo FileInfo `json:"file_info,omitempty"`
DownloadURL string `json:"download_url,omitempty"`
}
// WebRTCOffer WebRTC offer 结构
type WebRTCOffer struct {
SDP string `json:"sdp"`
Type string `json:"type"`
}
// WebRTCAnswer WebRTC answer 结构
type WebRTCAnswer struct {
SDP string `json:"sdp"`
Type string `json:"type"`
}
// WebRTCICECandidate ICE candidate 结构
type WebRTCICECandidate struct {
Candidate string `json:"candidate"`
SDPMLineIndex int `json:"sdpMLineIndex"`
SDPMid string `json:"sdpMid"`
}
// VideoMessage 视频消息结构
type VideoMessage struct {
Type string `json:"type"`
Payload interface{} `json:"payload"`
}
// FileTransferInfo P2P文件传输信息
type FileTransferInfo struct {
ID string `json:"id"`
Name string `json:"name"`
Size int64 `json:"size"`
Type string `json:"type"`
LastModified int64 `json:"lastModified"`
}
// ErrorResponse 错误响应结构
type ErrorResponse struct {
Success bool `json:"success"`
Message string `json:"message"`
Code string `json:"code,omitempty"`
}