import { ErrorTypeEnum } from '/@/enums/exceptionEnum'
import { MenuModeEnum, MenuTypeEnum } from '/@/enums/menuEnum'
import { RoleInfo } from '/@/api/sys/model/userModel'

// Lock screen information
export interface LockInfo {
    // Password required
    pwd?: string | undefined
    // Is it locked?
    isLock?: boolean
}

// Error-log information
export interface ErrorLogInfo {
    // Type of error
    type: ErrorTypeEnum
    // Error file
    file: string
    // Error name
    name?: string
    // Error message
    message: string
    // Error stack
    stack?: string
    // Error detail
    detail: string
    // Error url
    url: string
    // Error time
    time?: string
}

export interface UserInfo {
    userId: string | number
    username: string
    realName: string
    avatar: string
    desc?: string
    homePath?: string
    roles: RoleInfo[]
}

export interface BeforeMiniState {
    menuCollapsed?: boolean
    menuSplit?: boolean
    menuMode?: MenuModeEnum
    menuType?: MenuTypeEnum
}

export type ISystem = {
    /**
     * 机器 UUID
     */
    machineId?: string
    /**
     * 系统平台
     */
    platform?: string
    /**
     * 本机 IP
     */
    ip?: string
    /**
     * 调试模式
     */
    debug?: boolean
    /**
     * 置顶
     */
    alwaysOnTop?: boolean
    /**
     * 版本更新地址
     */
    feedURL?: string
}

export type SettingStore = {
    /**
     * 系统配置
     */
    system?: ISystem
}
