<?php
// classes/User.php - User entity model for OOP logins

require_once __DIR__ . '/Database.php';

class User {
    private $db;

    public function __construct() {
        $this->db = Database::getInstance()->getConnection();
    }

    public function authenticate($username, $password) {
        $stmt = $this->db->prepare("SELECT id, username, password, role, first_name FROM users WHERE username = ?");
        $stmt->execute([$username]);
        $user = $stmt->fetch();

        if ($user && password_verify($password, $user['password'])) {
            return $user;
        }
        return false;
    }

    public function register($username, $password, $email, $firstName, $lastName) {
        $hashedPassword = password_hash($password, PASSWORD_BCRYPT);
        $stmt = $this->db->prepare("
            INSERT INTO users (username, password, email, first_name, last_name, role) 
            VALUES (?, ?, ?, ?, ?, 'customer')
        ");
        return $stmt->execute([$username, $hashedPassword, $email, $firstName, $lastName]);
    }
}
