feat: implement pivot-currency model, rbac smart tokens & fix circular imports
This commit is contained in:
@@ -20,16 +20,16 @@ class Organization(Base):
|
||||
__table_args__ = {"schema": "data"}
|
||||
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
|
||||
# ÚJ MEZŐ: Egységes címkezelés (GeoService hibrid)
|
||||
address_id = Column(PG_UUID(as_uuid=True), ForeignKey("data.addresses.id"), nullable=True)
|
||||
|
||||
# --- NÉVKEZELÉS ---
|
||||
full_name = Column(String, nullable=False) # Teljes hivatalos név
|
||||
name = Column(String, nullable=False) # Rövidített cégnév
|
||||
display_name = Column(String(50)) # Alkalmazáson belüli rövidítés
|
||||
full_name = Column(String, nullable=False)
|
||||
name = Column(String, nullable=False)
|
||||
display_name = Column(String(50))
|
||||
|
||||
# --- ATOMIZÁLT CÍMKEZELÉS (Kompatibilitási réteg) ---
|
||||
default_currency = Column(String(3), default="HUF")
|
||||
country_code = Column(String(2), default="HU")
|
||||
language = Column(String(5), default="hu")
|
||||
|
||||
address_zip = Column(String(10))
|
||||
address_city = Column(String(100))
|
||||
address_street_name = Column(String(150))
|
||||
@@ -39,9 +39,7 @@ class Organization(Base):
|
||||
address_stairwell = Column(String(20))
|
||||
address_floor = Column(String(20))
|
||||
address_door = Column(String(20))
|
||||
country_code = Column(String(2), default="HU")
|
||||
|
||||
# --- ÜZLETI ADATOK ---
|
||||
tax_number = Column(String(20), unique=True, index=True)
|
||||
reg_number = Column(String(50))
|
||||
|
||||
@@ -65,7 +63,7 @@ class Organization(Base):
|
||||
created_at = Column(DateTime(timezone=True), server_default=func.now())
|
||||
updated_at = Column(DateTime(timezone=True), onupdate=func.now())
|
||||
|
||||
# Kapcsolatok
|
||||
# String alapú hivatkozás a körkörös import ellen
|
||||
assets = relationship("AssetAssignment", back_populates="organization", cascade="all, delete-orphan")
|
||||
members = relationship("OrganizationMember", back_populates="organization", cascade="all, delete-orphan")
|
||||
owner = relationship("User", back_populates="owned_organizations")
|
||||
@@ -76,13 +74,9 @@ class OrganizationMember(Base):
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
organization_id = Column(Integer, ForeignKey("data.organizations.id"), nullable=False)
|
||||
user_id = Column(Integer, ForeignKey("data.users.id"), nullable=False)
|
||||
role = Column(String, default="driver") # owner, manager, driver, service_staff
|
||||
role = Column(String, default="driver")
|
||||
|
||||
# JAVÍTVA: Jogosultságok JSONB mezője (can_add_asset, etc.)
|
||||
permissions = Column(JSON, server_default=text("'{}'::jsonb"))
|
||||
|
||||
organization = relationship("Organization", back_populates="members")
|
||||
user = relationship("app.models.identity.User") # Visszamutató kapcsolat a felhasználóra
|
||||
|
||||
# Kompatibilitási réteg
|
||||
Organization.vehicles = Organization.assets
|
||||
user = relationship("User") # Egyszerűsített string hivatkozás
|
||||
Reference in New Issue
Block a user