from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
from src.core.database import get_db
from src.apps.auth.utils.auth import get_current_merchant
from src.apps.settings import services
from src.apps.settings.schemas.hpp import HPPSettingsResponse, HPPSettingsUpdate

router = APIRouter()


@router.get("", response_model=HPPSettingsResponse)
async def get_hpp_settings(
    current_merchant=Depends(get_current_merchant),
    db: Session = Depends(get_db),
):
    return services.get_hpp_settings(current_merchant.id, db)


@router.put("", response_model=HPPSettingsResponse)
async def update_hpp_settings(
    data: HPPSettingsUpdate,
    current_merchant=Depends(get_current_merchant),
    db: Session = Depends(get_db),
):
    result = services.update_hpp_settings(
        data.model_dump(exclude_none=True), current_merchant.id, db
    )
    db.commit()
    return result
