from tortoise import Model, fields from fastapi_admin import enums class User(Model): username = fields.CharField(max_length=20, unique=True) password = fields.CharField(max_length=200) class Meta: abstract = True class Permission(Model): label = fields.CharField(max_length=50) model = fields.CharField(max_length=50) action: enums.PermissionAction = fields.IntEnumField( enums.PermissionAction, default=enums.PermissionAction.read, description="Permission Action" ) def __str__(self): return self.label class Role(Model): label = fields.CharField(max_length=50) users = fields.ManyToManyField("models.User") permissions: fields.ManyToManyRelation[Permission] = fields.ManyToManyField("models.Permission") def __str__(self): return self.label