xync-schema 0.6.73.dev3__tar.gz → 0.6.73.dev4__tar.gz

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.
Files changed (19) hide show
  1. {xync_schema-0.6.73.dev3/xync_schema.egg-info → xync_schema-0.6.73.dev4}/PKG-INFO +1 -1
  2. {xync_schema-0.6.73.dev3 → xync_schema-0.6.73.dev4}/xync_schema/models.py +16 -2
  3. {xync_schema-0.6.73.dev3 → xync_schema-0.6.73.dev4}/xync_schema/pydantic.py +1 -1
  4. {xync_schema-0.6.73.dev3 → xync_schema-0.6.73.dev4/xync_schema.egg-info}/PKG-INFO +1 -1
  5. {xync_schema-0.6.73.dev3 → xync_schema-0.6.73.dev4}/.env.sample +0 -0
  6. {xync_schema-0.6.73.dev3 → xync_schema-0.6.73.dev4}/.gitignore +0 -0
  7. {xync_schema-0.6.73.dev3 → xync_schema-0.6.73.dev4}/.pre-commit-config.yaml +0 -0
  8. {xync_schema-0.6.73.dev3 → xync_schema-0.6.73.dev4}/README.md +0 -0
  9. {xync_schema-0.6.73.dev3 → xync_schema-0.6.73.dev4}/makefile +0 -0
  10. {xync_schema-0.6.73.dev3 → xync_schema-0.6.73.dev4}/pyproject.toml +0 -0
  11. {xync_schema-0.6.73.dev3 → xync_schema-0.6.73.dev4}/setup.cfg +0 -0
  12. {xync_schema-0.6.73.dev3 → xync_schema-0.6.73.dev4}/tests/__init__.py +0 -0
  13. {xync_schema-0.6.73.dev3 → xync_schema-0.6.73.dev4}/tests/test_db.py +0 -0
  14. {xync_schema-0.6.73.dev3 → xync_schema-0.6.73.dev4}/xync_schema/__init__.py +0 -0
  15. {xync_schema-0.6.73.dev3 → xync_schema-0.6.73.dev4}/xync_schema/enums.py +0 -0
  16. {xync_schema-0.6.73.dev3 → xync_schema-0.6.73.dev4}/xync_schema.egg-info/SOURCES.txt +0 -0
  17. {xync_schema-0.6.73.dev3 → xync_schema-0.6.73.dev4}/xync_schema.egg-info/dependency_links.txt +0 -0
  18. {xync_schema-0.6.73.dev3 → xync_schema-0.6.73.dev4}/xync_schema.egg-info/requires.txt +0 -0
  19. {xync_schema-0.6.73.dev3 → xync_schema-0.6.73.dev4}/xync_schema.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: xync-schema
3
- Version: 0.6.73.dev3
3
+ Version: 0.6.73.dev4
4
4
  Summary: XyncNet project database model schema
5
5
  Author-email: Mike Artemiev <mixartemev@gmail.com>
6
6
  License: EULA
@@ -1,8 +1,10 @@
1
1
  import sys
2
2
  from datetime import datetime
3
+
3
4
  from tortoise import fields
4
5
  from tortoise.queryset import QuerySet
5
6
  from tortoise import Model as BaseModel
7
+ from tortoise.signals import pre_save
6
8
  from x_auth.enums import Role
7
9
  from x_auth.models import Model
8
10
  from x_model.models import TsTrait, DatetimeSecField
@@ -164,11 +166,10 @@ class CredHolder(Model, TsTrait):
164
166
  actor: fields.BackwardOneToOneRelation["Actor"]
165
167
 
166
168
 
167
- class User(Model, UserInfoTrait):
169
+ class User(Model, UserInfoTrait, TsTrait):
168
170
  id: int = fields.BigIntField(True)
169
171
  ch: fields.OneToOneRelation[CredHolder] = fields.OneToOneField("models.CredHolder", "users")
170
172
  ch_id: int
171
- forum: int = fields.BigIntField()
172
173
  role: Role = fields.IntEnumField(Role, default=Role.READER)
173
174
  status: UserStatus = fields.IntEnumField(UserStatus, default=UserStatus.RESTRICTED)
174
175
  username: str | None = fields.CharField(95, unique=True, null=True)
@@ -177,6 +178,7 @@ class User(Model, UserInfoTrait):
177
178
  )
178
179
  ref_id: int | None
179
180
 
181
+ forum: fields.BackwardOneToOneRelation["Forum"]
180
182
  proteges: fields.BackwardFKRelation["User"]
181
183
  agents: fields.BackwardFKRelation["Agent"]
182
184
  # fiats: fields.BackwardFKRelation["Fiat"]
@@ -208,6 +210,18 @@ class User(Model, UserInfoTrait):
208
210
  # computed = ["balance"]
209
211
 
210
212
 
213
+ @pre_save(User)
214
+ async def ch(_meta, user: User, _db, _updated: dict) -> None:
215
+ if not user.ch_id:
216
+ user.ch = await CredHolder.create()
217
+
218
+
219
+ class Forum(Model, TsTrait):
220
+ id: int = fields.BigIntField(True)
221
+ joined: bool = fields.BooleanField(default=False)
222
+ user: fields.OneToOneRelation[User] = fields.OneToOneField("models.User", "forum")
223
+
224
+
211
225
  class Actor(Model):
212
226
  exid: int = fields.BigIntField()
213
227
  name: int = fields.CharField(63)
@@ -73,7 +73,7 @@ class CredPydIn(BaseModel):
73
73
  arbitrary_types_allowed = True
74
74
 
75
75
  def args(self) -> tuple[dict, dict]:
76
- unq: tuple[str, ...] = "id", "exid", "actor", "pmcur"
76
+ unq: tuple[str, ...] = "id", "exid", "ch", "pmcur"
77
77
  df: tuple[str, ...] = "detail", "name"
78
78
  d = self.model_dump()
79
79
  return {k: getattr(self, k) for k in df if d.get(k)}, {k: getattr(self, k) for k in unq if d.get(k)}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: xync-schema
3
- Version: 0.6.73.dev3
3
+ Version: 0.6.73.dev4
4
4
  Summary: XyncNet project database model schema
5
5
  Author-email: Mike Artemiev <mixartemev@gmail.com>
6
6
  License: EULA