package com.njzscloud.supervisory.doubao.result;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.List;

/**
 * 垃圾分析结果
 */
@Getter
@Setter
@ToString
@Accessors(chain = true)
public class GarbageAnalysisResult {

    /**
     * 车棚是否完全打开
     */
    private Boolean isShedOpened;

    /**
     * 明细：车厢内包含的物品列表，格式：物品1(数量描述),物品2(数量描述)
     * 例如：石块(多),木材(少)
     */
    private String details;

    /**
     * 轻物质占比（百分比，0-100）
     */
    private BigDecimal lightMaterialPercentage;

    /**
     * 重物质占比（百分比，0-100）
     */
    private BigDecimal heavyMaterialPercentage;

    /**
     * 垃圾类型：拆除垃圾、装修垃圾、抛货
     */
    private String garbageType;

    /**
     * 判断依据：说明判断垃圾类型的原因
     */
    private String judgmentBasis;

    /**
     * 分析时间戳
     */
    private Long analysisTime;

    /**
     * 原始响应内容
     */
    private String rawResponse;

    /**
     * 垃圾类型分析列表（保留用于兼容）
     */
    private List<GarbageTypeInfo> garbageTypes;

    /**
     * 总重量（单位：千克）（保留用于兼容）
     */
    private BigDecimal totalWeight;

    /**
     * 垃圾类型信息（保留用于兼容）
     */
    @Getter
    @Setter
    @ToString
    @Accessors(chain = true)
    public static class GarbageTypeInfo {
        /**
         * 垃圾类型名称（如：可回收垃圾、有害垃圾、厨余垃圾、其他垃圾等）
         */
        private String typeName;

        /**
         * 具体垃圾种类（如：塑料瓶、废纸、电池等）
         */
        private String category;

        /**
         * 判断依据（AI识别该垃圾类型的理由）
         */
        private String judgmentBasis;

        /**
         * 占比（百分比，0-100）
         */
        private BigDecimal percentage;

        /**
         * 估算重量（单位：千克）
         */
        private BigDecimal weight;
    }
}

