import { useEnumStore } from '@/stores'

const { getEnumTypeList, getEnumTypeName } = useEnumStore()

/**
 * 获取检测账户类型列表
 * @returns 
 */
export function getGZCJAccountTypeList() {
    return getEnumTypeList('GZCJAccountType')
}

/**
 * 获取检测账户类型名称
 * @returns 
 */
export function getGZCJAccountTypeName(value?: number) {
    const enums = getGZCJAccountTypeList()
    return getEnumTypeName(enums, value)
}

/**
 * 获取货物品类列表
 * @returns 
 */
export function getGZCJCategoryTypeList() {
    return getEnumTypeList('GZCJCategoryType')
}

/**
 * 获取货物品类名称
 * @returns 
 */
export function getGZCJCategoryTypeName(value?: number) {
    const enums = getGZCJCategoryTypeList()
    return getEnumTypeName(enums, value)
}

/**
 * 获取出境检测收货方式列表
 * @returns 
 */
export function getGZCJDeliveryTypeList() {
    return getEnumTypeList('GZCJDeliveryType')
}

/**
 * 获取出境检测收货方式名称
 * @returns 
 */
export function getGZCJDeliveryTypeName(value?: number) {
    const enums = getGZCJDeliveryTypeList()
    return getEnumTypeName(enums, value)
}

/**
 * 获取保税服务提货方式列表
 * @returns 
 */
export function getGZBSDeliveryTypeList() {
    return getEnumTypeList('GZBSDeliveryType')
}

/**
 * 获取保税服务提货方式名称
 * @returns 
 */
export function getGZBSDeliveryTypeName(value?: number) {
    const enums = getGZBSDeliveryTypeList()
    return getEnumTypeName(enums, value)
}

/**
 * 获取形状列表
 * @returns 
 */
export function getGZCJShapeTypeList() {
    return getEnumTypeList('GZCJShapeType', ['enumdicname', 'param1', 'param2'])
}

/**
 * 获取形状名称
 * @returns 
 */
export function getGZCJShapeTypeName(value?: number) {
    const enums = getGZCJShapeTypeList()
    return getEnumTypeName(enums, value)
}

/**
 * 获取刻印服务列表
 * @returns 
 */
export function getGZCJMarkTypeList() {
    return getEnumTypeList('GZCJMarkType', ['enumdicname', 'param1'])
}

/**
 * 获取刻印服务名称
 * @returns 
 */
export function getGZCJMarkTypeName(value?: number) {
    const enums = getGZCJMarkTypeList()
    return getEnumTypeName(enums, value)
}

/**
 * 获取披露处理列表
 * @returns 
 */
export function getGZCJPublishTypeList() {
    return getEnumTypeList('GZCJPublishType')
}

/**
 * 获取披露处理名称
 * @returns 
 */
export function getGZCJPublishTypeName(value?: number) {
    const enums = getGZCJPublishTypeList()
    return getEnumTypeName(enums, value)
}

/**
 * 获取服务类别列表
 * @returns 
 */
export function getGZCJServiceTypeList() {
    return getEnumTypeList('GZCJServiceType')
}

/**
 * 获取服务类别名称
 * @returns 
 */
export function getGZCJServiceTypeName(value?: number) {
    const enums = getGZCJServiceTypeList()
    return getEnumTypeName(enums, value)
}

/**
 * 出境检测状态
 */
export enum GZCJStatus {
    Audit = 1, // 待审核
    Shipping = 2, // 发货中
    CheckConfirm = 8, // 检测结果确认中
    AdvancePaymentConfirm = 10, // 预付款确认中
    PaymentConfirm = 13, // 付款确认中
    Uncommitted = 22, // 未提交
}

/**
 * 获取出境检测状态列表
 * @returns 
 */
export function getGZCJStatusList() {
    return getEnumTypeList('GZCJStatus')
}

/**
 * 获取出境检测状态名称
 * @returns 
 */
export function getGZCJStatusName(value?: number) {
    const enums = getGZCJStatusList()
    return getEnumTypeName(enums, value)
}

/**
 * 保税服务状态
 */
export enum GZBSStatus {
    UploadBill = 1, // 发货单上传中
    UploadSeal = 3, // 单据盖章中
    AdvancePaymentConfirm = 5, // 预付款确认中
    PaymentConfirm = 11, // 付款确认中
}

/**
 * 获取保税服务状态列表
 * @returns 
 */
export function getGZBSStatusList() {
    return getEnumTypeList('GZBSStatus')
}

/**
 * 获取保税服务状态名称
 * @returns 
 */
export function getGZBSStatusName(value?: number) {
    const enums = getGZBSStatusList()
    return getEnumTypeName(enums, value)
}