maleo-identity 0.0.75__py3-none-any.whl → 0.0.77__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of maleo-identity might be problematic. Click here for more details.

Files changed (226) hide show
  1. maleo/identity/client/manager.py +157 -0
  2. maleo/identity/client/services/organization.py +1944 -0
  3. maleo/identity/client/services/organization_registration_code.py +470 -0
  4. maleo/identity/client/services/organization_role.py +276 -0
  5. maleo/identity/client/services/user.py +1559 -0
  6. maleo/identity/client/services/user_organization.py +276 -0
  7. maleo/identity/client/services/user_organization_role.py +278 -0
  8. maleo/identity/client/services/user_profile.py +276 -0
  9. maleo/identity/client/services/user_system_role.py +276 -0
  10. maleo/identity/constants/organization.py +18 -0
  11. maleo/identity/constants/organization_registration_code.py +25 -0
  12. maleo/identity/constants/organization_role.py +35 -0
  13. maleo/identity/constants/user.py +24 -0
  14. maleo/identity/constants/user_organization.py +58 -0
  15. maleo/identity/constants/user_organization_role.py +47 -0
  16. maleo/identity/constants/user_profile.py +26 -0
  17. maleo/identity/constants/user_system_role.py +16 -0
  18. maleo/identity/db.py +4 -0
  19. maleo/identity/dtos/organization_registration_code.py +12 -0
  20. maleo/identity/enums/__init__.py +0 -0
  21. maleo/identity/enums/general.py +5 -0
  22. maleo/identity/enums/organization.py +12 -0
  23. maleo/identity/enums/organization_registration_code.py +8 -0
  24. maleo/identity/enums/organization_role.py +7 -0
  25. maleo/identity/enums/user.py +17 -0
  26. maleo/identity/enums/user_organization.py +14 -0
  27. maleo/identity/enums/user_organization_role.py +15 -0
  28. maleo/identity/enums/user_profile.py +17 -0
  29. maleo/identity/enums/user_system_role.py +5 -0
  30. maleo/identity/mixins/__init__.py +0 -0
  31. maleo/identity/mixins/organization.py +15 -0
  32. maleo/identity/mixins/organization_registration_code.py +14 -0
  33. maleo/identity/mixins/organization_role.py +15 -0
  34. maleo/identity/mixins/user.py +47 -0
  35. maleo/identity/mixins/user_organization.py +6 -0
  36. maleo/identity/mixins/user_organization_role.py +6 -0
  37. maleo/identity/mixins/user_profile.py +81 -0
  38. maleo/identity/mixins/user_system_role.py +6 -0
  39. maleo/identity/models/__init__.py +0 -0
  40. {maleo_identity/models/tables → maleo/identity/models}/organization.py +21 -17
  41. {maleo_identity/models/tables → maleo/identity/models}/organization_registration_code.py +11 -15
  42. {maleo_identity/models/tables → maleo/identity/models}/organization_role.py +11 -17
  43. {maleo_identity/models/tables → maleo/identity/models}/user.py +13 -17
  44. {maleo_identity/models/tables → maleo/identity/models}/user_organization.py +15 -25
  45. {maleo_identity/models/tables → maleo/identity/models}/user_organization_role.py +16 -24
  46. {maleo_identity/models/tables → maleo/identity/models}/user_profile.py +16 -14
  47. maleo/identity/models/user_system_role.py +26 -0
  48. maleo/identity/schemas/__init__.py +0 -0
  49. maleo/identity/schemas/data/__init__.py +0 -0
  50. maleo/identity/schemas/data/organization.py +36 -0
  51. maleo/identity/schemas/data/organization_registration_code.py +33 -0
  52. maleo/identity/schemas/data/organization_role.py +32 -0
  53. maleo/identity/schemas/data/user.py +33 -0
  54. maleo/identity/schemas/data/user_organization.py +23 -0
  55. maleo/identity/schemas/data/user_organization_role.py +13 -0
  56. maleo/identity/schemas/data/user_profile.py +59 -0
  57. maleo/identity/schemas/data/user_system_role.py +25 -0
  58. maleo/identity/schemas/metadata/__init__.py +0 -0
  59. maleo/identity/schemas/metadata/user.py +6 -0
  60. maleo/identity/schemas/parameter/__init__.py +0 -0
  61. maleo/identity/schemas/parameter/client/__init__.py +0 -0
  62. maleo/identity/schemas/parameter/client/organization.py +74 -0
  63. maleo/identity/schemas/parameter/client/organization_registration_code.py +24 -0
  64. maleo/identity/schemas/parameter/client/organization_role.py +42 -0
  65. maleo/identity/schemas/parameter/client/user.py +44 -0
  66. maleo/identity/schemas/parameter/client/user_organization.py +62 -0
  67. maleo/identity/schemas/parameter/client/user_organization_role.py +49 -0
  68. maleo/identity/schemas/parameter/client/user_profile.py +28 -0
  69. maleo/identity/schemas/parameter/client/user_system_role.py +43 -0
  70. maleo/identity/schemas/parameter/general/__init__.py +0 -0
  71. maleo/identity/schemas/parameter/general/organization.py +43 -0
  72. maleo/identity/schemas/parameter/general/organization_registration_code.py +30 -0
  73. maleo/identity/schemas/parameter/general/organization_role.py +14 -0
  74. maleo/identity/schemas/parameter/general/user.py +101 -0
  75. maleo/identity/schemas/parameter/general/user_organization.py +18 -0
  76. maleo/identity/schemas/parameter/general/user_organization_role.py +15 -0
  77. maleo/identity/schemas/parameter/general/user_profile.py +82 -0
  78. maleo/identity/schemas/parameter/general/user_system_role.py +30 -0
  79. maleo/identity/schemas/parameter/service/__init__.py +0 -0
  80. maleo/identity/schemas/parameter/service/organization.py +60 -0
  81. maleo/identity/schemas/parameter/service/organization_registration_code.py +24 -0
  82. maleo/identity/schemas/parameter/service/organization_role.py +35 -0
  83. maleo/identity/schemas/parameter/service/user.py +47 -0
  84. maleo/identity/schemas/parameter/service/user_organization_role.py +36 -0
  85. maleo/identity/schemas/parameter/service/user_profile.py +28 -0
  86. maleo/identity/schemas/parameter/service/user_system_role.py +31 -0
  87. {maleo_identity → maleo/identity}/types/__init__.py +2 -2
  88. maleo/identity/types/base/__init__.py +0 -0
  89. maleo/identity/types/base/organization.py +5 -0
  90. maleo/identity/types/base/organization_registration_code.py +4 -0
  91. maleo/identity/types/base/user.py +5 -0
  92. maleo/identity/types/base/user_profile.py +4 -0
  93. {maleo_identity-0.0.75.dist-info → maleo_identity-0.0.77.dist-info}/METADATA +3 -3
  94. maleo_identity-0.0.77.dist-info/RECORD +101 -0
  95. maleo_identity-0.0.77.dist-info/top_level.txt +1 -0
  96. maleo_identity/client/controllers/__init__.py +0 -17
  97. maleo_identity/client/controllers/http/organization.py +0 -647
  98. maleo_identity/client/controllers/http/user.py +0 -541
  99. maleo_identity/client/manager.py +0 -77
  100. maleo_identity/client/services/__init__.py +0 -11
  101. maleo_identity/client/services/organization.py +0 -968
  102. maleo_identity/client/services/user.py +0 -817
  103. maleo_identity/constants/__init__.py +0 -17
  104. maleo_identity/constants/organization.py +0 -13
  105. maleo_identity/constants/organization_registration_code.py +0 -14
  106. maleo_identity/constants/organization_role.py +0 -22
  107. maleo_identity/constants/user.py +0 -27
  108. maleo_identity/constants/user_organization.py +0 -46
  109. maleo_identity/constants/user_organization_role.py +0 -35
  110. maleo_identity/constants/user_profile.py +0 -20
  111. maleo_identity/constants/user_system_role.py +0 -9
  112. maleo_identity/db.py +0 -6
  113. maleo_identity/enums/__init__.py +0 -19
  114. maleo_identity/enums/general.py +0 -5
  115. maleo_identity/enums/organization.py +0 -11
  116. maleo_identity/enums/organization_registration_code.py +0 -8
  117. maleo_identity/enums/organization_role.py +0 -7
  118. maleo_identity/enums/user.py +0 -16
  119. maleo_identity/enums/user_organization.py +0 -14
  120. maleo_identity/enums/user_organization_role.py +0 -15
  121. maleo_identity/enums/user_profile.py +0 -15
  122. maleo_identity/enums/user_system_role.py +0 -5
  123. maleo_identity/models/__init__.py +0 -11
  124. maleo_identity/models/responses/__init__.py +0 -17
  125. maleo_identity/models/responses/organization.py +0 -58
  126. maleo_identity/models/responses/organization_registration_code.py +0 -46
  127. maleo_identity/models/responses/organization_role.py +0 -25
  128. maleo_identity/models/responses/user.py +0 -68
  129. maleo_identity/models/responses/user_organization.py +0 -25
  130. maleo_identity/models/responses/user_organization_role.py +0 -25
  131. maleo_identity/models/responses/user_profile.py +0 -46
  132. maleo_identity/models/responses/user_system_role.py +0 -25
  133. maleo_identity/models/schemas/__init__.py +0 -19
  134. maleo_identity/models/schemas/general.py +0 -18
  135. maleo_identity/models/schemas/organization.py +0 -25
  136. maleo_identity/models/schemas/organization_registration_code.py +0 -21
  137. maleo_identity/models/schemas/organization_role.py +0 -15
  138. maleo_identity/models/schemas/user.py +0 -44
  139. maleo_identity/models/schemas/user_organization.py +0 -8
  140. maleo_identity/models/schemas/user_organization_role.py +0 -15
  141. maleo_identity/models/schemas/user_profile.py +0 -57
  142. maleo_identity/models/schemas/user_system_role.py +0 -8
  143. maleo_identity/models/tables/__init__.py +0 -19
  144. maleo_identity/models/tables/user_system_role.py +0 -24
  145. maleo_identity/models/transfers/__init__.py +0 -9
  146. maleo_identity/models/transfers/general/__init__.py +0 -17
  147. maleo_identity/models/transfers/general/organization.py +0 -31
  148. maleo_identity/models/transfers/general/organization_registration_code.py +0 -19
  149. maleo_identity/models/transfers/general/organization_role.py +0 -20
  150. maleo_identity/models/transfers/general/user.py +0 -28
  151. maleo_identity/models/transfers/general/user_organization.py +0 -18
  152. maleo_identity/models/transfers/general/user_organization_role.py +0 -19
  153. maleo_identity/models/transfers/general/user_profile.py +0 -32
  154. maleo_identity/models/transfers/general/user_system_role.py +0 -17
  155. maleo_identity/models/transfers/parameters/__init__.py +0 -9
  156. maleo_identity/models/transfers/parameters/client/__init__.py +0 -17
  157. maleo_identity/models/transfers/parameters/client/organization.py +0 -77
  158. maleo_identity/models/transfers/parameters/client/organization_registration_code.py +0 -24
  159. maleo_identity/models/transfers/parameters/client/organization_role.py +0 -33
  160. maleo_identity/models/transfers/parameters/client/user.py +0 -34
  161. maleo_identity/models/transfers/parameters/client/user_organization.py +0 -45
  162. maleo_identity/models/transfers/parameters/client/user_organization_role.py +0 -36
  163. maleo_identity/models/transfers/parameters/client/user_profile.py +0 -23
  164. maleo_identity/models/transfers/parameters/client/user_system_role.py +0 -33
  165. maleo_identity/models/transfers/parameters/general/__init__.py +0 -17
  166. maleo_identity/models/transfers/parameters/general/organization.py +0 -35
  167. maleo_identity/models/transfers/parameters/general/organization_registration_code.py +0 -33
  168. maleo_identity/models/transfers/parameters/general/organization_role.py +0 -17
  169. maleo_identity/models/transfers/parameters/general/user.py +0 -77
  170. maleo_identity/models/transfers/parameters/general/user_organization.py +0 -31
  171. maleo_identity/models/transfers/parameters/general/user_organization_role.py +0 -18
  172. maleo_identity/models/transfers/parameters/general/user_profile.py +0 -55
  173. maleo_identity/models/transfers/parameters/general/user_system_role.py +0 -29
  174. maleo_identity/models/transfers/parameters/service/__init__.py +0 -17
  175. maleo_identity/models/transfers/parameters/service/organization.py +0 -66
  176. maleo_identity/models/transfers/parameters/service/organization_registration_code.py +0 -19
  177. maleo_identity/models/transfers/parameters/service/organization_role.py +0 -26
  178. maleo_identity/models/transfers/parameters/service/user.py +0 -34
  179. maleo_identity/models/transfers/parameters/service/user_organization.py +0 -31
  180. maleo_identity/models/transfers/parameters/service/user_organization_role.py +0 -28
  181. maleo_identity/models/transfers/parameters/service/user_profile.py +0 -23
  182. maleo_identity/models/transfers/parameters/service/user_system_role.py +0 -26
  183. maleo_identity/models/transfers/results/__init__.py +0 -5
  184. maleo_identity/models/transfers/results/client/__init__.py +0 -17
  185. maleo_identity/models/transfers/results/client/organization.py +0 -21
  186. maleo_identity/models/transfers/results/client/organization_registration_code.py +0 -15
  187. maleo_identity/models/transfers/results/client/organization_role.py +0 -15
  188. maleo_identity/models/transfers/results/client/user.py +0 -24
  189. maleo_identity/models/transfers/results/client/user_organization.py +0 -15
  190. maleo_identity/models/transfers/results/client/user_organization_role.py +0 -15
  191. maleo_identity/models/transfers/results/client/user_profile.py +0 -15
  192. maleo_identity/models/transfers/results/client/user_system_role.py +0 -15
  193. maleo_identity/models/transfers/results/service/organization.py +0 -21
  194. maleo_identity/models/transfers/results/service/organization_registration_code.py +0 -15
  195. maleo_identity/models/transfers/results/service/organization_role.py +0 -15
  196. maleo_identity/models/transfers/results/service/user.py +0 -24
  197. maleo_identity/models/transfers/results/service/user_organization.py +0 -15
  198. maleo_identity/models/transfers/results/service/user_organization_role.py +0 -15
  199. maleo_identity/models/transfers/results/service/user_profile.py +0 -15
  200. maleo_identity/models/transfers/results/service/user_system_role.py +0 -15
  201. maleo_identity/types/results/__init__.py +0 -5
  202. maleo_identity/types/results/client/__init__.py +0 -17
  203. maleo_identity/types/results/client/organization.py +0 -30
  204. maleo_identity/types/results/client/organization_registration_code.py +0 -20
  205. maleo_identity/types/results/client/organization_role.py +0 -14
  206. maleo_identity/types/results/client/user.py +0 -29
  207. maleo_identity/types/results/client/user_organization.py +0 -19
  208. maleo_identity/types/results/client/user_organization_role.py +0 -14
  209. maleo_identity/types/results/client/user_profile.py +0 -19
  210. maleo_identity/types/results/client/user_system_role.py +0 -19
  211. maleo_identity/types/results/service/organization.py +0 -32
  212. maleo_identity/types/results/service/organization_registration_code.py +0 -21
  213. maleo_identity/types/results/service/organization_role.py +0 -15
  214. maleo_identity/types/results/service/user.py +0 -30
  215. maleo_identity/types/results/service/user_organization.py +0 -20
  216. maleo_identity/types/results/service/user_organization_role.py +0 -15
  217. maleo_identity/types/results/service/user_profile.py +0 -20
  218. maleo_identity/types/results/service/user_system_role.py +0 -20
  219. maleo_identity-0.0.75.dist-info/RECORD +0 -140
  220. maleo_identity-0.0.75.dist-info/top_level.txt +0 -1
  221. {maleo_identity → maleo/identity}/__init__.py +0 -0
  222. {maleo_identity → maleo/identity}/client/__init__.py +0 -0
  223. {maleo_identity/client/controllers/http → maleo/identity/client/services}/__init__.py +0 -0
  224. {maleo_identity/models/transfers/results/service → maleo/identity/constants}/__init__.py +0 -0
  225. {maleo_identity/types/results/service → maleo/identity/dtos}/__init__.py +0 -0
  226. {maleo_identity-0.0.75.dist-info → maleo_identity-0.0.77.dist-info}/WHEEL +0 -0
