Добавлены новые модели для интеграционных токенов в bff_models.py и sql_models.py. Реализованы функции для создания, обновления и удаления токенов в main.py, а также обновлено заполнение базы данных в fill_db.py для генерации токенов. Обновлены запросы к базе данных для учета новых полей и логики работы с токенами.
This commit is contained in:
@@ -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")
|
||||
Reference in New Issue
Block a user