
Employees[TOKEN]
User -> Person -> Employees -> Duty -> Department -> Company
Duty -> Occupant -> Department -> Company

Occupant[TOKEN]
User -> People -> LivingSpace -> Building(n) -> BuildPart(n) -> Company

User
?Occupant @User mail = personal mail google.com.tr OR personal domains included
?Employee @User mail = evyos.com.tr OR company domains included

Evyos Free id1 + Evyos [] id2 + Evyos [] id3
0TL        + 100TL    + 1000TL

Mail Service +

Occupant Types:
    Bina Yönetici : 1 tip kullanıcı
    Daire Sakini : 2 tip kullanıcı

    Daire Sahibi : 3 tip kullanıcı
    Bina Görevlisi : 4 tip kullanıcı
    Bina Denetcisi : 5 tip kullanıcı
    Bina Muhasebecisi : 6 tip kullanıcı
    Bina Teknisyeni : 7 tip kullanıcı
    Bina Güvenlik Görevlisi : 8 tip kullanıcı
    Bina Temizlik Görevlisi : 9 tip kullanıcı
    Bina Bahçıvanı : 10 tip kullanıcı

Plan:
evyos_free 1
evyos_basic 2
evyos_premium 3
evyos_enterprise 4

Service:
    occupant_id: 1,
    plan: 1,


event_id: 1,
service_id: 1,

Company Occupant

User -> Person 

o Employee -> Duty -> Department -> Company -> Building -> Person ->
o Building -> Decision Book -> Person ->

CompanyPerson R-> User
CustomerPerson R-> User

class Person:

   + is_employee_related True Company User
   + is_living_space_related True LivingSpace User

is_employee_related:
	Cahce company details
	Cahce Menu Reach points
	Cahce Employee Endpoint Access Rules
	Cahce Responsiable Buildings and connect to WAG Services

is_living_space_related:
	Cahce BuildPart Details and connect to HAG Services
	No need to cache any company details

building_decision_book_responsaible:
	Manager:
	Supervisor:
	

##### Step by step Test Guide ##### 
----- INIT -----
1. department_name: Manager
2. department_name: IT Department

Duty
Company[Managment] (GROOT)

department_name: Manager 1
duty_name: General Manager User(1)

department_name: IT Department 2

duty_name: Application Manager User(2) + Login
duty_name: Database Manager
duty_name: Network Manager

Rule: 78 can create company / employee / duty / department / person
duty_name: Super User User(3) + Login

----- INIT -----

----- API  -----

When User(2) creates any row in database it must be confirmed by User(3)[Notification]
User(2) => Login and confirm below...
User(3) => Login and create below...

### Company ###

[GROOT]

Person X 5
Email X 5
Phone X 5 
User X 3

Sub Company X 5 [GROOT] && GROOT connect => Sub Company X 5
Sub Sub Company X 5 [Sub Company] && Each Sub Company connect => Sub SUb Company X 2

Sub Company 2 X 5 = 10 User
Sub Sub Company 2 x 25 = 50 User
60 User

10 
Person X 2
Email X 2
Phone X 2 
User X 2

1. department_name: Manager
1. duty_name: General Manager
1. employee_name: 1

2. department_name: IT Department
2. duty_name: Super User 
2. employee_name: 1

### Company ###

### Build ###

### Build ###

### Book ###

### Book ###

### Account ###

### Account ###

----- API  -----









class User(Person):
  ...

class Company:
  ...

class LivingSpaces:

  tenant_person: True
  owner_person: True
  ...