@@ -1,43 +1,39 @@
1
1
  from sqlalchemy import Column
2
2
  from sqlalchemy.orm import relationship
3
3
  from sqlalchemy.types import String, Enum
4
- from maleo_metadata.enums.user_type import MaleoMetadataUserTypeEnums
5
- from maleo_identity.db import MaleoIdentityMetadataManager
6
- from maleo_foundation.models.table import DataTable
4
+ from maleo.soma.models.table import DataTable
5
+ from maleo.metadata.enums.user_type import UserType
6
+ from maleo.identity.db import MaleoIdentityBase
7
+
7
8
 
8
9
  class UsersMixin:
9
10
  user_type = Column(
10
11
  name="user_type",
11
- type_=Enum(MaleoMetadataUserTypeEnums.UserType, name="user_type"),
12
- default=MaleoMetadataUserTypeEnums.UserType.REGULAR,
13
- nullable=False
12
+ type_=Enum(UserType, name="user_type"),
13
+ default=UserType.REGULAR,
14
+ nullable=False,
14
15
  )
15
16
  username = Column(name="username", type_=String(50), unique=True, nullable=False)
16
17
  email = Column(name="email", type_=String(255), unique=True, nullable=False)
17
18
  phone = Column(name="phone", type_=String(15), nullable=False)
