<?php
class Session
{
	public $data = array();

	public function __construct($session_name = 'ID')
	{
		if (!session_id()) {

			$lifetime = 60 * 60 * 24 * 5;
			
			ini_set('session.use_cookies', 'On');
			ini_set('session.use_trans_sid', 'Off');
			ini_set('session.gc_maxlifetime', $lifetime);
			ini_set('session.cookie_lifetime', $lifetime);

			// Definindo os parâmetros do cookie de sessão
			$secure = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on';
			$httponly = true;
			$samesite = 'Lax';

			session_name($session_name);
			session_set_cookie_params([
				'lifetime' => $lifetime,
				'path' => '/',
				'domain' => '',
				'secure' => $secure,
				'httponly' => $httponly,
				'samesite' => $samesite
			]);

			session_start();
			
		}

		$this->data =& $_SESSION;
	}

	public function login($user_id)
	{
		$this->data['user_id'] = $user_id;
		// Regenerar o ID da sessão por segurança (opcional)
		session_regenerate_id(true);
	}

	public function isLogged()
	{
		return isset($this->data['user_id']);
	}

	function getId()
	{
		return session_id();
	}
}
