type Recordable = Record<string, unknown>

// 基础数据类型
type ID = number | string | null

/**
 * 开关数据类型
 */
type Switch = 0 | 1

/**
 * 安装方式类型
 * @param Wall 墙装
 * @param Ceiling 顶装
 */
type InstallWay = 'Wall' | 'Ceiling'

/**
 * 安装位置类型
 * @param Toilet 卫生间
 * @param Bedroom 卧室
 * @param LivingRoom 客厅
 * @param Restaurant 餐厅
 */
type InstallPosition = 'Toilet' | 'Bedroom' | 'LivingRoom' | 'Restaurant'

/**
 * 北向角度类型
 * @param 0 0度
 * @param 90 90度
 * @param 180 180度
 * @param 270 270度
 */
type NorthAngle = 0 | 90 | 180 | 270

/**
 * 通用响应类型
 * @param code 响应码
 * @param message 响应信息
 * @param dateTime 响应时间
 * @param data 响应数据
 * @param traceId 跟踪ID
 */
interface ResponseData<T> {
  code: string
  message: string
  dateTime: string
  data: T
  traceId: string
}
