package com.jeesharp.business.modules.marketing.memberTenant.vo;

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

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

/**
 * 店铺会员分页查询条件。
 *
 * @author jeesharp
 * @since 2026-06-25
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "店铺会员查询参数")
public class MemberTenantQueryVO extends PaginationVO {

    @Schema(description = "会员ID")
    private String memberId;

    @Schema(description = "会员ID集合（内部：关键词解析后 IN 筛选）")
    private List<String> memberIdIn;

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

    @Schema(description = "绑定状态：0-未绑定 1-已绑定 2-已解绑")
    private Integer bindStatus;

    @Schema(description = "入会来源")
    private String joinSource;

    @Schema(description = "推广渠道编码")
    private String channelCode;

    @Schema(description = "店铺内角色：CUSTOMER/CLERK/MANAGER")
    private String memberRole;

    @Schema(description = "店铺内角色集合（内部 IN 筛选）")
    private List<String> memberRoleIn;

    @Schema(description = "入会开始时间")
    private LocalDateTime joinDateStart;

    @Schema(description = "入会结束时间")
    private LocalDateTime joinDateEnd;
}
