package dev.dao;

import dev.database.DatabaseConnection;
import dev.model.User;
import java.sql.*;

public class UserDao
{
    public boolean save(User user)
    {
        String sql = "INSERT INTO users(username,password,email) VALUES(?,?,?)";

        try(Connection connection = DatabaseConnection.getConnection();
            PreparedStatement ps = connection.prepareStatement(sql))
        {
            ps.setString(1,user.getUsername());
            ps.setString(2,user.getPassword());
            ps.setString(3,user.getEmail());

            return ps.executeUpdate() > 0;
        }
        catch (SQLException e)
        {
            e.printStackTrace();
            return false;
        }
    }

    public User findByUsername(String username)
    {
        String sql = "SELECT * FROM users WHERE username=?";

        try(Connection connection = DatabaseConnection.getConnection();
            PreparedStatement ps = connection.prepareStatement(sql))
        {
            ps.setString(1,username);

            ResultSet rs = ps.executeQuery();

            if(rs.next())
            {
                User user = new User();

                user.setId(rs.getInt("id"));
                user.setUsername(rs.getString("username"));
                user.setPassword(rs.getString("password"));
                user.setEmail(rs.getString("email"));

                return user;
            }

        }
        catch (SQLException e)
        {
            e.printStackTrace();
        }

        return null;
    }
}