import { useEnumStore } from '@/stores'
import { usePerformanceStore } from '@/stores'

const performanceStore = usePerformanceStore()
const { getEnumTypeList, getEnumTypeName } = useEnumStore()

/**
 * 买卖方向
 */
export enum BuyOrSell {
    Buy = 0, // 买
    Sell = 1, // 卖
}

/**
 * 获取买卖方向列表
 * @returns 
 */
export function getBuyOrSellList() {
    return [
        { label: '购买', value: BuyOrSell.Buy },
        { label: '出售', value: BuyOrSell.Sell },
    ]
}

/**
 * 获取买卖方向名称
 * @returns 
 */
export function getBuyOrSellName(value: number) {
    return getEnumTypeName(getBuyOrSellList(), value)
}

/**
 * 申请状态
 */
export enum ApplyStatus {
    Pending = 1, // 待确认
}

/**
 * 获取申请状态列表
 * @returns 
 */
export function getApplyStatusList() {
    return getEnumTypeList('wrApplyStatus')
}

/**
 * 获取申请状态名称
 * @returns 
 */
export function getApplyStatusName(value: number) {
    const enums = getApplyStatusList()
    return getEnumTypeName(enums, value)
}

/**
 * 获取履约状态列表
 * @returns 
 */
export function getPerformanceStatusList() {
    return getEnumTypeList('performanceStatus')
}

/**
 * 获取履约状态名称
 * @returns 
 */
export function getPerformanceStatusName(value: number) {
    const enums = getPerformanceStatusList()
    return getEnumTypeName(enums, value)
}

/**
 * 履约步骤
 */
export enum StepType {
    Payment = 1, // 买方支付
    Receive = 2, // 卖方收款
    Pickup = 3, // 买方自提
    SendGoods = 4, // 卖方发货
    ConfirmGoods = 5, // 买方确认货
    SendInvoice = 6, // 卖方发票
    ConfirmInvoice = 7, // 买方确认票
    WRMove = 8, // 仓单转移
}

/**
 * 获取履约步骤类型列表
 * @returns 
 */
export function getStepTypeList() {
    return performanceStore.performanceStepTypes.map((e) => ({
        label: e.steptypename,
        value: e.steptypeid,
    }))
}

/**
 * 获取履约步骤类型名称
 * @returns 
 */
export function getStepTypeName(value: number) {
    return getEnumTypeName(getStepTypeList(), value)
}

/**
 * 获取履约步骤状态列表
 * @returns 
 */
export function getStepStatusList() {
    return getEnumTypeList('stepStatus')
}

/**
 * 获取履约步骤状态名称
 * @returns 
 */
export function getStepStatusName(value: number) {
    const enums = getStepStatusList()
    return getEnumTypeName(enums, value)
}

/**
 * 获取委托状态列表
 * @returns 
 */
export function getWRTradeOrderStatusList() {
    return getEnumTypeList('WRTradeOrderStatus')
}

/**
 * 获取委托状态名称
 * @returns 
 */
export function getWRTradeOrderStatusName(value: number) {
    const enums = getWRTradeOrderStatusList()
    return getEnumTypeName(enums, value)
}