import { IStudent, StudentField } from '@studyportals/studentdomain';
import { Actor, InterestType } from '../enumerations';

export interface IAnonymousStudentService {
	setStudentData(studentData: IStudent, actor?: Actor): Promise<void>;

	getStudentData(studentFields: StudentField[]): Promise<IStudent>;

	getStudentDataCompleteness(studentFields: StudentField[]): Promise<number>;

	addToCollection(type: StudentField, items: any[]): Promise<void>;

	removeFromCollection(type: StudentField, items: any[]): Promise<void>;

	/**
	 * @deprecated Use addToCollection instead
	 * @param ids
	 */
	addDisciplines(ids: number[]): Promise<void>;

	/**
	 * @deprecated Use removeFromCollection instead
	 * @param ids
	 */
	removeDisciplines(ids: number[]): Promise<void>;

	/**
	 * @deprecated Use addToCollection instead
	 * @param type
	 * @param ids
	 */
	addInterest(type: InterestType, ids: number[]): Promise<void>;

	/**
	 * @deprecated Use removeFromCollection instead
	 * @param type
	 * @param ids
	 */
	removeInterest(type: InterestType, ids: number[]): Promise<void>;

	setName(name: string): Promise<void>;

	setGPA(grade_type: string, grade_value: any): Promise<void>;
}
