from sqlalchemy import Column, Integer, String from fastapi_users.db import SQLAlchemyBaseUserTableUUID, SQLAlchemyUserDatabase from fastapi import Depends from .db import Base class User(SQLAlchemyBaseUserTableUUID, Base): pass class UserDatabase(Base):#класс пользователя __tablename__ = "users" id = Column(Integer, primary_key=True, index=True, unique=True)#айди пользователя phone = Column(Integer, nullable=True)#номер телефона пользователя email = Column(String)#электронная почта пользователя password = Column(String) # пароль hashed_password = Column(String) name = Column(String, nullable=True)#имя пользователя surname = Column(String)#фамилия пользователя class Announcement(Base): #класс объявления __tablename__ = "announcements" id = Column(Integer, primary_key=True, index=True)#айди объявления user_id = Column(Integer)#айди создателя объявления name = Column(String) # название объявления category = Column(String)#категория продукта из объявления best_by = Column(Integer)#срок годности продукта из объявления address = Column(String) longtitude = Column(Integer) latitude = Column(Integer) description = Column(String)#описание продукта в объявлении src = Column(String, nullable=True) #изображение продукта в объявлении metro = Column(String)#ближайщее метро от адреса нахождения продукта trashId = Column(Integer, nullable=True) booked_by = Column(Integer)#статус бронирования (либо -1, либо айди бронирующего) class Trashbox(Base):#класс мусорных баков __tablename__ = "trashboxes" id = Column(Integer, primary_key=True, index=True)#айди name = Column(String, nullable=True)#имя пользователя address = Column(String) latitude = Column(Integer) longtitude = Column(Integer) category = Column(String)#категория продукта из объявления class Poems(Base):#класс поэзии __tablename__ = "poems" id = Column(Integer, primary_key=True, index=True) #айди poem_text = Column(String) # текст стихотворения # from typing import AsyncGenerator # from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine # from fastapi_users.db import SQLAlchemyBaseUserTableUUID, SQLAlchemyUserDatabase # # This function can be called during the initialization of the FastAPI app. # async def create_db_and_tables(): # async with engine.begin() as conn: # await conn.run_sync(Base.metadata.create_all) # async def get_async_session() -> AsyncGenerator[AsyncSession, None]: # async with async_session_maker() as session: # yield session # async def get_user_db(session: AsyncSession = Depends(get_async_session)): # yield SQLAlchemyUserDatabase(session, User)