18
19
  password = Column(name="password", type_=String(255), nullable=False)
19
20
 
20
- class UsersTable(
21
- UsersMixin,
22
- DataTable,
23
- MaleoIdentityMetadataManager.Base
24
- ):
21
+
22
+ class UsersTable(UsersMixin, DataTable, MaleoIdentityBase):
25
23
  __tablename__ = "users"
26
24
 
27
25
  profile = relationship(
28
26
  "UserProfilesTable",
29
27
  back_populates="user",
30
28
  uselist=False,
31
- cascade="all, delete-orphan"
29
+ cascade="all, delete-orphan",
32
30
  )
33
31
  system_roles = relationship(
34
- "UserSystemRolesTable",
35
- back_populates="user",
36
- cascade="all, delete-orphan"
32
+ "UserSystemRolesTable", back_populates="user", cascade="all, delete-orphan"
37
33
  )
38
34
  user_organization = relationship(
39
35
  "UserOrganizationsTable",
40
36
  back_populates="user",
41
37
  cascade="all, delete-orphan",
42
- uselist=False
43
- )
38
+ uselist=False,
39
+ )
@@ -1,37 +1,27 @@
1
1
  from sqlalchemy import Column, ForeignKey
2
2
  from sqlalchemy.orm import relationship
3
3
  from sqlalchemy.types import Integer
