Files
Agent Zero 9a269aa54f feat(T04): Rentman integration – equipment sync, API endpoints, frontend updates
- Update equipment model with Rentman-compatible fields
- Add/Update equipment router endpoints for sync operations
- Enhance rentman_service with full API client logic
- Improve sync_service for bidirectional equipment sync
- Update docker-compose with Rentman env vars
- Update frontend useApi composable and nuxt config
- Update mietkatalog pages with Rentman-integrated data display
- Add images/ to .gitignore (binary assets, 36MB)
2026-07-11 18:17:55 +02:00

37 lines
1.3 KiB
Python

"""Equipment cache model (imported from Rentman)."""
from sqlalchemy import Column, Integer, String, Text, Boolean, DECIMAL, JSON, Index, TIMESTAMP, func
from app.database import Base
class EquipmentCache(Base):
__tablename__ = "equipment_cache"
id = Column(Integer, primary_key=True, autoincrement=True)
rentman_id = Column(String(64), unique=True, nullable=False)
name = Column(String(255), nullable=False)
number = Column(String(64))
category = Column(String(128))
subcategory = Column(String(128))
description = Column(Text)
specifications = Column(JSON)
images = Column(JSON)
update_hash = Column(String(128))
rental_price = Column(DECIMAL(10, 2))
brand = Column(String(128))
available = Column(Boolean, default=True)
created_at = Column(TIMESTAMP, server_default=func.now())
updated_at = Column(TIMESTAMP, server_default=func.now(), onupdate=func.now())
@property
def image_url(self) -> str | None:
"""Return local image URL if images exist, else None."""
if self.images and len(self.images) > 0:
return f"/api/equipment/{self.id}/image"
return None
__table_args__ = (
Index("idx_equipment_category", "category"),
Index("idx_equipment_name", "name"),
Index("idx_equipment_number", "number"),
)