package handlers

import (
	"crypto/rand"
	"encoding/base64"
	"errors"
	"fmt"
)

const (
	csrfTokenCookie    = "__Csrf_token"
	sessionTokenCookie = "__Session_token"
)

var (
	ErrorUnauthorized = errors.New("unauthorized")
)

func validateLoginAndPassword(login, password string) error {
	if len(login) < 4 {
		return fmt.Errorf("login must be longer than 8 chars")
	}

	if len(password) < 6 {
		return fmt.Errorf("password must be longer than 8 chars")
	}

	return nil
}

func generateSessionToken(length int) (string, error) {
	bytes := make([]byte, length)
	if _, err := rand.Read(bytes); err != nil {
		return "", fmt.Errorf("failed to generate token: %w", err)
	}
	return base64.URLEncoding.EncodeToString(bytes), nil
}
