Files
patch-service/service/crop_service.py
2026-09-09 18:42:37 +08:00

43 lines
1007 B
Python

from sqlalchemy import select, delete
from sqlalchemy.orm import Session
from models.patch import Crops, Records
from schemas.patch import CropCreate, CropUpdate
def create_crop(db: Session, data: CropCreate) -> bool:
crop = Crops(**data.model_dump())
db.add(crop)
db.commit()
db.refresh(crop)
return True
def update_crop(db: Session, crop_id: int, data: CropUpdate) -> bool:
result = db.execute(select(Crops).where(Crops.id == crop_id))
crop = result.scalar_one_or_none()
if not crop:
return False
for k, v in data.model_dump(exclude_unset=True).items():
setattr(crop, k, v)
db.commit()
db.refresh(crop)
return True
def delete_crop(db: Session, crop_id: int) -> bool:
result = db.execute(select(Crops).where(Crops.id == crop_id))
crop = result.scalar_one_or_none()
if not crop:
return False
db.execute(delete(Records).where(Records.crop_id == crop_id))
db.delete(crop)
db.commit()
return True