package com.jeesharp.business.modules.coupon.vo;

import com.jeesharp.framework.pojo.query.PaginationVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;
import java.time.LocalDateTime;

/**
 * 会员优惠券分页查询条件（管理端）。
 *
 * @author jeesharp
 * @since 2026-05-07
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "会员优惠券查询")
public class MemberCouponQueryVO extends PaginationVO {

    @Schema(description = "会员券主键（管理端详情/作废按 ID 精确查）")
    private String id;

    @Schema(description = "会员ID（C 端/内部按会员筛选时使用）")
    private String memberId;

    @Schema(description = "会员关键词：编号/姓名/昵称/手机号")
    private String memberKeyword;

    @Schema(description = "会员ID 列表（内部：由 memberKeyword 解析）", hidden = true)
    private List<String> memberIdIn;

    @Schema(description = "会员编号（精确匹配，管理端建议用 memberKeyword）")
    private String memberNo;

    @Schema(description = "优惠券编码")
    private String couponCode;

    @Schema(description = "券码")
    private String couponSn;

    @Schema(description = "使用状态")
    private Integer status;

    @Schema(description = "领取开始")
    private LocalDateTime getDateStart;

    @Schema(description = "领取结束")
    private LocalDateTime getDateEnd;

    @Schema(description = "使用场景编号（如 STORE_OFFLINE）")
    private String sceneCode;

    @Schema(description = "店铺租户ID（内部精确筛选）", hidden = true)
    private String tenantId;
}
