Files
endpoin/movimiento.py
2025-12-23 16:54:07 +00:00

34 lines
1.3 KiB
Python

from sqlalchemy import Column, Integer, String, DateTime, ForeignKey, Enum as SQLEnum
from sqlalchemy.orm import relationship
from sqlalchemy.sql import func
from app.database import Base
from app.models.enums import TipoMovimiento
class MovimientoTimbre(Base):
__tablename__ = "movimientos_timbres"
id = Column(Integer, primary_key=True, index=True)
cliente_id = Column(Integer, ForeignKey("clientes.id"), nullable=False)
subcliente_id = Column(Integer, ForeignKey("subclientes.id"), nullable=True)
tipo = Column(SQLEnum(TipoMovimiento), nullable=False)
cantidad = Column(Integer, nullable=False)
# Información adicional
descripcion = Column(String(500))
referencia_externa = Column(String(255), index=True) # ID de la firma/timbre en el sistema externo
# Balances después del movimiento
balance_cliente = Column(Integer, nullable=False)
# Timestamps
created_at = Column(DateTime(timezone=True), server_default=func.now())
# Relaciones
cliente = relationship("Cliente", back_populates="movimientos")
subcliente = relationship("SubCliente", back_populates="movimientos")
def __repr__(self):
return f"<MovimientoTimbre {self.tipo} - Cantidad: {self.cantidad} - Cliente: {self.cliente_id}>"