xync-schema 0.6.69__py3-none-any.whl → 0.6.70__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.
- xync_schema/models.py +14 -3
- xync_schema/pydantic.py +34 -10
- {xync_schema-0.6.69.dist-info → xync_schema-0.6.70.dist-info}/METADATA +1 -1
- xync_schema-0.6.70.dist-info/RECORD +8 -0
- xync_schema-0.6.69.dist-info/RECORD +0 -8
- {xync_schema-0.6.69.dist-info → xync_schema-0.6.70.dist-info}/WHEEL +0 -0
- {xync_schema-0.6.69.dist-info → xync_schema-0.6.70.dist-info}/top_level.txt +0 -0
xync_schema/models.py
CHANGED
|
@@ -26,7 +26,7 @@ from xync_schema.enums import ExType, AdStatus, AssetType, OrderStatus, ExAction
|
|
|
26
26
|
class Cur(Model):
|
|
27
27
|
id = fields.SmallIntField(True)
|
|
28
28
|
ticker: str = fields.CharField(3, unique=True)
|
|
29
|
-
rate: float | None = fields.FloatField(default=0)
|
|
29
|
+
rate: float | None = fields.FloatField(default=0, null=True)
|
|
30
30
|
# country: str | None = fields.CharField(63, null=True)
|
|
31
31
|
|
|
32
32
|
pms: fields.ManyToManyRelation["Pm"] = fields.ManyToManyField("models.Pm", through="pmcur")
|
|
@@ -84,11 +84,11 @@ class Ex(Model):
|
|
|
84
84
|
class PydanticMeta(Model.PydanticMeta):
|
|
85
85
|
include = "name", "logo"
|
|
86
86
|
|
|
87
|
-
def client(self):
|
|
87
|
+
def client(self, agent: "Agent" = None):
|
|
88
88
|
module_name = f"xync_client.{self.name}.ex"
|
|
89
89
|
__import__(module_name)
|
|
90
90
|
client = sys.modules[module_name].ExClient
|
|
91
|
-
return client(self)
|
|
91
|
+
return client(self, agent)
|
|
92
92
|
|
|
93
93
|
|
|
94
94
|
class Curex(BaseModel):
|
|
@@ -96,6 +96,7 @@ class Curex(BaseModel):
|
|
|
96
96
|
ex: fields.ForeignKeyRelation[Ex] = fields.ForeignKeyField("models.Ex")
|
|
97
97
|
exid: str = fields.CharField(31)
|
|
98
98
|
minimum: float = fields.FloatField(null=True)
|
|
99
|
+
rounding_scale: int = fields.SmallIntField(null=True)
|
|
99
100
|
# countries: fields.ManyToManyRelation[Country] = fields.ManyToManyField(
|
|
100
101
|
# "models.Country", through="curexcountry", backward_key="curexs"
|
|
101
102
|
# )
|
|
@@ -248,6 +249,16 @@ class Adpm(Model):
|
|
|
248
249
|
table_description = "P2P Advertisements - Payment methods"
|
|
249
250
|
|
|
250
251
|
|
|
252
|
+
class Adfiat(Model):
|
|
253
|
+
ad: fields.ForeignKeyRelation["Ad"] = fields.ForeignKeyField("models.Ad")
|
|
254
|
+
fiat: fields.ForeignKeyRelation["Fiat"] = fields.ForeignKeyField("models.Fiat")
|
|
255
|
+
|
|
256
|
+
_name = {"ad__id", "fiat__id"}
|
|
257
|
+
|
|
258
|
+
class Meta:
|
|
259
|
+
table_description = "P2P Advertisements - Payment details"
|
|
260
|
+
|
|
261
|
+
|
|
251
262
|
class Ad(Model, TsTrait):
|
|
252
263
|
id: int = fields.BigIntField(True)
|
|
253
264
|
direction: fields.ForeignKeyRelation[Direction] = fields.ForeignKeyField("models.Direction", related_name="ads")
|
xync_schema/pydantic.py
CHANGED
|
@@ -3,7 +3,15 @@ from datetime import datetime
|
|
|
3
3
|
from pydantic import BaseModel, model_validator
|
|
4
4
|
|
|
5
5
|
from xync_schema.enums import AdStatus, PmType
|
|
6
|
-
from xync_schema.models import Fiat, Agent, Direction,
|
|
6
|
+
from xync_schema.models import Fiat, Agent, Direction, Pmcur, User, Ex
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class CurEpyd(BaseModel):
|
|
10
|
+
exid: int | str
|
|
11
|
+
ticker: str
|
|
12
|
+
rate: float | None = None
|
|
13
|
+
minimum: int | None = None
|
|
14
|
+
rounding_scale: int | None = None
|
|
7
15
|
|
|
8
16
|
|
|
9
17
|
class PmexBankPyd(BaseModel):
|
|
@@ -65,7 +73,7 @@ class FiatPydIn(BaseModel):
|
|
|
65
73
|
def check_at_least_one_field(cls, values):
|
|
66
74
|
if (values.get("pmcur") or values.get("pmcur_id")) and (values.get("user") or values.get("user_id")):
|
|
67
75
|
return values
|
|
68
|
-
raise ValueError("
|
|
76
|
+
raise ValueError("pmcur(_id) and user(_id) is required")
|
|
69
77
|
|
|
70
78
|
def args(self) -> tuple[dict, dict]:
|
|
71
79
|
unq: tuple[str, ...] = "id", "user_id", "user", "pmcur_id", "pmcur"
|
|
@@ -74,11 +82,23 @@ class FiatPydIn(BaseModel):
|
|
|
74
82
|
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)}
|
|
75
83
|
|
|
76
84
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
85
|
+
class FiatexPydIn(BaseModel):
|
|
86
|
+
id: int | None = None
|
|
87
|
+
exid: str
|
|
88
|
+
ex: Ex | None = None
|
|
89
|
+
ex_id: int | None = None
|
|
90
|
+
fiat: Fiat | None = None
|
|
91
|
+
fiat_id: int | None = None
|
|
92
|
+
|
|
93
|
+
class Config:
|
|
94
|
+
arbitrary_types_allowed = True
|
|
95
|
+
|
|
96
|
+
@classmethod
|
|
97
|
+
@model_validator(mode="before")
|
|
98
|
+
def check_at_least_one_field(cls, values):
|
|
99
|
+
if (values.get("ex") or values.get("ex_id")) and (values.get("fiat") or values.get("fiat_id")):
|
|
100
|
+
return values
|
|
101
|
+
raise ValueError("ex(_id) and fiat(_id) is required")
|
|
82
102
|
|
|
83
103
|
|
|
84
104
|
class BaseAd(BaseModel):
|
|
@@ -96,7 +116,8 @@ class AdPydIn(BaseAd):
|
|
|
96
116
|
direction_id: int | None = None
|
|
97
117
|
agent: Agent | None = None
|
|
98
118
|
direction: Direction | None = None
|
|
99
|
-
|
|
119
|
+
pms_: list | None = None
|
|
120
|
+
fiats_: list | None = None
|
|
100
121
|
|
|
101
122
|
class Config:
|
|
102
123
|
arbitrary_types_allowed = True
|
|
@@ -104,9 +125,12 @@ class AdPydIn(BaseAd):
|
|
|
104
125
|
@classmethod
|
|
105
126
|
@model_validator(mode="before")
|
|
106
127
|
def check_at_least_one_field(cls, values):
|
|
107
|
-
|
|
128
|
+
agent = values.get("agent") or values.get("agent_id")
|
|
129
|
+
direction = values.get("direction") or values.get("direction_id")
|
|
130
|
+
pms_or_fiats = values.get("pms_") or values.get("fiats_")
|
|
131
|
+
if agent and direction and pms_or_fiats:
|
|
108
132
|
return values
|
|
109
|
-
raise ValueError("
|
|
133
|
+
raise ValueError("(pms or fiats) and agent(_id) and direction(_id) is required")
|
|
110
134
|
|
|
111
135
|
|
|
112
136
|
class OrderPyd(BaseModel):
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
xync_schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
xync_schema/enums.py,sha256=zPdnf6J--qaBoyin_qXO3z_UnfpiHGXVHKs9v3ug1Qk,12428
|
|
3
|
+
xync_schema/models.py,sha256=9nyibPT9ZPMWaiXHO3gBGipvN-P-h4sJjehOgH6ccUg,25126
|
|
4
|
+
xync_schema/pydantic.py,sha256=Xw7ARA2yV4QDako2Uw9rLw-pMjcpVTW-Sade3ARXZFQ,3936
|
|
5
|
+
xync_schema-0.6.70.dist-info/METADATA,sha256=nmh9EGERPywOssPlHY1ww6BJPHOl5pnmWtMmAVha8Dc,3985
|
|
6
|
+
xync_schema-0.6.70.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
7
|
+
xync_schema-0.6.70.dist-info/top_level.txt,sha256=jN8IBDfVY8b85Byyk8v0Gyj_0yLB8FO56WV4EvcXWY4,12
|
|
8
|
+
xync_schema-0.6.70.dist-info/RECORD,,
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
xync_schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
xync_schema/enums.py,sha256=zPdnf6J--qaBoyin_qXO3z_UnfpiHGXVHKs9v3ug1Qk,12428
|
|
3
|
-
xync_schema/models.py,sha256=_IzK9e4H6lXl8VMjyl0m-Ir7RfrCHAc2JM0RZiWJxBA,24722
|
|
4
|
-
xync_schema/pydantic.py,sha256=B2neARFVzQUkrzbkWKoNLvyUScq2TLaMAZTUgawh8ew,3142
|
|
5
|
-
xync_schema-0.6.69.dist-info/METADATA,sha256=-3CtP6GunNW70ZewZmcc5YOKDBXAI9D7NWhxtpGI8PE,3985
|
|
6
|
-
xync_schema-0.6.69.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
7
|
-
xync_schema-0.6.69.dist-info/top_level.txt,sha256=jN8IBDfVY8b85Byyk8v0Gyj_0yLB8FO56WV4EvcXWY4,12
|
|
8
|
-
xync_schema-0.6.69.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|