package constants

import "time"

// 设备导入任务业务类型。
const (
	DeviceImportOperationCreate       = "import"        // 导入并创建设备
	DeviceImportOperationAssignShop   = "assign_shop"   // 按单列 CSV 分配目标代理店铺
	DeviceImportOperationAssignSeries = "assign_series" // 按单列 CSV 设置目标套餐系列
)

// 设备批量分配 CSV 约束。
const (
	StoragePurposeDeviceBatchAllocation = "device_batch_allocation"  // 设备批量分配 CSV 上传用途
	DeviceBatchAllocationStoragePrefix  = "device-batch-allocations" // 设备批量分配对象存储目录
	DeviceBatchAllocationMaxRows        = 1000                       // 单个 CSV 最大设备行数
	DeviceBatchAllocationMaxFileSize    = int64(10 * 1024 * 1024)    // 单个 CSV 最大字节数
	DeviceBatchAllocationTaskTimeout    = 2 * time.Hour              // 单个任务最长执行时间
)

// IsDeviceImportOperation 判断是否为设备导入任务支持的业务类型。
func IsDeviceImportOperation(operation string) bool {
	switch operation {
	case DeviceImportOperationCreate, DeviceImportOperationAssignShop, DeviceImportOperationAssignSeries:
		return true
	default:
		return false
	}
}

// GetDeviceImportOperationName 返回设备导入任务业务类型中文名称。
func GetDeviceImportOperationName(operation string) string {
	switch operation {
	case DeviceImportOperationCreate:
		return "导入设备"
	case DeviceImportOperationAssignShop:
		return "分配目标代理"
	case DeviceImportOperationAssignSeries:
		return "设置套餐系列"
	default:
		return "未知"
	}
}
