Добавлены новые модели для интеграционных токенов в bff_models.py и sql_models.py. Реализованы функции для создания, обновления и удаления токенов в main.py, а также обновлено заполнение базы данных в fill_db.py для генерации токенов. Обновлены запросы к базе данных для учета новых полей и логики работы с токенами.

This commit is contained in:
Redsandyg
2025-06-09 15:27:50 +03:00
parent 57188186c0
commit 076cdd1828
4 changed files with 180 additions and 19 deletions

View File

@@ -1,7 +1,8 @@
from typing import Optional
from typing import Optional, List
from datetime import datetime
import uuid
from sqlmodel import SQLModel, Field
from sqlmodel import SQLModel, Field, Relationship
from sqlalchemy import Column, String
class Company(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
@@ -12,6 +13,8 @@ class Company(SQLModel, table=True):
update_dttm: datetime = Field(default_factory=datetime.utcnow)
auto_approve_transactions: bool = Field(default=False)
integration_tokens: List["IntegrationToken"] = Relationship(back_populates="company")
class TgAgent(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
tg_id: int = Field(index=True, unique=True)
@@ -91,4 +94,17 @@ class Account(SQLModel, table=True):
email: Optional[str] = None
company_id: int = Field(foreign_key="company.id")
create_dttm: datetime = Field(default_factory=datetime.utcnow)
update_dttm: datetime = Field(default_factory=datetime.utcnow)
update_dttm: datetime = Field(default_factory=datetime.utcnow)
# Новая модель для интеграционных токенов
class IntegrationToken(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
description: str
token_hash: str = Field(sa_column=Column(String, unique=True, index=True))
masked_token: str = Field(sa_column=Column(String))
company_id: int = Field(foreign_key="company.id")
create_dttm: datetime = Field(default_factory=datetime.utcnow, nullable=False)
update_dttm: datetime = Field(default_factory=datetime.utcnow, nullable=False)
use_dttm: Optional[datetime] = None
company: Company = Relationship(back_populates="integration_tokens")