package org.dromara.mall.statistics.domain.vo;

import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

/**
 * 会员统计视图对象
 *
 * @author pengles
 */
@Data
public class MemberStatisticsVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 总会员数
     */
    private Long totalMemberCount;

    /**
     * 今日新增会员数
     */
    private Long todayNewMemberCount;

    /**
     * 活跃会员数（有订单的会员）
     */
    private Long activeMemberCount;

    /**
     * 会员增长趋势
     */
    private List<DailyMemberGrowthVo> growthTrend;

    /**
     * 会员消费统计
     */
    private List<MemberConsumptionVo> consumptionStats;

    /**
     * 每日会员增长
     */
    @Data
    public static class DailyMemberGrowthVo implements Serializable {
        @Serial
        private static final long serialVersionUID = 1L;

        /**
         * 日期
         */
        private String date;

        /**
         * 新增会员数
         */
        private Long newMemberCount;
    }

    /**
     * 会员消费统计
     */
    @Data
    public static class MemberConsumptionVo implements Serializable {
        @Serial
        private static final long serialVersionUID = 1L;

        /**
         * 用户ID
         */
        private Long userId;

        /**
         * 订单数
         */
        private Integer orderCount;

        /**
         * 消费金额（分）
         */
        private Long consumptionAmount;
    }

}
