#!/usr/bin/perl
# Common session validation module for all platforms

use strict;
use warnings;
use lib '/var/www/html/cgi-bin';
use SessionManager;
use CGI::Cookie;

sub validate_user_session {
    my ($cgi) = @_;
    
    # First try Redis session
    my $session_data = SessionManager->get_session_from_cookie($cgi);
    
    if ($session_data) {
        return {
            valid => 1,
            user_id => $session_data->{user_id},
            username => $session_data->{username},
            account_name => $session_data->{account_name},
            session_type => 'redis'
        };
    }
    
    # Fall back to legacy cookie validation for backward compatibility
    my %cookies = CGI::Cookie->fetch;
    my $account_name_cookie = $cookies{'account_name'};
    my $account_id_cookie = $cookies{'account_id'};
    
    if ($account_name_cookie && $account_id_cookie) {
        return {
            valid => 1,
            user_id => $account_id_cookie->value,
            account_name => $account_name_cookie->value,
            username => $account_name_cookie->value,
            session_type => 'legacy'
        };
    }
    
    return { valid => 0 };
}

1;