package com.sundot.airport.system.service.portrait;

import com.sundot.airport.common.domain.portrait.IndicatorCalculateParams;
import com.sundot.airport.common.domain.portrait.ModularIndicatorResult;
import com.sundot.airport.common.service.portrait.Indicator;
import com.sundot.airport.common.service.portrait.ModuleIndicatorManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Set;

/**
 * 用户画像服务接口
 */
@Service
public class UserPortraitService {

    @Autowired
    private Set<Indicator<?>> indicators;

    @Autowired
    private ModuleIndicatorManager moduleIndicatorManager;

    /**
     * 获取模块化指标数据
     *
     * @param params 用户ID、用户类型、模块列表等参数
     * @return 模块化指标结果
     */
    public ModularIndicatorResult getIndicators(IndicatorCalculateParams params) {
        return moduleIndicatorManager.calculateAllModuleIndicators(params);
    }

    /**
     * 获取指定模块的指标数据
     *
     * @param params      用户ID、用户类型、模块列表等参数
     * @param moduleNames 指定的模块名称列表
     * @return 模块化指标结果
     */
    public ModularIndicatorResult getIndicators(IndicatorCalculateParams params, List<String> moduleNames) {
        return moduleIndicatorManager.calculateModuleIndicators(params, moduleNames);
    }
}