| 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() | |