package org.shunt.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.shunt.contorller.request.AvatarSetRequest;
import org.shunt.contorller.request.EmailSetRequest;
import org.shunt.contorller.request.MajorApplyRequest;
import org.shunt.contorller.request.SpecialApplyRequest;
import org.shunt.contorller.response.*;

import java.util.List;

@Mapper
public interface ShuntMapper {

	List<ScheduleVO> getSchedule(AuthorDTO authorDTO);

	StudentScoreVO getStudentScore(AuthorDTO authorDTO);

	List<MajorShuntCountVO> getMajorQuota(AuthorDTO authorDTO);

	void insertSpecialApply(SpecialApplyRequest request);

	SpecialApplyViewVO viewSpecialApply(AuthorDTO authorDTO);

	List<String> getSpecialApplyAttachment(@Param("specialApplyId")Integer specialApplyId);
	
	void deleteSpecialApplyAttachment(@Param("specialApplyId")Integer specialApplyId);

	void insertSpecialApplyAttachment(@Param("specialApplyId")Integer specialApplyId, @Param("attachment")String attachment, @Param("uid") String uid);
	
	ApplyResultVO getSpecialApplyResult(AuthorDTO authorDTO);

	void specialApplySubmit(AuthorDTO authorDTO);

	void setAvatar(AvatarSetRequest request);

	void setEmail(EmailSetRequest request);

	UserInfoVO getUserInfo(AuthorDTO authorDTO);

	MajorApplyViewVO viewMajorApply(AuthorDTO authorDTO);

	void insertMajorApply(MajorApplyRequest request);

	ApplyResultVO getMajorApplyResult(AuthorDTO authorDTO);

	void majorApplySubmit(AuthorDTO authorDTO);


    AppDTO getApp(@Param("appId")String appId);

    void courseApplySubmit(AuthorDTO authorDTO);

    Boolean isOverSchedule(@Param("auth")AuthorDTO authorDTO, @Param("dictCode") String dictCode);
}
