class EmployeeSalary(db.Document): _id = db.StringField(required=True) employeeSalary = db.FloatField(required=True) apprasialsOverTheYears = db.ListField(db.EmbeddedDocumentField(ApprasialsandAllowance), default=None) allowancesOverTheYears = db.ListField(db.EmbeddedDocumentField(ApprasialsandAllowance), default=None) employeePF = db.IntField(required=True) employeeAllowances = db.FloatField(required=True)
class EmployeeAttendance(db.Document): _id = db.StringField(required=True) employeeAttendance = db.ListField( db.EmbeddedDocumentField(AttendanceBluePrint)) meta = { "indexes": [ "employeeAttendance.year", "employeeAttendance.month", "employeeAttendance.week.weekNo" ] }
class AttendanceBluePrint(db.EmbeddedDocument): year = db.StringField(required=True, default=getYears()) month = db.StringField(required=True, default=getMonths()) week = db.ListField(db.EmbeddedDocumentField(WeeklyUpdate), required=True)
class WeeklyUpdate(db.EmbeddedDocument): weekNo = db.StringField(required=True, default=getWeeks()) weeklyAttendance = db.ListField(db.EmbeddedDocumentField(DaysOfTheWeek), required=True) meta = {"indexes": ["weekNo"]}
class EmployeeTeamDetails(db.Document): _id = db.StringField(required=True) teamsWorked = db.ListField(db.EmbeddedDocumentField(EmployeePastTeams), default=None) projectsWorked = db.ListField() departmentHead = db.BooleanField(default=False)