package filesystem

import (
	"time"
)

// 文件大小限制常量
const (
	// ZIP 文件大小限制
	MaxZipSize        = 100 * 1024 * 1024 // 100MB - ZIP 文件最大大小
	MaxExtractSize    = 500 * 1024 * 1024 // 500MB - 解压后总大小限制
	MaxSingleFileSize = 50 * 1024 * 1024  // 50MB  - ZIP 中单个文件最大大小

	// HTTP 文件服务大小限制
	MaxHTTPFileSize = 500 * 1024 * 1024 // 500MB - HTTP 访问文件最大大小
)

// 时间相关常量
const (
	// 审计日志
	AuditLogBufferSize  = 100              // 审计日志缓冲区大小

	// 临时文件
	TempFileCleanupAge = 24 * time.Hour     // 临时文件清理周期
	TempFileDir        = "u-desk-zip"       // 临时文件目录名
)

// 数量限制常量
const (
	MaxFileCount      = 1000 // 最大文件数量（目录）
)

// 文件操作相关常量
const (
	DefaultFilePermissions = 0644 // 默认文件权限 (rw-r--r--)
	DefaultDirPermissions  = 0755 // 默认目录权限 (rwxr-xr-x)
)

// 随机字符串相关常量
const (
	RandomStringDefaultLength = 6 // 回收站文件名随机后缀长度
)

// 路径遍历检测字符串
const (
	PathTraversalPattern = ".." // 路径遍历特征字符串
)

// 文件类型常量
const (
	FileTypeImage = "image"
	FileTypeVideo = "video"
	FileTypeAudio = "audio"
	FileTypeDocument = "document"
	FileTypeText = "text"
	FileTypeApplication = "application"
)
