| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | 
							- import sqlmodel
 
- from .apikey import apikey
 
- from .password import password
 
- class user(sqlmodel.SQLModel, table = True):
 
-     """
 
-     This represents user in database. All users has own unique nick and api
 
-     key. Nick and password is used to login, api key is long, random and
 
-     used to access database via API.
 
-     """
 
-     id: int | None = sqlmodel.Field(default = None, primary_key = True)
 
-     nick: str = sqlmodel.Field(index = True, unique = True)
 
-     password: str = sqlmodel.Field(index = False)
 
-     apikey: str = sqlmodel.Field(index = True, unique = True)
 
- class user_builder:
 
-     def __init__(self) -> None:
 
-         """
 
-         Create new empty user builder.
 
-         """
 
-         self.clean()
 
-     def clean(self) -> None:
 
-         """
 
-         This clean builed. That mean, new empty user is creating.
 
-         """
 
-         self.__target = user(apikey = apikey())
 
-     @property
 
-     def ready(self) -> bool:
 
-         """
 
-         This check that user in builder is ready to get.
 
-         return: bool - True when user is ready, false if not
 
-         """
 
-         if self.__target.nick is None:
 
-             return False
 
-         if self.__target.password is None:
 
-             return False
 
-         return True
 
-     @property
 
-     def nick(self) -> str | None:
 
-         """
 
-         return: str | None - Current nick of the user in builder
 
-         """
 
-         return self.__target.nick
 
-     @property
 
-     def password(self) -> bool:
 
-         """
 
-         return: bool - True when password is set, false if not
 
-         """
 
-         return self.__target.password is not None
 
-     @nick.setter
 
-     def nick(self, target: str) -> None:
 
-         """
 
-         target: str - New nick for the user
 
-         """
 
-         self.__target.nick = target
 
-     @password.setter
 
-     def password(self, target: str) -> None:
 
-         """
 
-         target: str - New password to hash and set
 
-         """
 
-         self.__target.password = password(target).result
 
-     @property
 
-     def result(self) -> user:
 
-         """
 
-         This return user setup in the builder.
 
-         return: user - User from builder
 
-         """
 
-         if not self.ready:
 
-             raise TypeError("User in builder is not ready yet.")
 
-         return self.__target
 
 
  |