package com.sc.sicanet.migracion_sicanet.service;

import java.util.List;
import java.util.Map;
import java.util.Optional;

import com.sc.sicanet.migracion_sicanet.DTO.PersonaDTO;
import com.sc.sicanet.migracion_sicanet.entity.*;
import org.springframework.stereotype.Service;

public interface MigracionService {
    public List<Persona> findAll();

    Optional<Persona> findById(int id);

    public Map<String, String> guardarActualizarPersona(Persona persona, Laboral laboral, Domicilio domicilio, Domicilio domicilioLaboral,
                                                        PerfilTransaccional perfilTransaccional, InformacionPEPS informacionPEPS,
                                                        RepresentanteLegal representanteLegal, Persona personaRepresentante, Domicilio domicilioRepresentante, CatContacto catContacto,
                                                        PldCatPersonasRecursoOrigen pldCatPersonasRecursoOrigen, PldCatPersonasRecursoDestino pldCatPersonasRecursoDestino);

    public void guardarPersona(Persona persona, Laboral laboral, Domicilio domicilio,
                                    Domicilio domicilioLaboral, PerfilTransaccional perfilTransaccional,
                                    InformacionPEPS informacionPEPS, RepresentanteLegal representanteLegal, Persona personaRepresentante,
                                    Domicilio domicilioRepresentante, CatContacto catContacto, PldCatPersonasRecursoOrigen pldCatPersonasRecursoOrigen,
                                    PldCatPersonasRecursoDestino pldCatPersonasRecursoDestino, boolean actualizar);
    public void guardarDomicilio(Domicilio domicilio, Persona persona);

    public void guardarLaboral(Laboral laboral, Domicilio domicilioLaboral, Persona persona);

    public void guardarInformacionPEPS(InformacionPEPS informacionPEPS, Persona persona);

    public void guardarPerfilTransaccional(PerfilTransaccional perfilTransaccional, Persona persona);

    public void guardarCatContacto(CatContacto catContacto, Persona persona);

    public void guardarSocieconomicos(PldCatPersonasRecursoOrigen pldCatPersonasRecursoOrigen, PldCatPersonasRecursoDestino pldCatPersonasRecursoDestino,
                                      Persona persona);

    public Map<String, String> migracion(PersonaDTO personaDTO);
}
