package com.erp.platformsync.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 订单拉取日志实体
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("order_pull_log")
public class OrderPullLog {

    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 配置ID
     */
    private Long configId;

    /**
     * 配置名称
     */
    private String configName;

    /**
     * 平台编码
     */
    private String platform;

    /**
     * 店铺ID
     */
    private Long shopId;

    /**
     * 拉取类型
     */
    private String pullType;

    /**
     * 触发方式：MANUAL-手动/TRIGGER-触发/SCHEDULED-定时
     */
    private String triggerType;

    /**
     * 执行状态：RUNNING/SUCCESS/FAILED/PARTIAL_SUCCESS
     */
    private String status;

    /**
     * 开始时间
     */
    private LocalDateTime startTime;

    /**
     * 结束时间
     */
    private LocalDateTime endTime;

    /**
     * 执行耗时（毫秒）
     */
    private Long duration;

    /**
     * 拉取订单数量
     */
    private Integer orderCount;

    /**
     * 成功数量
     */
    private Integer successCount;

    /**
     * 失败数量
     */
    private Integer failCount;

    /**
     * 错误信息
     */
    private String errorMsg;

    /**
     * 错误堆栈
     */
    private String errorTrace;

    /**
     * 重试次数
     */
    private Integer retryCount;

    /**
     * 请求参数（JSON）
     */
    private String requestParams;

    /**
     * 响应摘要
     */
    private String responseSummary;

    /**
     * 租户ID
     */
    private String tenantId;

    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createdAt;
}
