mirror of
https://github.com/donnemartin/system-design-primer.git
synced 2025-12-14 08:58:57 +03:00
Merge 477318c1a6 into b02784ffeb
This commit is contained in:
@@ -27,7 +27,9 @@ class Employee(metaclass=ABCMeta):
|
|||||||
|
|
||||||
def complete_call(self):
|
def complete_call(self):
|
||||||
self.call.state = CallState.COMPLETE
|
self.call.state = CallState.COMPLETE
|
||||||
self.call_center.notify_call_completed(self.call)
|
call = self.call
|
||||||
|
self.call = None
|
||||||
|
self.call_center.notify_call_completed(call)
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def escalate_call(self):
|
def escalate_call(self):
|
||||||
@@ -42,28 +44,31 @@ class Employee(metaclass=ABCMeta):
|
|||||||
|
|
||||||
class Operator(Employee):
|
class Operator(Employee):
|
||||||
|
|
||||||
def __init__(self, employee_id, name):
|
def __init__(self, employee_id, name, call_center):
|
||||||
super(Operator, self).__init__(employee_id, name, Rank.OPERATOR)
|
super(Operator, self).__init__(
|
||||||
|
employee_id, name, Rank.OPERATOR, call_center)
|
||||||
|
|
||||||
def escalate_call(self):
|
def escalate_call(self):
|
||||||
self.call.level = Rank.SUPERVISOR
|
self.call.rank = Rank.SUPERVISOR
|
||||||
self._escalate_call()
|
self._escalate_call()
|
||||||
|
|
||||||
|
|
||||||
class Supervisor(Employee):
|
class Supervisor(Employee):
|
||||||
|
|
||||||
def __init__(self, employee_id, name):
|
def __init__(self, employee_id, name, call_center):
|
||||||
super(Operator, self).__init__(employee_id, name, Rank.SUPERVISOR)
|
super(Supervisor, self).__init__(
|
||||||
|
employee_id, name, Rank.SUPERVISOR, call_center)
|
||||||
|
|
||||||
def escalate_call(self):
|
def escalate_call(self):
|
||||||
self.call.level = Rank.DIRECTOR
|
self.call.rank = Rank.DIRECTOR
|
||||||
self._escalate_call()
|
self._escalate_call()
|
||||||
|
|
||||||
|
|
||||||
class Director(Employee):
|
class Director(Employee):
|
||||||
|
|
||||||
def __init__(self, employee_id, name):
|
def __init__(self, employee_id, name, call_center):
|
||||||
super(Operator, self).__init__(employee_id, name, Rank.DIRECTOR)
|
super(Director, self).__init__(
|
||||||
|
employee_id, name, Rank.DIRECTOR, call_center)
|
||||||
|
|
||||||
def escalate_call(self):
|
def escalate_call(self):
|
||||||
raise NotImplementedError('Directors must be able to handle any call')
|
raise NotImplementedError('Directors must be able to handle any call')
|
||||||
|
|||||||
Reference in New Issue
Block a user