package com.zhongshu.card.server.core.domain.school;

import com.zhongshu.card.client.type.CardCancelState;
import com.zhongshu.card.client.type.school.CardState;
import com.zhongshu.card.client.type.school.CardType;
import com.zhongshu.card.server.core.domain.base.SuperMain;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.checkerframework.common.aliasing.qual.NonLeaked;
import org.springframework.data.mongodb.core.mapping.Document;

/**
 * 园区卡片池数据
 *
 * @author TRX
 * @date 2024/7/30
 */
@Data
@Document
@AllArgsConstructor
@NoArgsConstructor
@NonLeaked
public class CardInfoPool extends SuperMain {

    @Schema(description = "卡片名称")
    private String name;

    @Schema(description = "卡片类型")
    private CardType cardType;

    @Schema(description = "卡片号码,唯一标识, 卡号")
    private String code;

    @Schema(description = "uid是什么")
    private String uid;

    @Schema(description = "是否已使用")
    private Boolean isUsed = Boolean.FALSE;

    @Schema(description = "作废状态")
    private CardCancelState cardCancelState = CardCancelState.Common;

    @Schema(description = "使用绑定时间")
    private Long useTime;

    @Schema(description = "绑定用户userId")
    private String useUserId;

    @Schema(description = "学校oid")
    private String schoolOid;
}
