2025-03-26 13:03:24 +00:00

31 lines
1.2 KiB
Python

from sqlalchemy import Column, String, Integer, Boolean, DateTime, ForeignKey, Float
from sqlalchemy.orm import relationship
from sqlalchemy.sql import func
from core.database import Base
import uuid
from datetime import datetime
class User(Base):
__tablename__ = "users"
id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))
username = Column(String, unique=True, nullable=False, index=True)
email = Column(String, unique=True, nullable=False)
password = Column(String, nullable=False)
company_name = Column(String, nullable=True)
role = Column(String, nullable=False, default="user")
phone = Column(String, nullable=True)
address = Column(String, nullable=True)
is_active = Column(Boolean, default=True)
# Balance and transactions
account_balance = Column(Float, default=0.0)
# Relationships
products = relationship("Product", back_populates="owner")
orders = relationship("Order", back_populates="user")
transactions = relationship("Transaction", back_populates="user")
# Timestamps
created_at = Column(DateTime, default=func.now())
updated_at = Column(DateTime, default=func.now(), onupdate=func.now())