xync-schema 0.6.73.dev4__tar.gz → 0.6.73.dev7__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.dev4/xync_schema.egg-info → xync_schema-0.6.73.dev7}/PKG-INFO +1 -1
  2. {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/tests/test_db.py +3 -3
  3. {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/xync_schema/enums.py +12 -0
  4. {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/xync_schema/models.py +109 -91
  5. xync_schema-0.6.73.dev4/xync_schema/pydantic.py → xync_schema-0.6.73.dev7/xync_schema/types.py +40 -50
  6. {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7/xync_schema.egg-info}/PKG-INFO +1 -1
  7. {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/xync_schema.egg-info/SOURCES.txt +1 -1
  8. {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/.env.sample +0 -0
  9. {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/.gitignore +0 -0
  10. {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/.pre-commit-config.yaml +0 -0
  11. {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/README.md +0 -0
  12. {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/makefile +0 -0
  13. {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/pyproject.toml +0 -0
  14. {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/setup.cfg +0 -0
  15. {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/tests/__init__.py +0 -0
  16. {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/xync_schema/__init__.py +0 -0
  17. {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/xync_schema.egg-info/dependency_links.txt +0 -0
  18. {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/xync_schema.egg-info/requires.txt +0 -0
  19. {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/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.dev4
3
+ Version: 0.6.73.dev7
4
4
  Summary: XyncNet project database model schema
5
5
  Author-email: Mike Artemiev <mixartemev@gmail.com>
6
6
  License: EULA
@@ -7,7 +7,7 @@ from tortoise.backends.asyncpg import AsyncpgDBClient
7
7
  from x_model import init_db
8
8
 
9
9
  from xync_schema import models
10
- from xync_schema.models import Cur
10
+ from xync_schema.models import Ex
11
11
 
12
12
  load_dotenv()
13
13
 
@@ -25,5 +25,5 @@ async def test_init_db(dbc):
25
25
 
26
26
 
27
27
  async def test_models(dbc):
28
- c = await Cur.all()
29
- assert isinstance(c, list), "No currencies"
28
+ c = await Ex.first()
29
+ assert isinstance(c, Ex), "No exs"
@@ -1,6 +1,18 @@
1
1
  from enum import IntEnum
2
2
 
3
3
 
4
+ class PersonStatus(IntEnum):
5
+ VIP = 2
6
+ DEFAULT = 1
7
+ BLOCKED = 0
8
+
9
+
10
+ class UserStatus(IntEnum):
11
+ SLEEP = 0
12
+ PAY = 1
13
+ ACTIVE = 2
14
+
15
+
4
16
  class AdStatus(IntEnum):
5
17
  defActive = 0
6
18
  active = 1
@@ -5,34 +5,42 @@ from tortoise import fields
5
5
  from tortoise.queryset import QuerySet
6
6
  from tortoise import Model as BaseModel
7
7
  from tortoise.signals import pre_save
8
- from x_auth.enums import Role
9
- from x_auth.models import Model
8
+ from x_auth.models import Model, UserTg
10
9
  from x_model.models import TsTrait, DatetimeSecField
11
- from tg_auth.models import UserStatus, AuthUser, UserInfoTrait
12
10
 
13
- from xync_schema.enums import ExType, AdStatus, AssetType, OrderStatus, ExAction, ExStatus
11
+ from xync_schema.enums import (
12
+ ExType,
13
+ AdStatus,
14
+ AssetType,
15
+ OrderStatus,
16
+ ExAction,
17
+ ExStatus,
18
+ PersonStatus,
19
+ UserStatus,
20
+ PmType,
21
+ )
14
22
 
15
23
 
16
- # class Country(Model):
17
- # id = fields.SmallIntField(True)
18
- # code: int | None = fields.IntField(null=True)
19
- # short: str | None = fields.CharField(3, unique=True, null=True)
20
- # name: str | None = fields.CharField(63, unique=True, null=True)
21
- # cur: fields.ForeignKeyRelation["Cur"] = fields.ForeignKeyField("models.Cur", related_name="countries")
22
- # curexs: fields.ManyToManyRelation["Curex"]
23
- # fiats: fields.BackwardFKRelation["Fiat"]
24
+ class Country(Model):
25
+ id = fields.SmallIntField(True)
26
+ code: int | None = fields.IntField(null=True)
27
+ short: str | None = fields.CharField(3, null=True)
28
+ name: str | None = fields.CharField(63, unique=True, null=True)
29
+ cur: fields.ForeignKeyRelation["Cur"] = fields.ForeignKeyField("models.Cur", related_name="countries")
30
+ curexs: fields.ManyToManyRelation["Curex"]
31
+ fiats: fields.BackwardFKRelation["Fiat"]
24
32
 
25
33
 
26
34
  class Cur(Model):
27
35
  id = fields.SmallIntField(True)
28
36
  ticker: str = fields.CharField(3, unique=True)
37
+ scale: int = fields.SmallIntField(default=0)
29
38
  rate: float | None = fields.FloatField(default=0, null=True)
30
- # country: str | None = fields.CharField(63, null=True)
31
39
 
32
40
  pms: fields.ManyToManyRelation["Pm"] = fields.ManyToManyField("models.Pm", through="pmcur")
33
41
  exs: fields.ManyToManyRelation["Ex"] = fields.ManyToManyField("models.Ex", through="curex")
34
42
  pairs: fields.ReverseRelation["Pair"]
35
- # countries: fields.ReverseRelation[Country]
43
+ countries: fields.ReverseRelation[Country]
36
44
 
37
45
  _name = {"ticker"}
38
46
 
@@ -43,6 +51,7 @@ class Cur(Model):
43
51
  class Coin(Model):
44
52
  id: int = fields.SmallIntField(True)
45
53
  ticker: str = fields.CharField(15, unique=True)
54
+ scale: int = fields.SmallIntField(default=0)
46
55
  rate: float | None = fields.FloatField(default=0)
47
56
  is_fiat: bool = fields.BooleanField(default=False)
48
57
  exs: fields.ManyToManyRelation["Ex"] = fields.ManyToManyField("models.Ex", through="coinex")
@@ -97,9 +106,9 @@ class Curex(BaseModel):
97
106
  exid: str = fields.CharField(31)
98
107
  minimum: float = fields.FloatField(null=True)
99
108
  rounding_scale: int = fields.SmallIntField(null=True)
100
- # countries: fields.ManyToManyRelation[Country] = fields.ManyToManyField(
101
- # "models.Country", through="curexcountry", backward_key="curexs"
102
- # )
109
+ countries: fields.ManyToManyRelation[Country] = fields.ManyToManyField(
110
+ "models.Country", through="curexcountry", backward_key="curexs"
111
+ )
103
112
 
104
113
  class Meta:
105
114
  table_description = "Currency in Exchange"
@@ -161,26 +170,30 @@ class Direction(Model):
161
170
  unique_together = (("pairex", "sell"),)
162
171
 
163
172
 
164
- class CredHolder(Model, TsTrait):
173
+ class Person(Model, TsTrait):
174
+ status: PersonStatus = fields.IntEnumField(PersonStatus, default=PersonStatus.DEFAULT)
175
+ name: str | None = fields.CharField(127, null=True)
176
+
165
177
  user: fields.BackwardOneToOneRelation["User"]
166
- actor: fields.BackwardOneToOneRelation["Actor"]
178
+ creds: fields.BackwardFKRelation["Cred"]
179
+ actors: fields.BackwardFKRelation["Actor"]
167
180
 
168
181
 
169
- class User(Model, UserInfoTrait, TsTrait):
170
- id: int = fields.BigIntField(True)
171
- ch: fields.OneToOneRelation[CredHolder] = fields.OneToOneField("models.CredHolder", "users")
172
- ch_id: int
173
- role: Role = fields.IntEnumField(Role, default=Role.READER)
174
- status: UserStatus = fields.IntEnumField(UserStatus, default=UserStatus.RESTRICTED)
175
- username: str | None = fields.CharField(95, unique=True, null=True)
182
+ class User(UserTg, TsTrait):
183
+ status: UserStatus = fields.IntEnumField(UserStatus, default=UserStatus.SLEEP)
184
+
185
+ person: fields.OneToOneRelation[Person] = fields.OneToOneField("models.Person", related_name="user")
186
+ person_id: int
176
187
  ref: fields.ForeignKeyNullableRelation["User"] = fields.ForeignKeyField(
177
188
  "models.User", related_name="proteges", null=True
178
189
  )
179
190
  ref_id: int | None
180
191
 
181
192
  forum: fields.BackwardOneToOneRelation["Forum"]
193
+ created_forums: fields.BackwardFKRelation["Forum"]
182
194
  proteges: fields.BackwardFKRelation["User"]
183
- agents: fields.BackwardFKRelation["Agent"]
195
+ creds: fields.BackwardFKRelation["Cred"]
196
+ actors: fields.BackwardFKRelation["Actor"]
184
197
  # fiats: fields.BackwardFKRelation["Fiat"]
185
198
  limits: fields.BackwardFKRelation["Limit"]
186
199
  # vpn: fields.BackwardOneToOneRelation["Vpn"]
@@ -201,25 +214,27 @@ class User(Model, UserInfoTrait, TsTrait):
201
214
  async def balance(self) -> float:
202
215
  return await self.free_assets() + await self.fiats_sum()
203
216
 
204
- def get_auth(self) -> AuthUser:
205
- return AuthUser.model_validate(self, from_attributes=True)
217
+ def name(self):
218
+ return f"{self.first_name} {self.last_name}".rstrip()
206
219
 
207
- # class PydanticMeta(Model.PydanticMeta):
208
- # max_recursion = 0
209
- # include = "role", "status"
210
- # computed = ["balance"]
220
+ class PydanticMeta(Model.PydanticMeta):
221
+ max_recursion = 0
222
+ include = "role", "status"
223
+ # computed = ["balance"]
211
224
 
212
225
 
213
226
  @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()
227
+ async def person(_meta, user: User, _db, _updated: dict) -> None:
228
+ if not user.person_id:
229
+ user.person = await Person.create(name=f"{user.first_name} {user.last_name}".strip())
217
230
 
218
231
 
219
232
  class Forum(Model, TsTrait):
220
233
  id: int = fields.BigIntField(True)
221
234
  joined: bool = fields.BooleanField(default=False)
222
235
  user: fields.OneToOneRelation[User] = fields.OneToOneField("models.User", "forum")
236
+ user_id: int
237
+ # created_by: fields.BackwardFKRelation[User] = fields.ForeignKeyField("models.User", "created_forums")
223
238
 
224
239
 
225
240
  class Actor(Model):
@@ -227,41 +242,29 @@ class Actor(Model):
227
242
  name: int = fields.CharField(63)
228
243
  ex: fields.ForeignKeyRelation[Ex] = fields.ForeignKeyField("models.Ex", related_name="actors")
229
244
  ex_id: int
230
- ch: fields.OneToOneNullableRelation[CredHolder] = fields.OneToOneField("models.CredHolder", "actor", null=True)
231
- ch_id: int
232
- updated_at: datetime | None = DatetimeSecField(auto_now=True)
245
+ person: fields.ForeignKeyRelation[Person] = fields.ForeignKeyField("models.Person", related_name="actors")
246
+ person_id: int
233
247
 
234
248
  agent: fields.BackwardOneToOneRelation["Agent"]
235
- creds: fields.BackwardFKRelation["Cred"]
236
- my_ads: fields.BackwardFKRelation["Ad"]
249
+ ads: fields.BackwardFKRelation["Ad"]
237
250
  taken_orders: fields.BackwardFKRelation["Order"]
238
251
 
239
252
  class Meta:
240
253
  table_description = "Actors"
241
- unique_together = (("ex", "exid"),)
254
+ unique_together = (("ex", "exid"), ("ex", "person"))
242
255
 
243
256
 
244
257
  class Agent(Model, TsTrait):
245
- auth: dict[str, str] = fields.JSONField(null=True)
258
+ auth: dict[str, str] = fields.JSONField(default={})
246
259
  actor: fields.OneToOneRelation[Actor] = fields.OneToOneField("models.Actor", "agent")
247
260
  actor_id: int
248
- user: fields.ForeignKeyRelation[User] = fields.ForeignKeyField("models.User", related_name="agents")
249
- user_id: int
261
+
250
262
  assets: fields.ReverseRelation["Asset"]
251
263
 
252
264
  _name = {"actor__name"}
253
265
 
254
- def balance(self) -> int:
255
- return sum(asset.free * (asset.coin.rate or 0) for asset in self.assets)
256
-
257
- class Meta:
258
- table_description = "Agents"
259
- unique_together = (("actor", "user"),)
260
-
261
- class PydanticMeta(Model.PydanticMeta):
262
- # max_recursion = 3
263
- include = "id", "actor__ex", "assets", "auth", "updated_at"
264
- computed = ["balance"]
266
+ # def balance(self) -> int:
267
+ # return sum(asset.free * (asset.coin.rate or 0) for asset in self.assets)
265
268
 
266
269
  def client(self):
267
270
  module_name = f"xync_client.{self.actor.ex.name}.agent"
@@ -283,15 +286,20 @@ class Agent(Model, TsTrait):
283
286
  client = sys.modules[module_name].AssetClient
284
287
  return client(self)
285
288
 
289
+ # class PydanticMeta(Model.PydanticMeta):
290
+ # max_recursion = 3
291
+ # include = "id", "actor__ex", "auth", "updated_at"
292
+ # computed = ["balance"]
286
293
 
287
- class Adpm(Model):
288
- ad: fields.ForeignKeyRelation["Ad"] = fields.ForeignKeyField("models.Ad")
289
- pm: fields.ForeignKeyRelation["Pm"] = fields.ForeignKeyField("models.Pm")
290
-
291
- _name = {"ad__id", "pm__name"}
292
294
 
293
- class Meta:
294
- table_description = "P2P Advertisements - Payment methods"
295
+ # class Adpm(Model):
296
+ # ad: fields.ForeignKeyRelation["Ad"] = fields.ForeignKeyField("models.Ad")
297
+ # pm: fields.ForeignKeyRelation["Pm"] = fields.ForeignKeyField("models.Pm")
298
+ #
299
+ # _name = {"ad__id", "pm__name"}
300
+ #
301
+ # class Meta:
302
+ # table_description = "P2P Advertisements - Payment methods"
295
303
 
296
304
 
297
305
  # class AdCred(Model):
@@ -341,11 +349,17 @@ class Ad(Model, TsTrait):
341
349
 
342
350
 
343
351
  class Pm(Model):
344
- name: str = fields.CharField(63, unique=True)
345
- identifier: str | None = fields.CharField(63, unique=True, null=True)
346
- # type_: PmType | None = fields.IntEnumField(PmType, null=True)
347
- type_: int | None = fields.SmallIntField(null=True)
348
- logo: str | None = fields.CharField(127, null=True)
352
+ # name: str = fields.CharField(63) # mv to pmex cause it diffs on each ex
353
+ norm: str | None = fields.CharField(63)
354
+ acronym: str | None = fields.CharField(7, unique=True, null=True)
355
+ country: fields.ForeignKeyRelation[Country] = fields.ForeignKeyField("models.Country", "pms", null=True)
356
+ alias: str | None = fields.CharField(63, null=True)
357
+ extra: str | None = fields.CharField(63, null=True)
358
+ ok: bool = fields.BooleanField(default=True)
359
+ bank: bool = fields.BooleanField(null=True)
360
+
361
+ type_: PmType | None = fields.IntEnumField(PmType, null=True)
362
+ logo: str | None = fields.CharField(119, null=True)
349
363
 
350
364
  ads: fields.ManyToManyRelation[Ad]
351
365
  curs: fields.ManyToManyRelation[Cur]
@@ -356,6 +370,7 @@ class Pm(Model):
356
370
 
357
371
  class Meta:
358
372
  table_description = "Payment methods"
373
+ unique_together = (("norm", "country"), ("alias", "country"))
359
374
 
360
375
  # class PydanticMeta(Model.PydanticMeta):
361
376
  # max_recursion = 3
@@ -387,17 +402,21 @@ class Pmcur(Model): # for fiat with no exs tie
387
402
 
388
403
 
389
404
  class Pmex(BaseModel): # existence pm in ex with no cur tie
390
- pm: fields.ForeignKeyRelation[Pm] = fields.ForeignKeyField("models.Pm", "pmexs")
391
- pm_id: int
392
405
  ex: fields.ForeignKeyRelation[Ex] = fields.ForeignKeyField("models.Ex", "pmexs")
393
406
  ex_id: int
407
+ pm: fields.ForeignKeyRelation[Pm] = fields.ForeignKeyField("models.Pm", "pmexs")
408
+ pm_id: int
394
409
  exid: str = fields.CharField(63)
395
410
  name: str = fields.CharField(63)
411
+ name_: str = fields.CharField(63, null=True)
396
412
 
397
413
  banks: fields.BackwardFKRelation["PmexBank"]
398
414
 
399
415
  class Meta:
400
- unique_together = (("ex_id", "exid"),)
416
+ unique_together = (
417
+ ("ex", "exid"),
418
+ ("ex", "name_"),
419
+ ) # , ("ex", "pm"), ("ex", "name") # todo: tmp removed for HTX duplicates
401
420
 
402
421
 
403
422
  class PmexBank(BaseModel): # banks for SBP
@@ -412,16 +431,6 @@ class PmexBank(BaseModel): # banks for SBP
412
431
  unique_together = (("pmex", "exid"),)
413
432
 
414
433
 
415
- # class CredBank(BaseModel): # banks for SBP
416
- # pmexbank: fields.ForeignKeyRelation[PmexBank] = fields.ForeignKeyField("models.PmexBank", "credbanks")
417
- # pmexbank_id: int
418
- # cred: fields.ForeignKeyRelation["Cred"] = fields.ForeignKeyField("models.Cred", "credbanks")
419
- # cred_id: int
420
- #
421
- # class Meta:
422
- # unique_together = (("cred_id", "pmexbank_id"),)
423
-
424
-
425
434
  # class Pmcurex(BaseModel): # existence pm in ex for exact cur, with "blocked" flag
426
435
  # pmcur: fields.ForeignKeyRelation[Pmcur] = fields.ForeignKeyField("models.Pmcur")
427
436
  # pmcur_id: int
@@ -434,15 +443,12 @@ class PmexBank(BaseModel): # banks for SBP
434
443
 
435
444
 
436
445
  class Cred(Model):
437
- exid: int = fields.BigIntField()
438
446
  pmcur: fields.ForeignKeyRelation[Pmcur] = fields.ForeignKeyField("models.Pmcur")
439
447
  pmcur_id: int
440
- # country: fields.ForeignKeyRelation[Country] = fields.ForeignKeyField("models.Country", related_name="fiats")
441
- # country_id: int
442
448
  detail: str = fields.CharField(127)
443
449
  name: str | None = fields.CharField(127, null=True)
444
- ch: fields.ForeignKeyRelation[CredHolder] = fields.ForeignKeyField("models.CredHolder", "creds")
445
- ch_id: int
450
+ person: fields.ForeignKeyRelation[Person] = fields.ForeignKeyField("models.Person", "creds")
451
+ person_id: int
446
452
 
447
453
  banks: fields.ManyToManyRelation[PmexBank] = fields.ManyToManyField("models.PmexBank", related_name="creds")
448
454
 
@@ -450,20 +456,32 @@ class Cred(Model):
450
456
  ads: fields.ManyToManyRelation[Ad]
451
457
  orders: fields.BackwardFKRelation["Order"]
452
458
 
453
- _name = {"exid"}
459
+ _name = {"detail"}
454
460
 
455
461
  class Meta:
456
462
  table_description = "Currency accounts"
457
- # unique_together = (("actor", "exid"), ("actor_id", "pmcur_id", "detail"))
463
+ unique_together = (("person", "pmcur", "detail"),)
464
+
465
+
466
+ class CredEx(Model):
467
+ exid: int = fields.BigIntField()
468
+ cred: fields.ForeignKeyRelation[Cred] = fields.ForeignKeyField("models.Cred", "credexs")
469
+ cred_id: int
470
+ ex: fields.ForeignKeyRelation[Ex] = fields.ForeignKeyField("models.Ex", "credexs")
471
+ ex_id: int
472
+
473
+ _name = {"exid"}
474
+
475
+ class Meta:
476
+ table_description = "Credential on Exchange"
477
+ unique_together = (("ex", "exid"),)
458
478
 
459
479
 
460
480
  class Fiat(Model):
461
481
  cred: fields.OneToOneRelation[Cred] = fields.OneToOneField("models.Cred", "fiat")
462
482
  cred_id: int
463
- # user: fields.ForeignKeyRelation[User] = fields.ForeignKeyField("models.User", "fiats")
464
- # user_id: int # cred.actor.agent.user_id
465
483
  amount: float | None = fields.FloatField(default=0)
466
- target: float | None = fields.FloatField(default=None, null=True)
484
+ target: float = fields.FloatField(default=0)
467
485
 
468
486
  class Meta:
469
487
  table_description = "Currency balances"
@@ -1,70 +1,60 @@
1
1
  from datetime import datetime
2
+
2
3
  from pydantic import BaseModel
4
+ from x_model.types import New, Upd
3
5
 
4
- from xync_schema.enums import AdStatus, PmType, OrderStatus
5
- from xync_schema.models import Direction, Pmcur, Cred, Actor, Pm, Ad
6
+ from xync_schema.enums import AdStatus, OrderStatus, PmType
7
+ from xync_schema import models
6
8
 
7
9
 
8
- class _CurCoin(BaseModel):
10
+ class UnitEx(BaseModel):
9
11
  exid: int | str
10
12
  ticker: str
11
- rate: float | None = None
13
+ scale: int
12
14
 
13
15
 
14
- class CoinEpyd(_CurCoin):
15
- p2p: bool = True
16
+ class CoinEx(UnitEx):
17
+ p2p: bool = None
16
18
  minimum: float | None = None
17
19
 
18
20
 
19
- class CurEpyd(_CurCoin):
21
+ class CurEx(UnitEx):
20
22
  rounding_scale: int | None = None
21
23
  minimum: int | None = None
22
24
 
23
25
 
24
- class PmexBankPyd(BaseModel):
26
+ class PmexBank(BaseModel):
25
27
  id: int | None = None
26
28
  exid: str
27
29
  name: str
28
30
 
29
31
 
30
- class PmPyd(BaseModel):
31
- id: int | None = None
32
- name: str
33
- identifier: str | None = None
32
+ class PmIn(New):
33
+ norm: str
34
+ acronym: str | None = None
35
+ alias: str | None = None
36
+ extra: str | None = None
37
+ bank: bool | None = None
38
+ country_id: int | None = None
34
39
  type_: PmType | None = None
35
40
  logo: str | None = None
36
- banks: list[PmexBankPyd] | None = None
37
41
 
38
42
 
39
- # class PmcurPyd(BaseModel):
43
+ class PmOut(PmIn, Upd):
44
+ banks: list[PmexBank] | None = None
45
+
46
+
47
+ # class Pmcur(BaseModel):
40
48
  # id: int | None = None
41
49
  # pm_id: int
42
50
  # cur_id: int
43
51
 
44
52
 
45
- class FFiat(BaseModel):
46
- detail: str
47
- name: str | None = None
48
- amount: float = 0
49
- target: int | None = None
50
- banks: list[str] = []
51
-
52
-
53
- class FiatNew(FFiat):
54
- cur_id: int
55
- pm_id: int
56
-
57
-
58
- class FiatUpd(FFiat):
59
- id: int
60
- exid: int
61
-
62
-
63
- class CredPydIn(BaseModel):
53
+ class CredIn(BaseModel):
64
54
  id: int | None = None
65
55
  exid: int
66
- pmcur: Pmcur
67
- actor: Actor
56
+ pmcur: models.Pmcur
57
+ actor: models.Actor
68
58
  detail: str = ""
69
59
  name: str = ""
70
60
  banks: list[str] | None = None
@@ -79,10 +69,10 @@ class CredPydIn(BaseModel):
79
69
  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)}
80
70
 
81
71
 
82
- class FiatPydIn(BaseModel):
72
+ class FiatIn(BaseModel):
83
73
  # unq
84
74
  id: int = None
85
- cred: Cred
75
+ cred: models.Cred
86
76
  # df
87
77
  amount: float
88
78
  target: float | None = None
@@ -102,15 +92,15 @@ class BaseAd(BaseModel):
102
92
  price: float
103
93
 
104
94
 
105
- class BaseAdPydIn(BaseAd):
95
+ class BaseAdIn(BaseAd):
106
96
  exid: int
107
97
  min_fiat: float
108
98
  max_fiat: float | None = None
109
99
  detail: str | None = None
110
100
  auto_msg: str | None = None
111
101
  status: AdStatus = AdStatus.active
112
- maker: Actor = None
113
- direction: Direction
102
+ maker: models.Actor = None
103
+ direction: models.Direction
114
104
 
115
105
  class Config:
116
106
  arbitrary_types_allowed = True
@@ -122,24 +112,24 @@ class BaseAdPydIn(BaseAd):
122
112
  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)}
123
113
 
124
114
 
125
- class AdBuyPydIn(BaseAdPydIn):
126
- pms_: list[Pm]
115
+ class AdBuyIn(BaseAdIn):
116
+ pms_: list[models.Pm]
127
117
 
128
118
 
129
- class AdSalePydIn(BaseAdPydIn):
130
- creds_: list[Cred]
119
+ class AdSaleIn(BaseAdIn):
120
+ creds_: list[models.Cred]
131
121
 
132
122
 
133
123
  class BaseOrder(BaseModel):
134
124
  id: int | None = None
135
125
 
136
126
 
137
- class OrderPyd(BaseModel):
127
+ class Order(BaseModel):
138
128
  id: int
139
129
  amount: float
140
130
  status: str
141
131
  actions: dict | None = {}
142
- cred: Cred.pyd()
132
+ cred: models.Cred.out_type()
143
133
  is_sell: bool
144
134
  actor: int | None = None
145
135
  created_at: datetime
@@ -150,7 +140,7 @@ class OrderPyd(BaseModel):
150
140
  topic: int
151
141
 
152
142
 
153
- class OrderPydIn(BaseModel):
143
+ class OrderIn(BaseModel):
154
144
  id: int = None
155
145
  exid: int
156
146
  amount: float
@@ -161,9 +151,9 @@ class OrderPydIn(BaseModel):
161
151
  payed_at: datetime | None = None
162
152
  confirmed_at: datetime | None = None
163
153
  appealed_at: datetime | None = None
164
- ad: Ad
165
- cred: Cred
166
- taker: Actor
154
+ ad: models.Ad
155
+ cred: models.Cred
156
+ taker: models.Actor
167
157
 
168
158
  class Config:
169
159
  arbitrary_types_allowed = True
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: xync-schema
3
- Version: 0.6.73.dev4
3
+ Version: 0.6.73.dev7
4
4
  Summary: XyncNet project database model schema
5
5
  Author-email: Mike Artemiev <mixartemev@gmail.com>
6
6
  License: EULA
@@ -9,7 +9,7 @@ tests/test_db.py
9
9
  xync_schema/__init__.py
10
10
  xync_schema/enums.py
11
11
  xync_schema/models.py
12
- xync_schema/pydantic.py
12
+ xync_schema/types.py
13
13
  xync_schema.egg-info/PKG-INFO
14
14
  xync_schema.egg-info/SOURCES.txt
15
15
  xync_schema.egg-info/dependency_links.txt