4
- from maleo_identity.db import MaleoIdentityMetadataManager
5
- from maleo_foundation.models.table import DataTable
4
+ from maleo.identity.db import MaleoIdentityBase
5
+ from maleo.soma.models.table import DataTable
6
+
6
7
 
7
8
  class UserOrganizationsMixin:
8
- #* Foreign Key UsersTable
9
+ # Foreign Key UsersTable
9
10
  user_id = Column(
10
11
  Integer,
11
- ForeignKey(
12
- "users.id",
13
- ondelete="CASCADE",
14
- onupdate="CASCADE"
15
- ),
16
- nullable=False
12
+ ForeignKey("users.id", ondelete="CASCADE", onupdate="CASCADE"),
13
+ nullable=False,
17
14
  )
18
15
 
19
- #* Foreign Key OrganizationsTable
16
+ # Foreign Key OrganizationsTable
20
17
  organization_id = Column(
21
18
  Integer,
22
- ForeignKey(
23
- "organizations.id",
24
- ondelete="CASCADE",
25
- onupdate="CASCADE"
26
- ),
27
- nullable=False
19
+ ForeignKey("organizations.id", ondelete="CASCADE", onupdate="CASCADE"),
20
+ nullable=False,
28
21
  )
29
22
 
30
- class UserOrganizationsTable(
31
- UserOrganizationsMixin,
32
- DataTable,
33
- MaleoIdentityMetadataManager.Base
34
- ):
23
+
24
+ class UserOrganizationsTable(UserOrganizationsMixin, DataTable, MaleoIdentityBase):
35
25
  __tablename__ = "user_organizations"
36
26
 
