package com.hpay.hpay_mobile_api.controllers;

import com.hpay.hpay_mobile_api.DTO.DepotRetraitDTO;
import com.hpay.hpay_mobile_api.services.DepotRetraitService;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;

@RestController
@RequestMapping("/api/depot-retrait")
@RequiredArgsConstructor
public class DepotRetraitController {

    private final DepotRetraitService service;

    @GetMapping("/search-depots")
    public Page<DepotRetraitDTO> searchDepots(
            @RequestParam Integer idClient,
            @RequestParam(required = false) Integer idCompte,
            @RequestParam(defaultValue = "ASC") String sortDirection,
            @RequestParam(defaultValue = "0") int page,
            @RequestParam(defaultValue = "10") int size,
            @RequestParam(required = false) String dateStart,
            @RequestParam(required = false) String dateEnd
    ) {
        LocalDateTime start = dateStart != null ? LocalDateTime.parse(dateStart) : null;
        LocalDateTime end = dateEnd != null ? LocalDateTime.parse(dateEnd) : null;

        return service.searchDepotsService(idClient, idCompte, start, end, page, size, sortDirection);
    }


    @GetMapping("/search-retraits")
    public Page<DepotRetraitDTO> searchRetraits(
            @RequestParam Integer idClient,
            @RequestParam(required = false) Integer idCompte,
            @RequestParam(defaultValue = "ASC") String sortDirection,
            @RequestParam(defaultValue = "0") int page,
            @RequestParam(defaultValue = "10") int size,
            @RequestParam(required = false) String dateStart,
            @RequestParam(required = false) String dateEnd
    ) {
        LocalDateTime start = dateStart != null ? LocalDateTime.parse(dateStart) : null;
        LocalDateTime end = dateEnd != null ? LocalDateTime.parse(dateEnd) : null;

        return service.searchRetraitsService(idClient, idCompte, start, end, page, size, sortDirection);
    }

}
