package model

import (
	"time"

	"gorm.io/gorm"
)

type FileUpload struct {
	gorm.Model
	FileName     string    `gorm:"size:255" json:"file_name"`          // 文件名
	FilePath     string    `gorm:"size:255" json:"file_path"`          // 文件路径
	FileSize     int64     `json:"file_size"`                          // 文件大小
	FileType     string    `gorm:"size:50" json:"file_type"`           // 文件类型
	UploadedBy   uint      `gorm:"index" json:"uploaded_by"`           // 上传者ID
	DeviceModel  string    `gorm:"size:255;index" json:"device_model"` // 设备型号
	Version      string    `gorm:"size:50" json:"version"`             // 文件版本
	Description  string    `gorm:"size:500" json:"description"`        // 文件描述
	IsUpdate     bool      `gorm:"default:false" json:"is_update"`     // 是否为更新文件
	Downloads    int       `gorm:"default:0" json:"downloads"`         // 下载次数
	LastDownload time.Time `json:"last_download"`                      // 最后下载时间
	MD5          string    `gorm:"size:32" json:"md5"`                 // 文件MD5值
	ForceUpdate  bool      `gorm:"default:false" json:"force_update"`  // 是否强制更新
	DeviceUID    string    `gorm:"size:255;index" json:"device_uid"`   // 关联的设备UID
}
