"""
Author: Michel Peltriaux
Created on: 14.12.25

"""
from io import BytesIO

import qrcode
import qrcode.image.svg as svg


class QrCode:
    """ A wrapping class for creating a qr code with content

    """
    _content = None
    _img = None

    def __init__(self, content: str, size: int):
        self._content = content
        self._img = self._generate_qr_code(content, size)

    def _generate_qr_code(self, content: str, size: int = 20) -> str:
        """ Generates a qr code from given content

        Args:
            content (str): The content for the qr code
            size (int): The image size

        Returns:
            qrcode_svg (str): The qr code as svg
        """
        qr = qrcode.QRCode(
            image_factory=qrcode.image.svg.SvgPathImage,
            box_size=size
        )
        qr.add_data(content)
        qr.make(
            fit=True
        )

        img = qr.make_image()
        return img.to_string(encoding="unicode")

    def get_img(self):
        return self._img

    def get_content(self):
        return self._content
