package cn.nianxx.thhotel.workflows.reservation.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;

/**
 * Reservation AI 接收批次实体。保存一次 SuperAgent 入站请求的幂等和追溯信息。
 */
@TableName("workflow_reservation_ai_batch")
public class ReservationAiBatchEntity {

    /** AI 任务结果接收批次 ID。 */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    /** 酒店或业务上下文 ID。 */
    private String hotelId;
    /** 关联 SourceMessage Inbox ID。 */
    private Long sourceMessageId;
    /** 原始请求体 SHA-256，用于幂等和排查。 */
    private String requestPayloadSha256;
    /** 系统生成的批次幂等键。 */
    private String batchIdempotencyKey;
    /** SuperAgent 调用方客户端 ID。 */
    private String clientId;
    /** 调用方请求 ID，用于日志串联。 */
    private String requestId;
    /** 本系统接收 UTC 时间。 */
    private LocalDateTime receivedAt;
    /** 本批次 AI task result 数量。 */
    private Integer itemCount;
    /** AI 抽取警告 JSON。 */
    private String extractionWarningsJson;
    /** 记录创建 UTC 时间。 */
    private LocalDateTime createdAt;
    /** 记录更新 UTC 时间。 */
    private LocalDateTime updatedAt;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getHotelId() {
        return hotelId;
    }

    public void setHotelId(String hotelId) {
        this.hotelId = hotelId;
    }

    public Long getSourceMessageId() {
        return sourceMessageId;
    }

    public void setSourceMessageId(Long sourceMessageId) {
        this.sourceMessageId = sourceMessageId;
    }

    public String getRequestPayloadSha256() {
        return requestPayloadSha256;
    }

    public void setRequestPayloadSha256(String requestPayloadSha256) {
        this.requestPayloadSha256 = requestPayloadSha256;
    }

    public String getBatchIdempotencyKey() {
        return batchIdempotencyKey;
    }

    public void setBatchIdempotencyKey(String batchIdempotencyKey) {
        this.batchIdempotencyKey = batchIdempotencyKey;
    }

    public String getClientId() {
        return clientId;
    }

    public void setClientId(String clientId) {
        this.clientId = clientId;
    }

    public String getRequestId() {
        return requestId;
    }

    public void setRequestId(String requestId) {
        this.requestId = requestId;
    }

    public LocalDateTime getReceivedAt() {
        return receivedAt;
    }

    public void setReceivedAt(LocalDateTime receivedAt) {
        this.receivedAt = receivedAt;
    }

    public Integer getItemCount() {
        return itemCount;
    }

    public void setItemCount(Integer itemCount) {
        this.itemCount = itemCount;
    }

    public String getExtractionWarningsJson() {
        return extractionWarningsJson;
    }

    public void setExtractionWarningsJson(String extractionWarningsJson) {
        this.extractionWarningsJson = extractionWarningsJson;
    }

    public LocalDateTime getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(LocalDateTime createdAt) {
        this.createdAt = createdAt;
    }

    public LocalDateTime getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(LocalDateTime updatedAt) {
        this.updatedAt = updatedAt;
    }
}
