"""Download response helpers for generated XML export content."""

from __future__ import annotations

from django.http import HttpResponse

from istat.xml_export.models.export_result import IstatXmlExportResult
from istat.xml_export.models.zip_export_result import IstatZipExportResult


def build_xml_download_response(export_result: IstatXmlExportResult) -> HttpResponse:
    """Build an in-memory XML download response."""

    response = HttpResponse(
        export_result.content.encode("utf-8"),
        content_type="application/xml",
    )
    response["Content-Disposition"] = (
        f'attachment; filename="{export_result.filename}"'
    )
    return response


def build_zip_download_response(export_result: IstatZipExportResult) -> HttpResponse:
    """Build an in-memory ZIP download response."""

    response = HttpResponse(
        export_result.content,
        content_type="application/zip",
    )
    response["Content-Disposition"] = (
        f'attachment; filename="{export_result.filename}"'
    )
    return response
