feat(infra): Stabilized Docker env, fixed circular imports, enabled AI Enricher Robot v1.1

This commit is contained in:
2026-02-17 01:26:18 +00:00
parent d574d3297d
commit 2def6b2201
34 changed files with 1559 additions and 112 deletions

View File

@@ -13,28 +13,41 @@ class SecurityAuditLog(Base):
actor_id = Column(Integer, ForeignKey("data.users.id")) # Aki kezdeményezte
target_id = Column(Integer, ForeignKey("data.users.id")) # Akivel történt
# 4-szem elv: csak akkor válik élessé, ha ez nem NULL
confirmed_by_id = Column(Integer, ForeignKey("data.users.id"), nullable=True)
is_critical = Column(Boolean, default=False) # Szuperadmin hívásoknál True
is_critical = Column(Boolean, default=False)
payload_before = Column(JSON)
payload_after = Column(JSON)
created_at = Column(DateTime(timezone=True), server_default=func.now())
class OperationalLog(Base):
""" Napi üzemi események (Operational). """
""" Felhasználói szintű napi üzemi események (Audit Trail). """
__tablename__ = "operational_logs"
__table_args__ = {"schema": "data", "extend_existing": True}
id = Column(Integer, primary_key=True, index=True) # <--- EZ HIÁNYZOTT!
id = Column(Integer, primary_key=True, index=True)
user_id = Column(Integer, ForeignKey("data.users.id", ondelete="SET NULL"), nullable=True)
action = Column(String(100), nullable=False) # pl. "ADD_VEHICLE", "UPDATE_COST"
resource_type = Column(String(50)) # pl. "Asset", "Expense"
action = Column(String(100), nullable=False) # pl. "ADD_VEHICLE"
resource_type = Column(String(50))
resource_id = Column(String(100))
details = Column(JSON, server_default=text("'{}'::jsonb"))
ip_address = Column(String(45))
created_at = Column(DateTime(timezone=True), server_default=func.now())
class ProcessLog(Base):
""" Robotok és háttérfolyamatok futási naplója (A reggeli jelentésekhez). """
__tablename__ = "process_logs" # Külön tábla a tisztaság kedvéért
__table_args__ = {"schema": "data", "extend_existing": True}
id = Column(Integer, primary_key=True)
process_name = Column(String(100), index=True) # 'Master-Enricher'
start_time = Column(DateTime(timezone=True), server_default=func.now())
end_time = Column(DateTime(timezone=True))
items_processed = Column(Integer, default=0)
items_failed = Column(Integer, default=0)
details = Column(JSON, server_default=text("'{}'::jsonb"))
created_at = Column(DateTime(timezone=True), server_default=func.now())
class FinancialLedger(Base):
""" Minden pénz- és kreditmozgás központi naplója. """
__tablename__ = "financial_ledger"
@@ -43,14 +56,9 @@ class FinancialLedger(Base):
id = Column(Integer, primary_key=True)
user_id = Column(Integer, ForeignKey("data.users.id"))
person_id = Column(BigInteger, ForeignKey("data.persons.id"))
amount = Column(Numeric(18, 4), nullable=False)
currency = Column(String(10)) # 'HUF', 'CREDIT', 'COIN'
transaction_type = Column(String(50)) # 'PURCHASE', 'HUNTING_COMMISSION', 'FARMING_COMMISSION'
# Üzletkötői követhetőség
currency = Column(String(10))
transaction_type = Column(String(50))
related_agent_id = Column(Integer, ForeignKey("data.users.id"), nullable=True)
details = Column(JSON, server_default=text("'{}'::jsonb"))
created_at = Column(DateTime(timezone=True), server_default=func.now())