syntax = "proto3";

option go_package = "proto/";

enum Gender {
    MALE = 0;
    FEMALE = 1;
}

enum Quarter {
    Q1 = 0;
    Q2 = 1;
    Q3 = 2;
    Q4 = 3;
}

enum Half {
    FIRST_HALF = 0;
    SECOND_HALF = 1;
}

enum Month {
    JANUARY = 0;
    FEBRUARY = 1;
    MARCH = 2;
    APRIL = 3;
    MAY = 4;
    JUNE = 5;
    JULY = 6;
    AUGUST = 7;
    SEPTEMBER = 8;
    OCTOBER = 9;
    NOVEMBER = 10;
    DECEMBER = 11;
}

enum MonthShort {
    JAN = 0;
    FEB = 1;
    MAR = 2;
    APR = 3;
    MAY_SHORT = 4;
    JUN = 5;
    JUL = 6;
    AUG = 7;
    SEP = 8;
    OCT = 9;
    NOV = 10;
    DEC = 11;
}

enum WeekDay {
    SUNDAY = 0;
    MONDAY = 1;
    TUESDAY = 2;
    WEDNESDAY = 3;
    THURSDAY = 4;
    FRIDAY = 5;
    SATURDAY = 6;
}

enum WeekDayShort {
    SUN = 0;
    MON = 1;
    TUE = 2;
    WED = 3;
    THU = 4;
    FRI = 5;
    SAT = 6;
}

message Employee {
    uint32 emp_id = 1;
    string name_prefix = 2;
    string first_name = 3;
    string middle_initial = 4;
    string last_name = 5;
    Gender gender = 6;
    string email = 7;
    string fathers_name = 8;
    string mothers_name = 9;
    string mothers_maiden_name = 10;
    string birthdate = 11;
    string birth_time = 12;
    uint32 weight_kg = 13;
    string joining_date = 14;
    Quarter joining_quarter = 15;
    Half joining_half = 16;
    uint32 joining_year = 17;
    uint32 joining_month = 18;
    Month joining_month_name = 19;
    MonthShort joining_month_name_short = 20;
    uint32 joining_month_day = 21;
    WeekDay joining_week_day = 22;
    WeekDayShort joining_week_day_short = 23;
    float years_of_service = 24;
    uint32 salary = 25;
    string latest_hike_percentage = 26;
    string ssn = 27;
    string phone_number = 28;
    string place_name = 29;
    string county = 30;
    string city = 31;
    string state = 32;
    uint32 zip = 33;
    string region = 34;
    string username = 35;
    string password = 36;
}

message EmployeeList {
    repeated Employee employees = 1;
}
