| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- from datetime import datetime
- from typing import List
- from sqlalchemy.orm import Session
- from sqlalchemy.sql.sqltypes import Boolean
- from cruds.finca_company import get_finca_company_by_company_id
- from cruds.utils import order_fincas
- from models.company import Company
- from models.fincas import Finca as FincaModel
- from schemas.fincas import Finca as FincaSchema
- def get_fincas(db: Session, skip: int = 0, limit: int = 100) -> List[FincaModel]:
- return order_fincas(db.query(FincaModel).offset(skip).limit(limit).all())
- def get_fincas_filter_company(db: Session, company_id: int) -> List[FincaModel]:
- fincas_company = get_finca_company_by_company_id(db, company_id)
- station_codes = [f.finca_station_code for f in fincas_company]
- return order_fincas(
- db.query(FincaModel).filter(FincaModel.station_code.in_(station_codes)).all()
- )
- def get_finca_by_station_code(db: Session, station_code: str) -> FincaModel:
- return db.query(FincaModel).filter(FincaModel.station_code == station_code).first()
- def get_finca_by_title(db: Session, title: str) -> FincaModel:
- return db.query(FincaModel).filter(FincaModel.title == title).first()
- def create_finca(db: Session, finca: FincaSchema) -> FincaModel:
- db_finca = FincaModel(
- station_code=finca.station_code,
- title=finca.title,
- last_synced=finca.last_synced or datetime.now(),
- )
- db.add(db_finca)
- db.commit()
- db.refresh(db_finca)
- return db_finca
- def delete_finca(db: Session, station_code: str) -> Boolean:
- finca = db.query(FincaModel).filter(FincaModel.station_code == station_code).first()
- db.delete(finca)
- db.commit()
- return True
- def update_finca_title(db: Session, station_code: str, new_title: str) -> FincaModel:
- finca = db.query(FincaModel).filter(FincaModel.station_code == station_code).first()
- finca.title = new_title
- db.commit()
- db.refresh(finca)
- return finca
|