/**
 * Netlify Function for secure login
 * Password is stored as environment variable on server, never exposed to frontend
 */

exports.handler = async (event) => {
    // Only allow POST requests
    if (event.httpMethod !== 'POST') {
        return {
            statusCode: 405,
            body: JSON.stringify({ error: 'Method not allowed' })
        };
    }

    try {
        // Parse request body
        const body = JSON.parse(event.body);
        const submittedPassword = body.password;

        if (!submittedPassword) {
            return {
                statusCode: 400,
                body: JSON.stringify({ error: 'Password required' })
            };
        }

        // Get correct password from environment variable (set in Netlify UI)
        const correctPassword = process.env.SMARTCANE_PASSWORD;

        if (!correctPassword) {
            console.error('SMARTCANE_PASSWORD environment variable not set');
            return {
                statusCode: 500,
                body: JSON.stringify({ error: 'Server configuration error' })
            };
        }

        // Compare passwords
        if (submittedPassword === correctPassword) {
            return {
                statusCode: 200,
                headers: {
                    'Set-Cookie': `auth_token=smartcane_${Date.now()}; Path=/; SameSite=Strict; Secure; HttpOnly`
                },
                body: JSON.stringify({ 
                    success: true,
                    message: 'Login successful'
                })
            };
        } else {
            // Add delay to prevent brute force
            await new Promise(resolve => setTimeout(resolve, 1000));
            
            return {
                statusCode: 401,
                body: JSON.stringify({ error: 'Invalid password' })
            };
        }
    } catch (error) {
        console.error('Login error:', error);
        return {
            statusCode: 500,
            body: JSON.stringify({ error: 'Server error' })
        };
    }
};
