from sqlalchemy.orm import Session from services.data import DataService from services.upload import UploadService from services.box import BoxService from services.tcgplayer import TCGPlayerService from services.pricing import PricingService from services.file import FileService from services.product import ProductService from services.inventory import InventoryService from services.task import TaskService from fastapi import Depends, Form from db.database import get_db from schemas.file import CreateFileRequest ## file # file def get_file_service(db: Session = Depends(get_db)) -> FileService: """Dependency injection for FileService""" return FileService(db) # metadata def get_create_file_metadata( type: str = Form(...), source: str = Form(...), service: str = Form(None), filename: str = Form(None) ) -> CreateFileRequest: """Dependency injection for FileMetadata""" return CreateFileRequest(type=type, source=source, service=service, filename=filename) def get_tcgplayer_service( db: Session = Depends(get_db) ) -> TCGPlayerService: """Dependency injection for TCGPlayerService""" return TCGPlayerService(db) # product def get_product_service(db: Session = Depends(get_db), file_service: FileService = Depends(get_file_service), tcgplayer_service: TCGPlayerService = Depends(get_tcgplayer_service)) -> ProductService: """Dependency injection for ProductService""" return ProductService(db, file_service, tcgplayer_service) # task def get_task_service(db: Session = Depends(get_db), product_service: ProductService = Depends(get_product_service)) -> TaskService: """Dependency injection for TaskService""" return TaskService(db, product_service) ## Inventory def get_inventory_service(db: Session = Depends(get_db)) -> InventoryService: """Dependency injection for InventoryService""" return InventoryService(db) ## Upload def get_upload_service(db: Session = Depends(get_db)) -> UploadService: """Dependency injection for UploadService""" return UploadService(db) ## box def get_box_service(db: Session = Depends(get_db), inventory_service: InventoryService = Depends(get_inventory_service)) -> BoxService: """Dependency injection for BoxService""" return BoxService(db, inventory_service) ## Pricing def get_pricing_service(db: Session = Depends(get_db)) -> PricingService: """Dependency injection for PricingService""" return PricingService(db) ## Data def get_data_service( db: Session = Depends(get_db), tcgplayer_service: TCGPlayerService = Depends(get_tcgplayer_service) ) -> DataService: """Dependency injection for DataService""" return DataService(db, tcgplayer_service)