Files
itdontfitgsapi/database.py
2025-09-23 22:58:29 -04:00

44 lines
1.3 KiB
Python

from sqlalchemy import create_engine, Column, Integer, String, Text, DateTime
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from datetime import datetime
from config import settings
# Create database engine
engine = create_engine(settings.DATABASE_URL)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Base = declarative_base()
class Message(Base):
__tablename__ = "messages"
id = Column(Integer, primary_key=True, index=True)
message = Column(Text, nullable=False)
sender = Column(String(255), nullable=False)
item_id = Column(Integer, nullable=True)
amount = Column(Integer, nullable=True)
created_at = Column(DateTime, default=datetime.utcnow)
class Transaction(Base):
__tablename__ = "transactions"
id = Column(Integer, primary_key=True, index=True)
item_id = Column(Integer, nullable=False)
item = Column(String(255), nullable=False)
user = Column(String(255), nullable=False)
amount = Column(Integer, nullable=False)
created_at = Column(DateTime, default=datetime.utcnow)
# Create tables
def create_tables():
Base.metadata.create_all(bind=engine)
# Dependency to get database session
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()