from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from config.database import get_db from schemas.patch import RecordResponse, RecordCreate, RecordUpdate from service import record_service router = APIRouter(prefix="/records", tags=["records"]) @router.post("", response_model=bool) def create(data: RecordCreate, db: Session = Depends(get_db)): return record_service.create_record(db, data) @router.get("/{record_id}", response_model=RecordResponse) def get_one(record_id: int, db: Session = Depends(get_db)): record = record_service.get_record(db, record_id) if not record: raise HTTPException(404, "Record not found") return record @router.get("/crop/{crop_id}", response_model=list[RecordResponse]) def list_by_crop(crop_id: int, db: Session = Depends(get_db)): return record_service.get_records_by_crop(db, crop_id) @router.put("/{record_id}", response_model=bool) def update(record_id: int, data: RecordUpdate, db: Session = Depends(get_db)): record = record_service.update_record(db, record_id, data) if not record: raise HTTPException(404, "Record not found") return record @router.delete("/{record_id}", response_model=bool) def delete(record_id: int, db: Session = Depends(get_db)): record = record_service.delete_record(db, record_id) if not record: raise HTTPException(404, "Record not found") return record