# Pydantic imports from typing import List from fastapi import APIRouter, Depends # Sqlalchemy imports from sqlalchemy.orm import Session from starlette.responses import Response from commands.fincas import update_fincas as command_update_fincas from cruds.companies import get_companies, get_company_by_id # My imports from cruds.fincas import get_fincas_filter_company from database.sqlalchemy import get_db from routes.login import get_current_user from schemas.company import Company as CompanySchema from schemas.fincas import Finca as FincaSchema from schemas.users import User as UserSchema router = APIRouter() @router.get("/company", response_model=CompanySchema) async def get_my_company( db: Session = Depends(get_db), current_user: UserSchema = Depends(get_current_user), ) -> Response: company = get_company_by_id(db, current_user.company_id) return company """ No corresponde ya que un usuario no puede acceder a fincas que no pertenezcan a su organizacion, lo dejo por si mas adelate hacemos permisos de superusuario o simil @router.get("/companies", response_model=List[CompanySchema]) async def get_all_companies( db: Session = Depends(get_db), current_user: UserSchema = Depends(get_current_user), ) -> Response: companies = get_companies(db) return companies @router.get("/company/{company_id}", response_model=CompanySchema) async def get_company( company_id: int, db: Session = Depends(get_db), current_user: UserSchema = Depends(get_current_user), ) -> Response: company = get_company_by_id(db, company_id) return company @router.get("/company/{company_id}/fincas", response_model=List[FincaSchema]) async def get_company( company_id: int, db: Session = Depends(get_db), current_user: UserSchema = Depends(get_current_user), ) -> Response: company = get_fincas_filter_company(db, company_id) return company @router.get( "/company/{company_id}/update-fincas", ) def update_fincas( company_id: int, db: Session = Depends(get_db), current_user: UserSchema = Depends(get_current_user), ) -> Response: return command_update_fincas(company_id) """