package cn.nianxx.thhotel.workflows.reservation.common.result;

import com.fasterxml.jackson.annotation.JsonProperty;
import java.time.OffsetDateTime;

/**
 * Reservation Invoice 生成结果。只返回生成物定位和金额摘要，不返回完整用户 payload。
 *
 * @param invoiceGenerationId Invoice 生成记录 ID
 * @param generationStatus 生成状态
 * @param sourceType 来源类型
 * @param hotelId 酒店 ID
 * @param templateCode 模板编码
 * @param pdfUrl PDF 访问 URL
 * @param pdfObjectKey PDF OSS 对象 Key
 * @param generatedExcelObjectKey 生成 Excel OSS 对象 Key
 * @param totals 金额摘要
 * @param createdAt 创建 UTC 时间
 */
public record ReservationInvoiceGenerationResult(
        @JsonProperty("invoice_generation_id")
        String invoiceGenerationId,
        @JsonProperty("generation_status")
        String generationStatus,
        @JsonProperty("source_type")
        String sourceType,
        @JsonProperty("hotel_id")
        String hotelId,
        @JsonProperty("template_code")
        String templateCode,
        @JsonProperty("pdf_url")
        String pdfUrl,
        @JsonProperty("pdf_object_key")
        String pdfObjectKey,
        @JsonProperty("generated_excel_object_key")
        String generatedExcelObjectKey,
        ReservationInvoiceTotalsResult totals,
        @JsonProperty("created_at")
        OffsetDateTime createdAt
) {
}
