package cn.iocoder.yudao.module.system.controller.admin.tenantpoints.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

@Schema(description = "管理后台 - 租户积分记录 Response VO")
@Data
@ExcelIgnoreUnannotated
public class TenantPointsPageRespVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "16587")
    @ExcelProperty("主键")
    private Long id;

    @Schema(description = "本次变动点数，正加负减", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("本次变动点数，正加负减")
    private Integer points;

    @Schema(description = "变动后余额快照（冗余）")
    @ExcelProperty("变动后余额快照（冗余）")
    private Integer balance;

    @Schema(description = "变动类型，", example = "转账")
    @ExcelProperty("变动类型，")
    private String type;

    @Schema(description = "变动描述", example = "转账金额 100")
    @ExcelProperty("变动描述")
    private String description;

    @Schema(description = "订单 Id/业务单号", example = "84")
    @ExcelProperty("订单 Id/业务单号")
    private String orderId;

    @Schema(description = "业务流水号（转账、订单等唯一标识）")
    @ExcelProperty("业务流水号（转账、订单等唯一标识）")
    private String bizNo;

    @Schema(description = "操作人 Id", example = "8171")
    @ExcelProperty("操作人 Id")
    private Long operatorId;

    @Schema(description = "目标租户 Id（转账使用）", example = "18731")
    @ExcelProperty("目标租户 Id（转账使用）")
    private Long targetTenantId;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createdAt;

    @Schema(description = "租户名称", example = "租户 A")
    @ExcelProperty("租户名称")
    private String tenantName;

    @Schema(description = "测试账号数", example = "1")
    @ExcelProperty("测试账号数")
    private Integer testAccountNum;

    @Schema(description = "备注", example = "转账金额：1000")
    @ExcelProperty("备注")
    private String remark;
}