package com.ecep.contract.converter;

import com.ecep.contract.service.InventoryService;
import com.ecep.contract.vo.InventoryVo;
import javafx.util.StringConverter;

/**
 * 存货字符串转换器
 * 用于在UI组件中显示存货信息并支持从字符串还原存货对象
 */
public class InventoryStringConverter extends StringConverter<InventoryVo> {

    /** 存货服务，用于从字符串查找对应的存货对象 */
    private final InventoryService service;

    /**
     * 构造函数
     * 
     * @param service 存货服务实例
     */
    public InventoryStringConverter(InventoryService service) {
        this.service = service;
    }

    /**
     * 将存货对象转换为字符串表示
     * 
     * @param object 存货对象
     * @return 存货的名称，如果对象为null则返回空字符串
     */
    @Override
    public String toString(InventoryVo object) {
        return object == null ? "" : (object.getName() + "-" + object.getSpecification());
    }

    /**
     * 从字符串还原存货对象
     * 
     * @param string 存货名称
     * @return 对应的存货对象，如果未找到则返回null
     */
    @Override
    public InventoryVo fromString(String string) {
        return service.findByName(string);
    }
}