from datetime import datetime import uuid from sqlalchemy.orm import Session from src.db.models.media import MediaLofi from src.schema.media.lofi import MediaLofiModel def create_new_lofi(url: str, db: Session) -> MediaLofi: """ Create MediaLofi with given URL. """ print("create MediaLofi with url %s", url) media_lofi = MediaLofi() media_lofi.id = str(uuid.uuid4()) media_lofi.url = url media_lofi.created_date = datetime.now() media_lofi.last_modified_date = datetime.now() media_lofi.review = True media_lofi.should_download = False db.add(media_lofi) db.commit() db.refresh(media_lofi) print(media_lofi) return media_lofi def import_medialofi(db: Session, new_lofi: MediaLofiModel) -> MediaLofi: """ import MediaLofi and set missing values with default ones. """ print("import MediaLofi with %s", new_lofi) media_lofi: MediaLofi = MediaLofi() media_lofi.id = new_lofi.id if new_lofi.created_date: media_lofi.created_date = new_lofi.created_date else: media_lofi.created_date = datetime.now() if new_lofi.last_modified_date: media_lofi.last_modified_date = new_lofi.last_modified_date else: media_lofi.last_modified_date = datetime.now() media_lofi.version = new_lofi.version if new_lofi.title: media_lofi.title = new_lofi.title else: media_lofi.title = "" if new_lofi.url: media_lofi.url = new_lofi.url else: # TODO shoud exeception be raised when url is missing? media_lofi.url = "" media_lofi.review = new_lofi.review media_lofi.should_download = new_lofi.should_download db.add(media_lofi) db.commit() db.refresh(media_lofi) return media_lofi def delete_medialofi(db: Session, lofi_id: str): """ Delete MediaLofi with given ID from db. """ print("delete MediaLofi with id %s", lofi_id) lofi = db.get(MediaLofi, lofi_id) db.delete(lofi) db.commit()