from fastapi import FastAPI, APIRouter, Request from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import ORJSONResponse, HTMLResponse from sqlmodel import create_engine, Field, SQLModel, UUID, DateTime, func, Column, text, bindparam from sqlalchemy.dialects.mssql import UNIQUEIDENTIFIER, DATETIME from sqlalchemy import insert from dotenv import load_dotenv from typing import Optional, Sequence from datetime import datetime from uuid import UUID import os load_dotenv() DB_URL = os.getenv("DB_URL") SERVER_ROOT = os.getenv("SERVER_ROOT") PREFIX = os.getenv("PREFIX") db_engine = create_engine(DB_URL) class Agreement(SQLModel,table=True): id: Optional[int] = Field(default=None, primary_key=True) id_account: UUID = Field(sa_column=Column(UNIQUEIDENTIFIER)) id_personal_account: Optional[int] date_registration:datetime = Field(sa_column=Column(DATETIME)) FIO: Optional[str] phone: Optional[str] email: Optional[str] agreement:Optional[bool] = True agreement_date: Optional[datetime] = Field(sa_column=Column(DATETIME)) class AgreementCreate(SQLModel): id_account: UUID id_personal_account: Optional[int] date_registration:datetime FIO: Optional[str] phone: Optional[str] email: Optional[str] agreement:Optional[bool] = True agreement_date: Optional[datetime] SQLModel.metadata.create_all(db_engine, checkfirst=True) app = FastAPI(openapi_url = SERVER_ROOT +"/openapi.json", docs_url=SERVER_ROOT+"/docs", default_response_class=ORJSONResponse) app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) router = APIRouter( prefix=PREFIX ) @app.get("/", response_class= HTMLResponse) async def hello(request: Request): return """