package de.assecutor.pdftool.invoice;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * Unter einem Namen gespeicherte Eingaben der E-Rechnungs-Maske
 * (MongoDB-Collection {@code invoice_drafts}). Ein hochgeladenes PDF wird
 * nicht mitgespeichert, wohl aber der Name des gewählten Templates.
 */
@Document(collection = "invoice_drafts")
public record InvoiceDraft(
        @Id String id,
        @Indexed(unique = true) String name,
        String templateName,
        String invoiceNumber,
        LocalDate issueDate,
        LocalDate deliveryDate,
        LocalDate dueDate,
        String currency,
        String paymentTerms,
        String buyerReference,
        String iban,
        String bic,
        InvoiceMetadata.Party sender,
        InvoiceMetadata.Party recipient,
        List<InvoiceMetadata.LineItem> items,
        LocalDateTime updatedAt
) {
}
