Files
hr-resources/models/employee.py
2021-06-24 20:59:13 +02:00

81 lines
2.2 KiB
Python

from datetime import date
from models.department import Department
class Person:
def __init__(self, first_name, last_name):
self.__first_name = first_name
self.__last_name = last_name
@property
def first_name(self) -> str:
return self.__first_name
@property
def last_name(self) -> str:
return self.__last_name
class Employee(Person):
def __init__(self, employee_id: int, first_name: str, last_name: str, email: str, phone_number: str,
hire_date: date, department: Department, job_id: int = 0, salary: float = 0, manager_id: int = 0):
super().__init__(first_name, last_name)
self.__employee_id = employee_id
self.__email = email
self.__phone_number = phone_number
self.__hire_date = hire_date
self.__department = department
self.__job_id = job_id
self.__salary = salary
self.__manager_id = manager_id
@property
def employee_id(self) -> int:
return self.__employee_id
@property
def email(self) -> str:
return self.__email
@property
def phone_number(self) -> str:
return self.__phone_number
@property
def hire_date(self) -> date:
return self.__hire_date
@property
def department(self) -> Department:
return self.__department
@property
def job_id(self) -> int:
return self.__job_id
@property
def salary(self) -> float:
return self.__salary
@property
def manager_id(self) -> int:
return self.__manager_id
def __json__(self):
return {
'employee_id': self.__employee_id,
'first_name': self.first_name,
'last_name': self.last_name,
'email': self.__email,
'hire_date': self.__hire_date,
'department': self.__department if self.__department is not None else None,
'job_id': self.__job_id,
'salary': f"{self.__salary:,.2f}",
'manager_id': self.__manager_id
}
def __str__(self):
return f"Employee({self.__employee_id}, {self.first_name}, {self.last_name}, " \
f"{self.__email}, {self.__phone_number}, {self.__hire_date})"