package example

import "time"

// FileInfo 文件信息
type FileInfo struct {
	ID         uint      `json:"ID"`
	FileName   string    `json:"fileName"`
	FileMd5    string    `json:"fileMd5"`
	FilePath   string    `json:"filePath"`
	ChunkTotal int       `json:"chunkTotal"`
	IsFinish   bool      `json:"isFinish"`
	CreatedAt  time.Time `json:"createdAt"`
}

// FileChunkInfo 文件分片信息
type FileChunkInfo struct {
	ID              uint      `json:"ID"`
	ExaFileID       uint      `json:"exaFileId"`
	FileChunkNumber int       `json:"fileChunkNumber"`
	FileChunkPath   string    `json:"fileChunkPath"`
	CreatedAt       time.Time `json:"createdAt"`
}

// BreakpointContinueRequest 断点续传请求
type BreakpointContinueRequest struct {
	FileName    string `json:"fileName" form:"fileName" binding:"required"`
	FileMd5     string `json:"fileMd5" form:"fileMd5" binding:"required"`
	ChunkNumber int    `json:"chunkNumber" form:"chunkNumber"`
	ChunkTotal  int    `json:"chunkTotal" form:"chunkTotal"`
}

// FindFileRequest 查找文件请求
type FindFileRequest struct {
	FileMd5 string `json:"fileMd5" form:"fileMd5" binding:"required"`
}

// FilePathResponse 文件路径响应
type FilePathResponse struct {
	FilePath string `json:"filePath"`
}

// FileInfoResponse 文件信息响应
type FileInfoResponse struct {
	File FileInfo `json:"file"`
}
