export type AppType = 'analog_display' | 'chip' | 'board'
export type ScreenType = 'single' | 'double'
export type ResourcePackaging = 'c' | 'c_bin'

export type ChipConfig = {
  // 芯片型号
  model: string
  // 闪存大小
  flash_size: {
    capacity: string
    unit: string
  }
  // 内存大小
  ram_size: {
    capacity: string
    unit: string
  }
}

export type BoardConfig = {
  // 板卡型号
  model: string
}

export type ScreenConfig = {
  // 屏幕类型
  type: number // 1：主屏 2：副屏
  // 接口类型
  interface: string
  // 屏幕方向
  screenDirection: string
  // 屏幕宽
  width: number
  // 屏幕高
  height: number
  // 颜色深度
  colorDepth: string
  // 颜色格式
  colorFormat: string | 'BGR' | 'RGB'
  // 屏幕参数
  params: {
    PCLK?: number
    HFP?: number
    HBP?: number
    HSW?: number
    HSPOL?: number
    VFP?: number
    VBP?: number
    VSW?: number
    VSPOL?: number
  }
}

export interface AppMeta {
  name: string // 项目名称
  version: string // 项目版本号
  description: string // 项目描述
  type: AppType // 项目类型 1: 模拟显示 2: 芯片 3: 板卡
  screenType: string //  屏幕类型 1：单屏 2：双屏
  language: string // 语言
  resourcePackaging: ResourcePackaging // 资源打包方式1: C源码 2: C源码+BIN
  binNum: number // // BIN数量 1~32
  path: string // 项目路径
  codePath: string // 项目代码路径
  // 芯片配置
  chip: ChipConfig
  // 板卡配置
  board: BoardConfig
  // 图片压缩方式
  imageCompress: string[]
  // 屏幕配置
  screens: ScreenConfig[]
  // 支持视频格式
  videoFormats: string[]
  // 创建时间
  createTime?: string
  // 修改时间
  modifyTime?: string
  // 字体存储
  fontPackaging: 'c' | 'bin'
  // 矢量字库
  vectorFont: boolean
}
