from backend.db.models import Universe, Axiom, Theorem, Proof from backend.db.session import SessionLocal from datetime import datetime def create_universe(db, name, description, universe_type): universe = Universe(name=name, description=description, universe_type=universe_type, version=1, created_at=str(datetime.utcnow())) db.add(universe) db.commit() db.refresh(universe) return universe def update_universe(db, universe_id, **kwargs): universe = db.query(Universe).filter(Universe.id == universe_id).first() for key, value in kwargs.items(): setattr(universe, key, value) universe.version += 1 db.commit() db.refresh(universe) return universe def delete_universe(db, universe_id): universe = db.query(Universe).filter(Universe.id == universe_id).first() db.delete(universe) db.commit() def create_axiom(db, universe_id, statement, parent_axiom_id=None): axiom = Axiom(universe_id=universe_id, statement=statement, parent_axiom_id=parent_axiom_id, version=1, created_at=str(datetime.utcnow())) db.add(axiom) db.commit() db.refresh(axiom) return axiom def update_axiom(db, axiom_id, **kwargs): axiom = db.query(Axiom).filter(Axiom.id == axiom_id).first() for key, value in kwargs.items(): setattr(axiom, key, value) axiom.version += 1 db.commit() db.refresh(axiom) return axiom def delete_axiom(db, axiom_id): axiom = db.query(Axiom).filter(Axiom.id == axiom_id).first() db.delete(axiom) db.commit() def create_theorem(db, universe_id, statement, proof): theorem = Theorem(universe_id=universe_id, statement=statement, proof=proof) db.add(theorem) db.commit() db.refresh(theorem) return theorem def update_theorem(db, theorem_id, **kwargs): theorem = db.query(Theorem).filter(Theorem.id == theorem_id).first() for key, value in kwargs.items(): setattr(theorem, key, value) db.commit() db.refresh(theorem) return theorem def delete_theorem(db, theorem_id): theorem = db.query(Theorem).filter(Theorem.id == theorem_id).first() db.delete(theorem) db.commit() def create_proof(db, axiom_id, content): proof = Proof(axiom_id=axiom_id, content=content) db.add(proof) db.commit() db.refresh(proof) return proof def update_proof(db, proof_id, **kwargs): proof = db.query(Proof).filter(Proof.id == proof_id).first() for key, value in kwargs.items(): setattr(proof, key, value) db.commit() db.refresh(proof) return proof def delete_proof(db, proof_id): proof = db.query(Proof).filter(Proof.id == proof_id).first() db.delete(proof) db.commit()