package mx.gob.jumapacelaya.Services;

import mx.gob.jumapacelaya.models.Usuario;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Service;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

@Service
public class UserService {

    private final JdbcTemplate jdbcTemplate;

    public UserService(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    public List<Usuario> getUsusarios() {
        List<Usuario> usuarios = new ArrayList<>();
        String query = "SELECT usuarioid, empleadoid, nombrecompleto " +
                "FROM usuarios " +
                "INNER JOIN empleados USING (usuarioid) " +
                "WHERE uniorgid=12 AND fechabaja IS NULL AND fechabaj IS NULL AND regexp_like(puestoid, 'EJVEN') " +
                "ORDER BY nombrecompleto";

        return jdbcTemplate.query(query, usuarioRowMapper());
    }

    private RowMapper<Usuario> usuarioRowMapper() {
        return (rs, rowNum) -> new Usuario(
                rs.getString("nombrecompleto"),
                rs.getString("usuarioid"),
                rs.getInt("empleadoid")
        );
    }
}
