using DXApp.TemplateKitProject.Data;
using DXApp.TemplateKitProject.Models;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.EntityFrameworkCore;

namespace DXApp.TemplateKitProject.Pages.Invoices;

public class IndexModel(AppDbContext db) : PageModel
{
    public List<ZugferdInvoiceListDto> Invoices { get; private set; } = [];

    public async Task OnGetAsync()
    {
        Invoices = await db.ZugferdInvoices
            .OrderByDescending(i => i.ImportedAt)
            .Select(i => new ZugferdInvoiceListDto
            {
                Id = i.Id,
                InvoiceNumber = i.InvoiceNumber,
                InvoiceDate = i.InvoiceDate,
                SellerName = i.SellerName,
                SellerTaxId = i.SellerTaxId,
                BuyerName = i.BuyerName,
                TotalAmount = i.TotalAmount,
                TaxAmount = i.TaxAmount,
                CurrencyCode = i.CurrencyCode,
                Iban = i.Iban,
                ImportedAt = i.ImportedAt,
                SourceType = i.SourceType,
                ResultFilePath = i.ResultFilePath,
                GuidelineId = i.GuidelineId
                // RawXml wird NICHT geladen ? Performance-Optimierung!
            })
            .ToListAsync();
    }
}
