class Insert: def __init__(self, connector, table_name: str, data: dict): self._connector = connector self._table_name = table_name self._columns = data.items() def __gen_id(self) -> int: self._connector.execute( f""" SELECT MAX(id) FROM {self._table_name} """, ) max_id = self._connector.fetchone(keys=["id"]).get("id") if max_id is None: return 1 return max_id + 1 def one(self, data: dict): _id = self.__gen_id() data["id"] = _id columns = ", ".join(data.keys()) placeholders = ", ".join([f":{key}" for key in data.keys()]) self._connector.execute( f""" INSERT INTO {self._table_name} ({columns}) VALUES ({placeholders}) """, data, ) def many(self, data: list[dict]): for item in data: self.one(item)