package com.ecep.contract.converter;

import com.ecep.contract.service.CustomerCatalogService;
import com.ecep.contract.vo.CustomerCatalogVo;
import javafx.util.StringConverter;

/**
 * 客户分类字符串转换器
 * 用于在UI组件中显示客户分类信息并支持从字符串还原客户分类对象
 * 
 * @author AI Assistant
 * @since 2024-01-01
 */
public class CustomerCatalogStringConverter extends StringConverter<CustomerCatalogVo> {
    
    /** 客户分类服务，用于从字符串查找对应的客户分类对象 */
    private final CustomerCatalogService service;

    /**
     * 构造函数
     * 
     * @param service 客户分类服务实例
     */
    public CustomerCatalogStringConverter(CustomerCatalogService service) {
        this.service = service;
    }

    /**
     * 将客户分类对象转换为字符串表示
     * 
     * @param object 客户分类对象
     * @return 客户分类的名称，如果对象为null则返回空字符串
     */
    @Override
    public String toString(CustomerCatalogVo object) {
        return object == null ? "" : object.getName();
    }

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