first commit
This commit is contained in:
58
app/modules/affidavit_logs/models.py
Normal file
58
app/modules/affidavit_logs/models.py
Normal file
@@ -0,0 +1,58 @@
|
||||
from sqlalchemy import Column, Integer, String, DateTime, Float, Boolean, Text, ForeignKey, Enum as SQLEnum, Index
|
||||
from sqlalchemy.sql import func
|
||||
from sqlalchemy.orm import relationship
|
||||
from database import Base
|
||||
|
||||
import enum
|
||||
|
||||
class StatusOP(str, enum.Enum):
|
||||
COMPLETED = "completed"
|
||||
PARTIAL = "partial"
|
||||
INITIAL = "initial"
|
||||
NO_PROCECED = "no_proceced"
|
||||
INVALID = "invalid"
|
||||
|
||||
class Operation(str, enum.Enum):
|
||||
DELETED ="deleted"
|
||||
CREATED ="created"
|
||||
UPDATED ="updated"
|
||||
TRIED ="tried"
|
||||
MOST ="mosted"
|
||||
LESS ="less"
|
||||
MINUS ="minus"
|
||||
CANCELED ="canceled"
|
||||
|
||||
|
||||
class AffidavitRecord(Base):
|
||||
__tablename__ = "affidavit_logs"
|
||||
|
||||
id = Column(Integer, primary_key=True, nullable=False, autoincrement=True)
|
||||
operation = Column(SQLEnum(Operation, name="operation", create_type=False), default=Operation.TRIED, nullable=True)
|
||||
user_id = Column(Integer, ForeignKey("users.id"), nullable=True)
|
||||
client_id = Column(Integer, ForeignKey("clients.id"), nullable=True)
|
||||
description = Column(Text,nullable=False)
|
||||
adjustment = Column(String(100), nullable=True)
|
||||
status = Column(SQLEnum(StatusOP, name="status", create_type=False), default=StatusOP.INITIAL, nullable=True)
|
||||
sign = Column(String, nullable=False)
|
||||
|
||||
#timestamsp
|
||||
created_at = Column(DateTime(timezone=True), server_default=func.now(), nullable=False)
|
||||
updated_at = Column(DateTime(timezone=True), onupdate=func.now(), nullable=True)
|
||||
deleted_at = Column(DateTime(timezone=True), nullable=True)
|
||||
|
||||
#trace
|
||||
created_by = Column(Integer, ForeignKey("users.id"), nullable=True)
|
||||
updated_by = Column(Integer, ForeignKey("users.id"), nullable=True)
|
||||
deleted_by = Column(Integer, ForeignKey("users.id"), nullable=True)
|
||||
|
||||
#relationships
|
||||
user = relationship("Users", foreign_keys=[user_id], back_populates="affidavit_logs")
|
||||
client = relationship("Client", foreign_keys=[client_id])
|
||||
|
||||
__table_args__ = (
|
||||
Index('idx_affidavit_user', 'user_id'),
|
||||
Index('idx_affidavit_client', 'client_id'),
|
||||
Index('idx_affidavit_operation', 'operation'),
|
||||
Index('idx_affidavit_status', 'status'),
|
||||
Index('idx_affidavit_created', 'created_at'),
|
||||
)
|
||||
Reference in New Issue
Block a user