import time


def date_to_m_sec(time_data):
    if time_data == None or time_data == '':
        a = ''
        return a
    a = int(time.mktime(time_data.timetuple()) * 1000)
    return a

class DesignationType:
    developer = {"id": 1, "text": 'Employee'}
    team_lead = {"id": 2, "text": 'Team Lead'}
    unit_head = {"id": 3, "text": 'Unit Head'}
    admin = {"id": 4, "text": 'Admin'}

    designation_arr = [developer, team_lead, unit_head, admin]
    role_dict = {developer['id']:developer,team_lead['id']:team_lead,unit_head['id']:unit_head,admin['id']:admin}
    new_role_dict = {developer['id']:developer['text'],team_lead['id']:team_lead['text'],unit_head['id']:unit_head['text'],admin['id']:admin['text']}


class NoticePeriodUtil:
    Working={"id":1,"text":"Working"}
    Serving_Noticeperiod={"id":2,"text":"Serving Noticeperiod"}
    relieved={"id":3,"text":"Relieved"}

    arr=[Working,Serving_Noticeperiod,relieved]

    def notice_type(self,type_id):
        for i in self.arr:
            if i['id'] == int(type_id):
                return i

class Workmodeutil:
    WORK_FROM_OFFICE = 1
    WORK_FROM_HOME = 2
    OUTDOOR = 3
    HYBRID = 4
    CLIENT = 5

    WORK_FROM_OFFICE_VAL = 'work from office'
    WORK_FROM_HOME_VAL = 'work from home'
    OUTDOOR_VAL = 'Outdoor'
    HYBRID_VAL = 'Hybird'
    CLIENT_VAL = 'client location'


def workmode_type(type):
    if type == Workmodeutil.WORK_FROM_OFFICE:
        data = {"id": Workmodeutil.WORK_FROM_OFFICE, "text": Workmodeutil.WORK_FROM_OFFICE_VAL}
    elif type == Workmodeutil.WORK_FROM_HOME:
        data = {"id": Workmodeutil.WORK_FROM_HOME, "text": Workmodeutil.WORK_FROM_HOME_VAL}
    elif type == Workmodeutil.OUTDOOR:
        data = {"id": Workmodeutil.OUTDOOR, "text": Workmodeutil.OUTDOOR_VAL}
    elif type == Workmodeutil.HYBRID:
        data = {"id": Workmodeutil.HYBRID, "text": Workmodeutil.HYBRID_VAL}
    elif type == Workmodeutil.CLIENT:
        data = {"id": Workmodeutil.CLIENT, "text": Workmodeutil.CLIENT_VAL}

    else:
        data = {"id": None, "name": None}
    return data


class StatusChangeType:
    WORKING = 1
    ONBOARD = 2
    DESIGNATION_SUBMIT = 3
    SERVING_NOTICEPERIOD = 4
    RELIEVED = 5
    ON_HOLD = 6
    TRAINING = 7
    INACTIVE = 0

    WORKING_VAL = 'Working'
    ONBOARD_VAL = "Onboard"
    DESIGNATION_SUBMIT_VAL = "Designation Submit"
    SERVING_NOTICEPERIOD_VAL = "Service Noticeperiod"
    RELIEVED_VAL = "Relieved"
    ON_HOLD_VAL = "OnHold"
    TRAINING_VAL = "Training"
    INACTIVE_VAL = "Inactive"

    status_mapping = {
        WORKING: WORKING_VAL,
        ONBOARD: ONBOARD_VAL,
        DESIGNATION_SUBMIT: DESIGNATION_SUBMIT_VAL,
        SERVING_NOTICEPERIOD: SERVING_NOTICEPERIOD_VAL,
        RELIEVED: RELIEVED_VAL,
        ON_HOLD: ON_HOLD_VAL,
        TRAINING: TRAINING_VAL,
        INACTIVE: INACTIVE_VAL,
    }


def statuschangeutil(type):
    if type == StatusChangeType.WORKING:
        data = {"id": StatusChangeType.WORKING, "text": StatusChangeType.WORKING_VAL}
    elif type == StatusChangeType.ONBOARD:
        data = {"id": StatusChangeType.ONBOARD, "text": StatusChangeType.ONBOARD_VAL}
    elif type == StatusChangeType.DESIGNATION_SUBMIT:
        data = {"id": StatusChangeType.DESIGNATION_SUBMIT, "text": StatusChangeType.DESIGNATION_SUBMIT_VAL}
    elif type == StatusChangeType.SERVING_NOTICEPERIOD:
        data = {"id": StatusChangeType.SERVING_NOTICEPERIOD, "text": StatusChangeType.SERVING_NOTICEPERIOD_VAL}
    elif type == StatusChangeType.RELIEVED:
        data = {"id": StatusChangeType.RELIEVED, "text": StatusChangeType.RELIEVED_VAL}
    elif type == StatusChangeType.ON_HOLD:
        data = {"id": StatusChangeType.ON_HOLD, "text": StatusChangeType.ON_HOLD_VAL}
    elif type == StatusChangeType.TRAINING:
        data = {"id": StatusChangeType.TRAINING, "text": StatusChangeType.TRAINING_VAL}
    elif type == StatusChangeType.INACTIVE:
        data = {"id": StatusChangeType.INACTIVE, "text": StatusChangeType.INACTIVE_VAL}
    else:
        data = {"id": None, "text": None}
    return data


class Employee_Type:
    Candidate = 1
    Internship = 2
    Training = 3

    CANDIDATE_VAL = 'Candidate'
    INTERNSHIP_VAL = "Internship"
    TRAINING_VAL = "Training"

    employee_type_mapping = {
        Candidate: CANDIDATE_VAL,
        Internship: INTERNSHIP_VAL,
        Training: TRAINING_VAL,
    }


def Employee_type(type):
    if type == Employee_Type.Candidate:
        data = {"id": Employee_Type.Candidate, "name": Employee_Type.CANDIDATE_VAL}
    elif type == Employee_Type.Internship:
        data = {"id": Employee_Type.Internship, "name": Employee_Type.INTERNSHIP_VAL}
    elif type == Employee_Type.Training:
        data = {"id": Employee_Type.Training, "name": Employee_Type.TRAINING_VAL}
    else:
        data = {"id": None, "name": None}
    return data
