| from sqlalchemy import create_engine, Column, Integer, String, Float, ForeignKey, Date | |
| from sqlalchemy.orm import declarative_base, relationship | |
| from sqlalchemy.orm import sessionmaker | |
| engine = create_engine("sqlite:///ecommerce.db") | |
| Base = declarative_base() | |
| class Customer(Base): | |
| __tablename__ = "customers" | |
| customer_id = Column(Integer, primary_key=True) | |
| name = Column(String, nullable=False) | |
| email = Column(String, unique=True, nullable=False) | |
| city = Column(String) | |
| signup_date = Column(Date) | |
| orders = relationship("Order", back_populates="customer") | |
| class Product(Base): | |
| __tablename__ = "products" | |
| product_id = Column(Integer, primary_key=True) | |
| product_name = Column(String, nullable=False) | |
| category = Column(String) | |
| price = Column(Float) | |
| stock = Column(Integer) | |
| order_items = relationship("OrderItem", back_populates="product") | |
| class Employee(Base): | |
| __tablename__ = "employees" | |
| employee_id = Column(Integer, primary_key=True) | |
| employee_name = Column(String, nullable=False) | |
| department = Column(String) | |
| orders = relationship("Order", back_populates="employee") | |
| class Order(Base): | |
| __tablename__ = "orders" | |
| order_id = Column(Integer, primary_key=True) | |
| customer_id = Column(Integer, ForeignKey("customers.customer_id")) | |
| employee_id = Column(Integer, ForeignKey("employees.employee_id")) | |
| order_date = Column(Date) | |
| total_amount = Column(Float) | |
| customer = relationship("Customer", back_populates="orders") | |
| employee = relationship("Employee", back_populates="orders") | |
| order_items = relationship("OrderItem", back_populates="order") | |
| class OrderItem(Base): | |
| __tablename__ = "order_items" | |
| order_item_id = Column(Integer, primary_key=True) | |
| order_id = Column(Integer, ForeignKey("orders.order_id")) | |
| product_id = Column(Integer, ForeignKey("products.product_id")) | |
| quantity = Column(Integer) | |
| order = relationship("Order", back_populates="order_items") | |
| product = relationship("Product", back_populates="order_items") | |
| Base.metadata.create_all(engine) | |
| print(" Database and tables created successfully!") |