package models

import (
	"git.apinb.com/bsm-sdk/core/database"
	"git.apinb.com/bsm-sdk/core/types"
)

// 云盘文件
type CloudDiskFile struct {
	types.Std_IICUDS
	types.Std_Passport
	CloudBase
	DirectoryID  *uint  `gorm:"index" json:"directory_id"`     // 文件所属目录
	Name         string `gorm:"size:255" json:"name"`          // 文件名
	OriginalName string `gorm:"size:255" json:"original_name"` // 原始文件名
	Size         int64  `json:"size"`                          // 文件大小 (bytes)
	MimeType     string `gorm:"size:100" json:"mime_type"`     // 文件类型
	StoragePath  string `gorm:"size:500" json:"storage_path"`  // 实际存储路径
	Hash         string `gorm:"size:64" json:"hash"`           // 文件哈希，用于去重

	// 关联关系
	Directory *CloudDiskDir `gorm:"foreignKey:DirectoryID" json:"dir"` // 文件所属目录
}

func init() {
	database.AppendMigrate(&CloudDiskFile{})
}
