package com.ycwl.basic.mapper;

import com.ycwl.basic.model.pc.faceSample.entity.FaceSampleAssociationEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 人脸样本关联分组 Mapper
 */
@Mapper
public interface FaceSampleAssociationMapper {
    /**
     * 根据景区ID和样本ID列表，查找同组的所有关联样本ID
     */
    List<Long> findAssociatedSampleIds(@Param("scenicId") Long scenicId,
                                       @Param("sampleIds") List<Long> sampleIds);

    /**
     * 批量插入关联记录（忽略重复）
     */
    void batchInsertIgnore(@Param("list") List<FaceSampleAssociationEntity> list);

    /**
     * 删除指定组内的指定样本关联
     */
    void deleteByGroupAndSampleIds(@Param("scenicId") Long scenicId,
                                   @Param("groupKey") String groupKey,
                                   @Param("sampleIds") List<Long> sampleIds);

    /**
     * 删除整个组的所有关联
     */
    void deleteByGroup(@Param("scenicId") Long scenicId,
                       @Param("groupKey") String groupKey);

    /**
     * 查询指定组的所有样本ID
     */
    List<Long> listSampleIdsByGroup(@Param("scenicId") Long scenicId,
                                    @Param("groupKey") String groupKey);

    /**
     * 查询指定景区下的所有分组标识
     */
    List<String> listGroupKeysByScenicId(@Param("scenicId") Long scenicId);
}
