package com.yd.dal.mapper.customer;

import com.yd.dal.entity.customer.AclPractitionerPotentialAssignedTrack;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface AclPractitionerPotentialAssignedTrackMapper {
    int deleteByPrimaryKey(Long id);

    int insert(AclPractitionerPotentialAssignedTrack record);

    int insertSelective(AclPractitionerPotentialAssignedTrack record);

    AclPractitionerPotentialAssignedTrack selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(AclPractitionerPotentialAssignedTrack record);

    int updateByPrimaryKey(AclPractitionerPotentialAssignedTrack record);

    void insertList(@Param("potentialAssignedTrackList") List<AclPractitionerPotentialAssignedTrack> potentialAssignedTrackList);

    List<AclPractitionerPotentialAssignedTrack> findByPractitionerIdAndPotentialIdAndTrackStatusId(@Param("practitionerId") Long practitionerId, @Param("potentialId")Long potentialId, @Param("trackStatusId")Long trackStatusId, @Param("trackDate")Date trackDate);

    List<AclPractitionerPotentialAssignedTrack> findByPotentialIdAndIsLasted(@Param("potentialId")Long potentialId, @Param("isLasted")int isLasted);

    void updateAll(@Param("assignedTrackUpdateList")List<AclPractitionerPotentialAssignedTrack> assignedTrackUpdateList);

    List<AclPractitionerPotentialAssignedTrack> findByPractitionerIdAndPotentialId(@Param("practitionerId")Long practitionerId, @Param("potentialId")Long potentialId);

    List<AclPractitionerPotentialAssignedTrack> findScoreByPractitionerIdAndDate(@Param("practitionerId")Long practitionerId, @Param("time")String time);

    void deleteScheduleTrackById(Long scheduleTrackId);
}