mirror of
https://github.com/djimboy/djimbo_template_aio3.git
synced 2026-07-25 09:44:29 +00:00
79 lines
2.2 KiB
Python
79 lines
2.2 KiB
Python
# - *- 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)
|