package com.sf.payment.domain;

import lombok.Data;

import java.util.List;

/**
 * 功能描述:
 * 订阅组中最后生效的订阅状态
 * @author a_kun
 * @date 2024/4/16 15:29
 */
@Data
public class SubscriptionStatus {

    /**
     * 订阅连续购买段的唯一ID，
     * 当用户切换商品不会重置此ID。
     */
    private String subGroupGenerationId;

    /**
     * 订阅连续购买段的唯一ID，
     * 当用户切换订阅商品时
     * 此订阅ID会发生改变。
     */
    private String subscriptionId;

    /**
     * 购买token，
     * 在购买消耗型/非消耗型商品场景中与具体购买订单一一对应，
     * 在自动续期订阅商品场景中与订阅ID一一对应。
     */
    private String purchaseToken;

    /**
     * 订阅状态。
     * •	1：生效状态
     * •	2：已到期
     * •	3：尝试扣费
     * •	5：撤销
     * •	6：暂停
     */
    private Integer status;

    /**
     * 自动续期订阅商品的过期时间，UTC时间戳，以毫秒为单位。
     */
    private Long expiresTime;

    /**
     * 当前订阅最新的一笔购买订单。包含的参数请参见PurchaseOrderPayload。
     */
    private PurchaseOrderPayload lastPurchaseOrder;

    /**
     * 当前订阅最新的购买订单列表，包含续期、延期、折算等产生的购买订单。
     * 购买订单包含的参数请参见PurchaseOrderPayload。
     */
    private List<PurchaseOrderPayload> recentPurchaseOrderList;

    /**
     * 当前订阅最新的未来扣费计划，包含的参数请参见SubRenewalInfo。
     */
    private SubRenewalInfo renewalInfo;


}
