from typing import List, Optional from sqlalchemy.orm import Session from mooc.models.admin import Admin from mooc.schemas.admin import AdminCreate, AdminUpdate class CRUDAdmin: def get(self, db: Session, id: int) -> Optional[Admin]: return db.query(Admin).filter(Admin.id == id).first() def get_by_username(self, db: Session, username: str) -> Optional[Admin]: return db.query(Admin).filter(Admin.username == username).first() def get_multi( self, db: Session, *, skip: int = 0, limit: int = 100 ) -> List[Admin]: return db.query(Admin).offset(skip).limit(limit).all() def create(self, db: Session, *, obj_in: AdminCreate) -> Admin: db_obj = Admin( weid=obj_in.weid, username=obj_in.username, password=obj_in.password, pcate_id=obj_in.pcate_id, cate_id=obj_in.cate_id, relation_id=obj_in.relation_id, is_delete=obj_in.is_delete ) db.add(db_obj) db.commit() db.refresh(db_obj) return db_obj def update( self, db: Session, *, db_obj: Admin, obj_in: AdminUpdate ) -> Admin: update_data = obj_in.dict(exclude_unset=True) for field, value in update_data.items(): setattr(db_obj, field, value) db.add(db_obj) db.commit() db.refresh(db_obj) return db_obj def delete(self, db: Session, *, id: int) -> Admin: obj = db.query(Admin).get(id) if obj: obj.is_delete = 1 db.add(obj) db.commit() return obj admin = CRUDAdmin()