37
27
  user = relationship(
@@ -39,7 +29,7 @@ class UserOrganizationsTable(
39
29
  back_populates="user_organization",
40
30
  cascade="all",
41
31
  lazy="select",
42
- uselist=False
32
+ uselist=False,
43
33
  )
44
34
 
45
35
  organization = relationship(
@@ -47,12 +37,12 @@ class UserOrganizationsTable(
47
37
  back_populates="user_organization",
48
38
  cascade="all",
49
39
  lazy="select",
50
- uselist=False
40
+ uselist=False,
51
41
  )
52
42
 
53
43
  user_organization_roles = relationship(
54
44
  "UserOrganizationRolesTable",
55
45
  back_populates="user_organization",
56
46
  cascade="all, delete-orphan",
57
- lazy="select"
58
- )
47
+ lazy="select",
48
+ )
@@ -1,36 +1,28 @@
1
1
  from sqlalchemy import Column, ForeignKey
2
2
  from sqlalchemy.orm import relationship
3
3
  from sqlalchemy.types import Integer
4
- from maleo_identity.db import MaleoIdentityMetadataManager
5
- from maleo_foundation.models.table import DataTable
4
+ from maleo.soma.models.table import DataTable
5
+ from maleo.identity.db import MaleoIdentityBase
6
+
6
7
 
7
8
  class UserOrganizationRolesMixin:
8
- #* Foreign Key UserOrganizationsTable
9
+ # Foreign Key UserOrganizationsTable
9
10
  user_organization_id = Column(
10
11
  Integer,
11
- ForeignKey(
12
- "user_organizations.id",
13
- ondelete="CASCADE",
14
- onupdate="CASCADE"
15
- ),
16
- nullable=False
12
+ ForeignKey("user_organizations.id", ondelete="CASCADE", onupdate="CASCADE"),
13
+ nullable=False,
17
14
  )
18
15
 
19
- #* Foreign Key OrganizationRolesTable
16
+ # Foreign Key OrganizationRolesTable
20
17
  organization_role_id = Column(
21
18
  Integer,
22
- ForeignKey(
23
- "organization_roles.id",
24
- ondelete="CASCADE",
25
- onupdate="CASCADE"
26
- ),
27
- nullable=False
19
+ ForeignKey("organization_roles.id", ondelete="CASCADE", onupdate="CASCADE"),
20
+ nullable=False,
28
21
  )
29
22
 
23
+
30
24
  class UserOrganizationRolesTable(
31
- UserOrganizationRolesMixin,
32
- DataTable,
33
- MaleoIdentityMetadataManager.Base
25
+ UserOrganizationRolesMixin, DataTable, MaleoIdentityBase
34
26
  ):
35
27
  __tablename__ = "user_organization_roles"
36
28
 
@@ -39,7 +31,7 @@ class UserOrganizationRolesTable(
39
31
  back_populates="user_organization_roles",
40
32
  cascade="all",
41
33
  lazy="select",
42
- uselist=False
34
+ uselist=False,
43
35
  )
44
36
 
45
37
  user = relationship(
@@ -48,7 +40,7 @@ class UserOrganizationRolesTable(
48
40
  primaryjoin="UserOrganizationRolesTable.user_organization_id == UserOrganizationsTable.id",
49
41
  secondaryjoin="UserOrganizationsTable.user_id == UsersTable.id",
50
42
  uselist=False,
51
- viewonly=True
43
+ viewonly=True,
52
44
  )
53
45
 
54
46
  organization = relationship(
@@ -57,7 +49,7 @@ class UserOrganizationRolesTable(
57
49
  primaryjoin="UserOrganizationRolesTable.user_organization_id == UserOrganizationsTable.id",
58
50
  secondaryjoin="UserOrganizationsTable.organization_id == OrganizationsTable.id",
59
51
  uselist=False,
60
- viewonly=True
52
+ viewonly=True,
61
53
  )
62
54
 
63
55
  organization_role = relationship(
@@ -65,5 +57,5 @@ class UserOrganizationRolesTable(
65
57
  back_populates="user_organization_roles",
66
58
  cascade="all",
67
59
  lazy="select",
68
- uselist=False
69
- )
60
+ uselist=False,
61
+ )
@@ -1,14 +1,19 @@
1
1
  from sqlalchemy import Column, ForeignKey
2
2
  from sqlalchemy.orm import relationship
3
3
  from sqlalchemy.types import String, Enum, Integer, Date, Text
4
- from maleo_metadata.enums.blood_type import MaleoMetadataBloodTypeEnums
5
- from maleo_metadata.enums.gender import MaleoMetadataGenderEnums
6
- from maleo_identity.db import MaleoIdentityMetadataManager
7
- from maleo_foundation.models.table import DataTable
4
+ from maleo.soma.models.table import DataTable
5
+ from maleo.metadata.enums.blood_type import BloodType
6
+ from maleo.metadata.enums.gender import Gender
7
+ from maleo.identity.db import MaleoIdentityBase
8
+
8
9
 
9
10
  class UserProfilesMixin:
10
- #* Foreign Key and Relationship to UsersTable
11
- user_id = Column(Integer, ForeignKey("users.id", ondelete="CASCADE", onupdate="CASCADE"), nullable=False)
11
+ # Foreign Key and Relationship to UsersTable
12
+ user_id = Column(
13
+ Integer,
14
+ ForeignKey("users.id", ondelete="CASCADE", onupdate="CASCADE"),
15
+ nullable=False,
16
+ )
12
17
  id_card = Column(name="id_card", type_=String(16))
13
18
  leading_title = Column(name="leading_title", type_=String(25))
14
19
  first_name = Column(name="first_name", type_=String(50), nullable=False)
@@ -18,14 +23,11 @@ class UserProfilesMixin:
18
23
  full_name = Column(name="full_name", type_=String(200), nullable=False)
19
24
  birth_place = Column(name="birth_place", type_=String(50))
20
25
  birth_date = Column(name="birth_date", type_=Date)
21
- gender = Column(name="gender", type_=Enum(MaleoMetadataGenderEnums.Gender, name="gender"))
22
- blood_type = Column(name="blood_type", type_=Enum(MaleoMetadataBloodTypeEnums.BloodType, name="blood_type"))
26
+ gender = Column(name="gender", type_=Enum(Gender, name="gender"))
27
+ blood_type = Column(name="blood_type", type_=Enum(BloodType, name="blood_type"))
23
28
  avatar_name = Column(name="avatar_name", type_=Text, nullable=False)
24
29
 
25
- class UserProfilesTable(
26
- UserProfilesMixin,
27
- DataTable,
28
- MaleoIdentityMetadataManager.Base
29
- ):
30
+
31
+ class UserProfilesTable(UserProfilesMixin, DataTable, MaleoIdentityBase):
30
32
  __tablename__ = "user_profiles"
31
- user = relationship("UsersTable", back_populates="profile")
33
+ user = relationship("UsersTable", back_populates="profile")
@@ -0,0 +1,26 @@
1
+ from sqlalchemy import Column, ForeignKey
2
+ from sqlalchemy.orm import relationship
3
+ from sqlalchemy.types import Enum, Integer
4
+ from maleo.soma.models.table import DataTable
5
+ from maleo.metadata.enums.system_role import SystemRole
6
+ from maleo.identity.db import MaleoIdentityBase
7
+
8
+
9
+ class UserSystemRolesMixin:
10
+ user_id = Column(
11
+ Integer,
12
+ ForeignKey("users.id", ondelete="CASCADE", onupdate="CASCADE"),
13
+ nullable=False,
14
+ )
15
+ system_role = Column(
16
+ name="system_role",
17
+ type_=Enum(SystemRole, name="system_role"),
18
+ default=SystemRole.USER,
19
+ nullable=False,
20
+ )
21
+
22
+
23
+ class UserSystemRolesTable(UserSystemRolesMixin, DataTable, MaleoIdentityBase):
24
+ __tablename__ = "user_system_roles"
25
+ # Foreign Key and Relationship to UsersTable
26
+ user = relationship("UsersTable", back_populates="system_roles")
File without changes
File without changes
@@ -0,0 +1,36 @@
1
+ from pydantic import BaseModel, Field
2
+ from typing import Optional
3
+ from maleo.soma.mixins.data import DataIdentifier, DataTimestamp, DataStatus
4
+ from maleo.soma.mixins.general import OptionalParentId
5
+ from maleo.metadata.schemas.data.organization_type import (
6
+ SimpleOrganizationTypeMixin,
7
+ OptionalExpandedOrganizationTypeMixin,
8
+ )
9
+ from maleo.identity.mixins.organization import Key, Name
10
+ from .organization_registration_code import (
11
+ OptionalOrganizationRegistrationCodeDataMixin,
12
+ )
13
+
14
+
15
+ class OrganizationDataSchema(
16
+ OptionalOrganizationRegistrationCodeDataMixin,
17
+ Name,
18
+ Key,
19
+ OptionalParentId,
20
+ OptionalExpandedOrganizationTypeMixin,
21
+ SimpleOrganizationTypeMixin,
22
+ DataStatus,
23
+ DataTimestamp,
24
+ DataIdentifier,
25
+ ):
26
+ pass
27
+
28
+
29
+ class OrganizationDataMixin(BaseModel):
30
+ organization: OrganizationDataSchema = Field(..., description="Organization.")
31
+
32
+
33
+ class OptionalOrganizationDataMixin(BaseModel):
34
+ organization: Optional[OrganizationDataSchema] = Field(
35
+ None, description="Organization. (Optional)"
36
+ )
@@ -0,0 +1,33 @@
1
+ from pydantic import BaseModel, Field
2
+ from typing import Optional
3
+ from maleo.soma.mixins.data import DataIdentifier, DataTimestamp, DataStatus
4
+ from maleo.soma.mixins.general import OrganizationId
5
+ from maleo.identity.mixins.organization_registration_code import (
6
+ Code,
7
+ MaxUses,
8
+ CurrentUses,
9
+ )
10
+
11
+
12
+ class OrganizationRegistrationCodeDataSchema(
13
+ CurrentUses,
14
+ MaxUses,
15
+ Code,
16
+ OrganizationId,
17
+ DataStatus,
18
+ DataTimestamp,
19
+ DataIdentifier,
20
+ ):
21
+ pass
22
+
23
+
24
+ class OrganizationRegistrationCodeDataMixin(BaseModel):
25
+ registration_code: OrganizationRegistrationCodeDataSchema = Field(
26
+ ..., description="Organization's Registration Code."
27
+ )
28
+
29
+
30
+ class OptionalOrganizationRegistrationCodeDataMixin(BaseModel):
31
+ registration_code: Optional[OrganizationRegistrationCodeDataSchema] = Field(
32
+ None, description="Organization's Registration Code. (Optional)"
33
+ )
@@ -0,0 +1,32 @@
1
+ from pydantic import BaseModel, Field
2
+ from typing import Optional
3
+ from maleo.soma.mixins.data import DataIdentifier, DataTimestamp, DataStatus
4
+ from maleo.soma.mixins.general import IsDefault, Order, OrganizationId
5
+ from maleo.identity.mixins.organization_role import Key, Name
6
+ from .organization import OptionalOrganizationDataMixin
7
+
8
+
9
+ class OrganizationRoleDataSchema(
10
+ Name,
11
+ Key,
12
+ Order,
13
+ IsDefault,
14
+ OptionalOrganizationDataMixin,
15
+ OrganizationId,
16
+ DataStatus,
17
+ DataTimestamp,
18
+ DataIdentifier,
19
+ ):
20
+ pass
21
+
22
+
23
+ class OrganizationRoleDataMixin(BaseModel):
24
+ organization_role: OrganizationRoleDataSchema = Field(
25
+ ..., description="Organization role."
26
+ )
27
+
28
+
29
+ class OptionalOrganizationRoleDataMixin(BaseModel):
30
+ organization_role: Optional[OrganizationRoleDataSchema] = Field(
31
+ None, description="Organization role. (Optional)"
32
+ )
@@ -0,0 +1,33 @@
1
+ from pydantic import BaseModel, Field
2
+ from typing import Optional
3
+ from maleo.soma.mixins.data import DataIdentifier, DataTimestamp, DataStatus
4
+ from maleo.metadata.schemas.data.user_type import (
5
+ SimpleUserTypeMixin,
6
+ OptionalExpandedUserTypeMixin,
7
+ )
8
+ from maleo.identity.mixins.user import Username, Email, Phone
9
+ from .user_profile import OptionalUserProfileDataMixin
10
+ from .user_system_role import ListOfUserSystemRolesDataMixin
11
+
12
+
13
+ class UserDataSchema(
14
+ OptionalUserProfileDataMixin,
15
+ ListOfUserSystemRolesDataMixin,
16
+ Phone,
17
+ Email,
18
+ Username,
19
+ OptionalExpandedUserTypeMixin,
20
+ SimpleUserTypeMixin,
21
+ DataStatus,
22
+ DataTimestamp,
23
+ DataIdentifier,
24
+ ):
25
+ pass
26
+
27
+
28
+ class UserDataMixin(BaseModel):
29
+ user: UserDataSchema = Field(..., description="User.")
30
+
31
+
32
+ class OptionalUserDataMixin(BaseModel):
33
+ user: Optional[UserDataSchema] = Field(None, description="User. (Optional)")
@@ -0,0 +1,23 @@
1
+ from pydantic import BaseModel, Field
2
+ from maleo.soma.mixins.data import DataIdentifier, DataTimestamp, DataStatus
3
+ from maleo.soma.mixins.general import UserId, OrganizationId
4
+ from .organization import OrganizationDataMixin
5
+ from .user import UserDataMixin
6
+
7
+
8
+ class UserOrganizationDataSchema(
9
+ OrganizationDataMixin,
10
+ OrganizationId,
11
+ UserDataMixin,
12
+ UserId,
13
+ DataStatus,
14
+ DataTimestamp,
15
+ DataIdentifier,
16
+ ):
17
+ pass
18
+
19
+
20
+ class UserOrganizationDataMixin(BaseModel):
21
+ user_organization: UserOrganizationDataSchema = Field(
22
+ ..., description="User organization"
23
+ )
@@ -0,0 +1,13 @@
1
+ from maleo.soma.mixins.data import DataIdentifier, DataTimestamp, DataStatus
2
+ from maleo.identity.schemas.data.organization_role import OrganizationRoleDataMixin
3
+ from maleo.identity.schemas.data.user_organization import UserOrganizationDataMixin
4
+
5
+
6
+ class UserOrganizationRoleDataSchema(
7
+ OrganizationRoleDataMixin,
8
+ UserOrganizationDataMixin,
9
+ DataStatus,
10
+ DataTimestamp,
11
+ DataIdentifier,
12
+ ):
13
+ pass
@@ -0,0 +1,59 @@
1
+ from pydantic import BaseModel, Field
2
+ from typing import Optional
3
+ from maleo.soma.mixins.data import DataIdentifier, DataTimestamp, DataStatus
4
+ from maleo.soma.mixins.general import UserId
5
+ from maleo.metadata.schemas.data.blood_type import (
6
+ OptionalSimpleBloodTypeMixin,
7
+ OptionalExpandedBloodTypeMixin,
8
+ )
9
+ from maleo.metadata.schemas.data.gender import (
10
+ OptionalSimpleGenderMixin,
11
+ OptionalExpandedGenderMixin,
12
+ )
13
+ from maleo.identity.mixins.user_profile import (
14
+ IdCard,
15
+ LeadingTitle,
16
+ FirstName,
17
+ MiddleName,
18
+ LastName,
19
+ EndingTitle,
20
+ FullName,
21
+ BirthPlace,
22
+ BirthDate,
23
+ AvatarName,
24
+ OptionalAvatarUrl,
25
+ )
26
+
27
+
28
+ class UserProfileDataSchema(
29
+ OptionalAvatarUrl,
30
+ AvatarName,
31
+ OptionalExpandedBloodTypeMixin,
32
+ OptionalSimpleBloodTypeMixin,
33
+ OptionalExpandedGenderMixin,
34
+ OptionalSimpleGenderMixin,
35
+ BirthDate,
36
+ BirthPlace,
37
+ FullName,
38
+ EndingTitle,
39
+ LastName,
40
+ MiddleName,
41
+ FirstName,
42
+ LeadingTitle,
43
+ IdCard,
44
+ UserId,
45
+ DataStatus,
46
+ DataTimestamp,
47
+ DataIdentifier,
48
+ ):
49
+ pass
50
+
51
+
52
+ class UserProfileDataMixin(BaseModel):
53
+ profile: UserProfileDataSchema = Field(..., description="Profile.")
54
+
55
+
56
+ class OptionalUserProfileDataMixin(BaseModel):
57
+ profile: Optional[UserProfileDataSchema] = Field(
58
+ None, description="Profile. (Optional)"
59
+ )
@@ -0,0 +1,25 @@
1
+ from pydantic import BaseModel, Field
2
+ from typing import List
3
+ from maleo.soma.mixins.data import DataIdentifier, DataTimestamp, DataStatus
4
+ from maleo.soma.mixins.general import UserId
5
+ from maleo.metadata.schemas.data.system_role import (
6
+ SimpleSystemRoleMixin,
7
+ OptionalExpandedSystemRoleMixin,
8
+ )
9
+
10
+
11
+ class UserSystemRoleDataSchema(
12
+ OptionalExpandedSystemRoleMixin,
13
+ SimpleSystemRoleMixin,
14
+ UserId,
15
+ DataStatus,
16
+ DataTimestamp,
17
+ DataIdentifier,
18
+ ):
19
+ pass
20
+
21
+
22
+ class ListOfUserSystemRolesDataMixin(BaseModel):
23
+ system_roles: List[UserSystemRoleDataSchema] = Field(
24
+ [], description="User system roles"
25
+ )
File without changes
@@ -0,0 +1,6 @@
1
+ from pydantic import BaseModel, Field
2
+ from maleo.soma.types.base import OptionalString
3
+
4
+
5
+ class RegisterMetadata(BaseModel):
6
+ organization_key: OptionalString = Field(..., description="Organization's key")
File without changes
File without changes
@@ -0,0 +1,74 @@
1
+ from maleo.soma.mixins.general import IsRoot, IsParent, IsChild, IsLeaf, OrganizationId
2
+ from maleo.soma.mixins.parameter import (
3
+ OptionalListOfIds,
4
+ OptionalListOfKeys,
5
+ OptionalListOfParentIds,
6
+ OptionalListOfUuids,
7
+ )
8
+ from maleo.soma.schemas.parameter.client import (
9
+ ReadPaginatedMultipleParameterSchema,
10
+ ReadPaginatedMultipleQueryParameterSchema,
11
+ )
12
+ from maleo.metadata.schemas.data.organization_type import (
13
+ OptionalListOfSimpleOrganizationTypesMixin,
14
+ )
15
+ from maleo.identity.mixins.organization import Expand
16
+
17
+
18
+ class ReadMultipleParameter(
19
+ Expand,
20
+ ReadPaginatedMultipleParameterSchema,
21
+ OptionalListOfKeys,
22
+ IsLeaf,
23
+ IsChild,
24
+ IsParent,
25
+ IsRoot,
26
+ OptionalListOfParentIds,
27
+ OptionalListOfSimpleOrganizationTypesMixin,
28
+ OptionalListOfUuids,
29
+ OptionalListOfIds,
30
+ ):
31
+ pass
32
+
33
+
34
+ class ReadMultipleChildrenParameter(
35
+ Expand,
36
+ ReadPaginatedMultipleParameterSchema,
37
+ OptionalListOfKeys,
38
+ IsLeaf,
39
+ IsParent,
40
+ OrganizationId,
41
+ OptionalListOfSimpleOrganizationTypesMixin,
42
+ OptionalListOfUuids,
43
+ OptionalListOfIds,
44
+ ):
45
+ pass
46
+
47
+
48
+ class ReadMultipleQueryParameter(
49
+ Expand,
50
+ ReadPaginatedMultipleQueryParameterSchema,
51
+ OptionalListOfKeys,
52
+ IsLeaf,
53
+ IsChild,
54
+ IsParent,
55
+ IsRoot,
56
+ OptionalListOfParentIds,
57
+ OptionalListOfSimpleOrganizationTypesMixin,
58
+ OptionalListOfUuids,
59
+ OptionalListOfIds,
60
+ ):
61
+ pass
62
+
63
+
64
+ class ReadMultipleChildrenQueryParameter(
65
+ Expand,
66
+ ReadPaginatedMultipleQueryParameterSchema,
67
+ OptionalListOfKeys,
68
+ IsLeaf,
69
+ IsParent,
70
+ OptionalListOfSimpleOrganizationTypesMixin,
71
+ OptionalListOfUuids,
72
+ OptionalListOfIds,
73
+ ):
74
+ pass
@@ -0,0 +1,24 @@
1
+ from maleo.soma.mixins.general import OrganizationId
2
+ from maleo.soma.mixins.parameter import OptionalListOfOrganizationIds
3
+ from maleo.soma.schemas.parameter.client import (
4
+ ReadPaginatedMultipleParameterSchema,
5
+ ReadPaginatedMultipleQueryParameterSchema,
6
+ )
7
+
8
+
9
+ class ReadMultipleFromOrganizationParameter(
10
+ ReadPaginatedMultipleParameterSchema, OrganizationId
11
+ ):
12
+ pass
13
+
14
+
15
+ class ReadMultipleParameter(
16
+ ReadPaginatedMultipleParameterSchema, OptionalListOfOrganizationIds
17
+ ):
18
+ pass
19
+
20
+
21
+ class ReadMultipleQueryParameter(
22
+ ReadPaginatedMultipleQueryParameterSchema, OptionalListOfOrganizationIds
23
+ ):
24
+ pass