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.
- {xync_schema-0.6.73.dev4/xync_schema.egg-info → xync_schema-0.6.73.dev7}/PKG-INFO +1 -1
- {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/tests/test_db.py +3 -3
- {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/xync_schema/enums.py +12 -0
- {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/xync_schema/models.py +109 -91
- xync_schema-0.6.73.dev4/xync_schema/pydantic.py → xync_schema-0.6.73.dev7/xync_schema/types.py +40 -50
- {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7/xync_schema.egg-info}/PKG-INFO +1 -1
- {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/xync_schema.egg-info/SOURCES.txt +1 -1
- {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/.env.sample +0 -0
- {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/.gitignore +0 -0
- {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/.pre-commit-config.yaml +0 -0
- {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/README.md +0 -0
- {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/makefile +0 -0
- {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/pyproject.toml +0 -0
- {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/setup.cfg +0 -0
- {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/tests/__init__.py +0 -0
- {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/xync_schema/__init__.py +0 -0
- {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/xync_schema.egg-info/dependency_links.txt +0 -0
- {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/xync_schema.egg-info/requires.txt +0 -0
- {xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/xync_schema.egg-info/top_level.txt +0 -0
|
@@ -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
|
|
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
|
|
29
|
-
assert isinstance(c,
|
|
28
|
+
c = await Ex.first()
|
|
29
|
+
assert isinstance(c, Ex), "No exs"
|
|
@@ -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.
|
|
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
|
|
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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
|
|
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
|
-
|
|
101
|
-
|
|
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
|
|
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
|
-
|
|
178
|
+
creds: fields.BackwardFKRelation["Cred"]
|
|
179
|
+
actors: fields.BackwardFKRelation["Actor"]
|
|
167
180
|
|
|
168
181
|
|
|
169
|
-
class User(
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
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
|
-
|
|
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
|
|
205
|
-
return
|
|
217
|
+
def name(self):
|
|
218
|
+
return f"{self.first_name} {self.last_name}".rstrip()
|
|
206
219
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
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
|
|
215
|
-
if not user.
|
|
216
|
-
user.
|
|
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
|
-
|
|
231
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
294
|
-
|
|
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
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
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 = (
|
|
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
|
-
|
|
445
|
-
|
|
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 = {"
|
|
459
|
+
_name = {"detail"}
|
|
454
460
|
|
|
455
461
|
class Meta:
|
|
456
462
|
table_description = "Currency accounts"
|
|
457
|
-
|
|
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
|
|
484
|
+
target: float = fields.FloatField(default=0)
|
|
467
485
|
|
|
468
486
|
class Meta:
|
|
469
487
|
table_description = "Currency balances"
|
xync_schema-0.6.73.dev4/xync_schema/pydantic.py → xync_schema-0.6.73.dev7/xync_schema/types.py
RENAMED
|
@@ -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,
|
|
5
|
-
from xync_schema
|
|
6
|
+
from xync_schema.enums import AdStatus, OrderStatus, PmType
|
|
7
|
+
from xync_schema import models
|
|
6
8
|
|
|
7
9
|
|
|
8
|
-
class
|
|
10
|
+
class UnitEx(BaseModel):
|
|
9
11
|
exid: int | str
|
|
10
12
|
ticker: str
|
|
11
|
-
|
|
13
|
+
scale: int
|
|
12
14
|
|
|
13
15
|
|
|
14
|
-
class
|
|
15
|
-
p2p: bool =
|
|
16
|
+
class CoinEx(UnitEx):
|
|
17
|
+
p2p: bool = None
|
|
16
18
|
minimum: float | None = None
|
|
17
19
|
|
|
18
20
|
|
|
19
|
-
class
|
|
21
|
+
class CurEx(UnitEx):
|
|
20
22
|
rounding_scale: int | None = None
|
|
21
23
|
minimum: int | None = None
|
|
22
24
|
|
|
23
25
|
|
|
24
|
-
class
|
|
26
|
+
class PmexBank(BaseModel):
|
|
25
27
|
id: int | None = None
|
|
26
28
|
exid: str
|
|
27
29
|
name: str
|
|
28
30
|
|
|
29
31
|
|
|
30
|
-
class
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
126
|
-
pms_: list[Pm]
|
|
115
|
+
class AdBuyIn(BaseAdIn):
|
|
116
|
+
pms_: list[models.Pm]
|
|
127
117
|
|
|
128
118
|
|
|
129
|
-
class
|
|
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
|
|
127
|
+
class Order(BaseModel):
|
|
138
128
|
id: int
|
|
139
129
|
amount: float
|
|
140
130
|
status: str
|
|
141
131
|
actions: dict | None = {}
|
|
142
|
-
cred: Cred.
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xync_schema-0.6.73.dev4 → xync_schema-0.6.73.dev7}/xync_schema.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|