import type { Component } from 'vue'

export type PhoneAppId =
  | 'phone'
  | 'calculator'
  | 'camera'
  | 'clock'
  | 'weather'
  | 'mail'
  | 'map'
  | 'notes'
  | 'photos'
  | 'app-store'
  | 'settings'

export type LaunchablePhoneAppId = PhoneAppId

export type AppLaunchOrigin = {
  borderRadius: number
  scaleX: number
  scaleY: number
  x: number
  y: number
}

export type PhoneAppDefinition = {
  component: Component | null
  dockOrder: number | null
  gridOrder: number
  icon: Component
  iconClass: string
  iconImage: string
  id: PhoneAppId
  labelKey: string
  route: `/apps/${LaunchablePhoneAppId}` | null
}

export type LaunchablePhoneAppDefinition = PhoneAppDefinition & {
  component: Component
  id: LaunchablePhoneAppId
  route: `/apps/${LaunchablePhoneAppId}`
}
