package core.process;

import core.operation.Search;
import error.GExcptInit;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class C_StudentSearchTeacher extends TempProcess{
    String teacherID;

    protected static String buttonName = "";
    protected static String iconURL="";
    protected static String targetURL="";
    protected static String info = "";
    static  String table = "teacher";

    Map<String,String> TeacherInfo=new HashMap<String, String>();
    public Map<String,String> search() throws Exception {
        if(!check()) throw new GExcptInit("teacherID Attrs init error!");
        Search search  = new Search() ;
        search.setOptions(new HashMap<>());
        search.addOptions("table",table);
        List<String> fields = new ArrayList<>();
        fields.add("*");
        search.addOptions("field",fields);
        Map<String,String> limits = new HashMap<>();
        limits.put("id",this.getTeacherID());
        search.addOptions("limits",limits);
        search.addOptions("start",0);
        search.addOptions("end",1);
        Map<String, Object> options = search.execute(null);
        List<String[]> result = (List<String[]>) options.get("result");
        String[] s = result.get(0);
        TeacherInfo.put("id",s[0]);
        TeacherInfo.put("name",s[2]);
        TeacherInfo.put("e_mail_location",s[3]);
        TeacherInfo.put("phone_number",s[4]);
        return TeacherInfo;
    }
    public List<Map<String,String>> _search() throws Exception{
        if(!check()) throw new GExcptInit("teacherId Attrs init error!");
        Search search  = new Search() ;
        search.setOptions(new HashMap<>());
        search.addOptions("table",table);
        List<String> fields = new ArrayList<>();
        fields.add("*");
        search.addOptions("field",fields);
        Map<String,String> limits = new HashMap<>();
        limits.put("id",this.getTeacherID());
        search.addOptions("limits",limits);
        search.addOptions("start",0);
        search.addOptions("end",10);
        Map<String, Object> options = search.execute(null);
        List<String[]> result = (List<String[]>) options.get("result");
        List<Map<String,String>> teachersInfo = new ArrayList<>();
        core.process.Utils.formatResult(result, teachersInfo);
        return teachersInfo;
    }

    protected boolean check() {
        if(this.getTeacherID()==null)
            return false;
        return true;
    }
    public String getTeacherID(){
        return teacherID;
    }
    public void setTeacherID(String teacherID){
        this.teacherID=teacherID;
    }
    @Override
    public String getInfo() {
        return info;
    }

    @Override
    public String getTargetURL() {
        return targetURL;
    }

    @Override
    public String getIconURL() {
        return iconURL;
    }

    @Override
    public String getButtonName() {
        return buttonName;
    }
}
