# - *- coding: utf- 8 - *- import sqlite3 from pydantic import BaseModel from tgbot.data.config import PATH_DATABASE from tgbot.database.adb_helper import Databasex, dict_factory, update_format from tgbot.utils.const_functions import get_unix, ded # Table model class ModelBase(BaseModel): increment: int # increment user_id: int # User id user_login: str # User username user_name: str # User name user_surname: str # User surname user_fullname: str # User fullname (name + surname) user_unix: int # Date of user registration in the bot (in UNIX time) class Config: json_schema_extra = { 'storage_name': 'storage_users' } # Users class Usersx(Databasex[ModelBase]): def __init__(self): super().__init__() self.table_model = ModelBase self.storage_name = self.table_model.model_json_schema()['storage_name'] self.column_one = False # Add entry def add( self, user_id: int, user_login: str, user_name: str, user_surname: str, user_fullname: str, ): user_unix = get_unix() with sqlite3.connect(PATH_DATABASE) as con: con.row_factory = dict_factory con.execute( ded(f""" INSERT INTO {self.storage_name} ( user_id, user_login, user_name, user_surname, user_fullname, user_unix ) VALUES (?, ?, ?, ?, ?, ?) """), [ user_id, user_login, user_name, user_surname, user_fullname, user_unix, ], ) # Edit entry def update(self, user_id: int, **kwargs): with sqlite3.connect(PATH_DATABASE) as con: con.row_factory = dict_factory sql = f"UPDATE {self.storage_name} SET" sql, parameters = update_format(sql, kwargs) parameters.append(user_id) con.execute(sql + "WHERE user_id = ?", parameters)