| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- import tortoise.fields
- from .model import model
- from .constants import constants
- class field_generator:
- @staticmethod
- def id() -> tortoise.fields.IntField:
- return tortoise.fields.IntField(primary_key = True)
- @staticmethod
- def name() -> tortoise.fields.TextField:
- return tortoise.fields.TextField(max_lenght = 30)
- @staticmethod
- def password() -> tortoise.fields.TextField:
- return tortoise.fields.TextField(max_lenght = 256)
- @staticmethod
- def surname() -> tortoise.fields.TextField:
- return tortoise.fields.TextField(max_lenght = 30)
- @staticmethod
- def nick() -> tortoise.fields.TextField:
- return tortoise.fields.TextField(max_lenght = 20)
- @staticmethod
- def description() -> tortoise.fields.TextField:
- return tortoise.fields.TextField(max_lenght = 4096)
-
- @staticmethod
- def phone_number() -> tortoise.fields.TextField:
- return tortoise.fields.TextField(max_lenght = 15)
- @staticmethod
- def barcode() -> tortoise.fields.TextField:
- return tortoise.fields.TextField(max_lenght = 13)
- @staticmethod
- def email() -> tortoise.fields.TextField:
- return tortoise.fields.TextField(max_lenght = 30)
- @staticmethod
- def apikey() -> tortoise.fields.TextField:
- return tortoise.fields.TextField(max_lenght = 280)
- @staticmethod
- def secret() -> tortoise.fields.TextField:
- return tortoise.fields.TextField(max_lenght = 256)
- @staticmethod
- def permissions() -> tortoise.fields.BooleanField:
- return tortoise.fields.BooleanField()
- @staticmethod
- def stock() -> tortoise.fields.IntField:
- return tortoise.fields.IntField
- @staticmethod
- def __connected_names(target: type, field: str | None) -> [str, str]:
- if not issubclass(target, model):
- raise TypeError("Foreign key target is not child of model.")
- name = target.__name__
- model_name = model.Meta.app + "." + name
- related_name = constants.related_name(name, field)
- return model_name, related_name
- @classmethod
- def connected_many(
- cls,
- target: type,
- field: str | None = None
- ) -> tortoise.fields.ManyToManyField:
- model, related = cls.__connected_names(target, field)
- return tortoise.fields.ManyToManyField(
- model,
- related_name = related
- )
- @classmethod
- def connected_single(
- cls,
- target: type,
- field: str | None = None
- ) -> tortoise.fields.ForeignKeyField:
- model, related = cls.__connected_names(target, field)
- return tortoise.fields.ForeignKeyField(
- model,
- related_name = related
- )
|