| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | import tortoise.fieldsfrom .model import modelfrom .constants import constantsclass 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        )
 |