from abc import ABC, abstractmethod
from dataclasses import dataclass

from vbv_lernwelt.shop.models import CheckoutInformation


@dataclass
class Item:
    product_number: str
    quantity: int
    description: str


class InvoiceCreator(ABC):
    @abstractmethod
    def create_invoice(
        self,
        checkout_information: CheckoutInformation,
        filename: str = None,
    ):
        pass
