package controller

import (
    "encoding/base64"
    "image"
    "image/color"

    "github.com/skip2/go-qrcode"
)

func GenerateQRCode(data string) (string, error) {
    imgBytes, err := qrcode.Encode(data, qrcode.Medium, 256)
    if err != nil {
        return "", err
    }
    base64Img := base64.StdEncoding.EncodeToString(imgBytes)
    return base64Img, nil
}

// vvv DEPRECATED vvv

const margin = 4

type QRCodeECCLevel int64
const (
    LOW QRCodeECCLevel = iota
    MEDIUM
    QUARTILE
    HIGH
)

func drawLargeAlignmentSquare(x int, y int, img *image.Gray) {
    for yi := range 7 {
        for xi := range 7 {
            if (xi == 0 || xi == 6) || (yi == 0 || yi == 6) {
                img.Set(x + xi, y + yi, color.Black)
            } else if (xi > 1 && xi < 5) && (yi > 1 && yi < 5) {
                img.Set(x + xi, y + yi, color.Black)
            }
        }
    }
}

func drawSmallAlignmentSquare(x int, y int, img *image.Gray) {
    for yi := range 5 {
        for xi := range 5 {
            if (xi == 0 || xi == 4) || (yi == 0 || yi == 4) {
                img.Set(x + xi, y + yi, color.Black)
            }
        }
    }
    img.Set(x + 2, y + 2, color.Black)
}
