diff --git a/blueprints/community/classifieds/routes.py b/blueprints/community/classifieds/routes.py index bcd77fd..948515b 100644 --- a/blueprints/community/classifieds/routes.py +++ b/blueprints/community/classifieds/routes.py @@ -409,6 +409,14 @@ def delete(classified_id): if not classified: return jsonify({'success': False, 'error': 'Ogłoszenie nie istnieje'}), 404 + # SQLAlchemy ORM doesn't honor DB-level CASCADE — it tries to UPDATE + # FK to NULL on related rows first, which fails on NOT NULL columns. + # Same pattern as forum reply delete fix. Wipe related rows first. + db.query(ClassifiedRead).filter(ClassifiedRead.classified_id == classified.id).delete(synchronize_session=False) + db.query(ClassifiedInterest).filter(ClassifiedInterest.classified_id == classified.id).delete(synchronize_session=False) + db.query(ClassifiedQuestion).filter(ClassifiedQuestion.classified_id == classified.id).delete(synchronize_session=False) + db.query(ClassifiedAttachment).filter(ClassifiedAttachment.classified_id == classified.id).delete(synchronize_session=False) + db.delete(classified) db.commit()