from sqlalchemy.orm import Session
from app.api.carpentry.schemas import CarpentryFurnitureCreate, CarpentryFurnitureResponce
from app.dependency.authantication import JWTPayloadSchema
from app.models.main.carpentry import FurnitureEstimateBase, TblCarpentryFurniture
from app.utils.common_utils import prepare_furniture_data
from app.utils.schemas_utils import CustomResponse

class CarpentryFurnitureService:
    def __init__(self, db: Session, token: JWTPayloadSchema):
        self.db = db
        self.token = token

    async def create_carpentry_furniture(self, request: CarpentryFurnitureCreate):
        data = prepare_furniture_data(request)
        created_furniture = FurnitureEstimateBase.model_validate(data)
        TblCarpentryFurniture.create(created_furniture, self.db)
        self.db.commit()
        return CustomResponse(status="1", message="Carpentry and Furniture item created successfully.")

    async def get_carpentry_by_group_id(self, group_id: int):
        carpentry_record = self.db.query(TblCarpentryFurniture).filter(TblCarpentryFurniture.group_id == group_id).first()
        if not carpentry_record:
            return CustomResponse(status="-1", message="No Carpentry Data Found")
        return CustomResponse(status="1",message="Carpentry data fetched successfully",data=CarpentryFurnitureResponce.model_validate(carpentry_record))