import logging from sqlalchemy.orm import Session, joinedload from .models import Shipment def get_shipments(db: Session): logging.info("Fetching all shipments from the database.") shipments = db.query(Shipment).options( joinedload(Shipment.contact_person), joinedload(Shipment.return_address), joinedload(Shipment.proposal), joinedload(Shipment.dewars) ).all() logging.info(f"Total of {len(shipments)} shipments fetched.") for shipment in shipments: if shipment.proposal_id is None: logging.warning(f"Shipment {shipment.id} is missing proposal ID.") logging.debug(f"Shipment ID: {shipment.id}, Shipment Name: {shipment.shipment_name}") return shipments def get_shipment_by_id(db: Session, id: int): logging.info(f"Fetching shipment with ID: {id}") shipment = db.query(Shipment).options( joinedload(Shipment.contact_person), joinedload(Shipment.return_address), joinedload(Shipment.proposal), joinedload(Shipment.dewars) ).filter(Shipment.id == id).first() if shipment: if shipment.proposal_id is None: logging.warning(f"Shipment {shipment.id} is missing proposal ID.") logging.info(f"Shipment found: {shipment}") else: logging.warning(f"Shipment with ID {id} not found.") return shipment