add personal
This commit is contained in:
49
crud.py
49
crud.py
@ -1,5 +1,5 @@
|
||||
from sqlalchemy.orm import Session
|
||||
from models import Car, EngineType, HybridType, PowerRatio
|
||||
from models import Car, EngineType, HybridType, PowerRatio, Personal
|
||||
import schemas
|
||||
from typing import List, Optional
|
||||
|
||||
@ -72,3 +72,50 @@ def delete_car(db: Session, car_id: int) -> bool:
|
||||
db.delete(db_car)
|
||||
db.commit()
|
||||
return True
|
||||
|
||||
# Персонал ---------
|
||||
|
||||
def get_personal(db: Session, personal_id: int) -> Optional[Personal]:
|
||||
return db.query(Personal).filter(Personal.id == personal_id).first()
|
||||
|
||||
def get_all_personal(db: Session, skip: int = 0, limit: int = 100) -> List[Personal]:
|
||||
return db.query(Personal).offset(skip).limit(limit).all()
|
||||
|
||||
def get_personal_count(db: Session) -> int:
|
||||
return db.query(Personal).count()
|
||||
|
||||
def create_personal(db: Session, personal: schemas.PersonalCreate) -> Personal:
|
||||
db_personal = Personal(
|
||||
name=personal.name,
|
||||
surname=personal.surname,
|
||||
role=personal.role,
|
||||
photo=personal.photo
|
||||
)
|
||||
db.add(db_personal)
|
||||
db.commit()
|
||||
db.refresh(db_personal)
|
||||
return db_personal
|
||||
|
||||
def update_personal(db: Session, personal_id: int, personal_update: schemas.PersonalUpdate) -> Optional[Personal]:
|
||||
db_personal = get_personal(db, personal_id)
|
||||
if not db_personal:
|
||||
return None
|
||||
|
||||
update_data = personal_update.model_dump(exclude_unset=True)
|
||||
|
||||
# Обновление полей
|
||||
for key, value in update_data.items():
|
||||
setattr(db_personal, key, value)
|
||||
|
||||
db.commit()
|
||||
db.refresh(db_personal)
|
||||
return db_personal
|
||||
|
||||
def delete_personal(db: Session, personal_id: int) -> bool:
|
||||
db_personal = get_personal(db, personal_id)
|
||||
if not db_personal:
|
||||
return False
|
||||
|
||||
db.delete(db_personal)
|
||||
db.commit()
|
||||
return True
|
Reference in New Issue
Block a user