package com.yaoai.billing.dto;

import lombok.Builder;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Map;

@Data
@Builder
public class BillingChargeRequest {

    private Long tenantId;

    private Long userId;

    private Long projectId;

    /** outline_generate / episode_generate / image_generate / video_generate / assembly */
    private String operation;

    /** TEXT / IMAGE / VIDEO / AUDIO / COMPOSE */
    private String modality;

    /** volcengine / qwen / openai / ffmpeg */
    private String modelProvider;

    /** 模型唯一 ID */
    private String modelId;

    /** 模型展示名 */
    private String modelName;

    /** 单次操作的单元数 */
    private Integer unitCount;

    /** 是否成功；失败时记 credits=0 */
    private Boolean success;

    /** 显式覆盖 BillingConfig 计算的费用，null 时按 operation 查表 */
    private BigDecimal credits;

    /** 任意元信息：tokenCount / size / duration */
    private Map<String, Object> meta;

    /** task ID / project ID */
    private String refId;
}
