import { http } from "@/utils/http";

/**
 * 会员标签数据传输对象
 */
export interface MembershipTagDTO {
  /** 主键，自动递增 */
  id?: number;
  /** 企业微信ID */
  corpid?: string;
  /** 标签名称 */
  name?: string;
  /** 标签颜色（十六进制代码） */
  color?: string;
  /** 标签说明 */
  remark?: string;
  /** 状态：0-禁用 1-启用 */
  status?: number;
  /** 创建者ID */
  creatorId?: number;
  /** 创建时间 */
  createTime?: string;
  /** 更新者ID */
  updaterId?: number;
  /** 更新时间 */
  updateTime?: string;
}

/**
 * 会员标签查询参数
 */
export interface MembershipTagQuery extends BasePageQuery {
  /** 企业微信ID */
  corpid?: string;
  /** 标签名称 */
  name?: string;
  /** 状态：0-禁用 1-启用 */
  status?: number;
}

/**
 * 添加会员标签命令
 */
export interface AddMembershipTagCommand {
  /** 企业微信ID */
  corpid?: string;
  /** 标签名称 */
  name: string;
  /** 标签颜色（十六进制代码） */
  color?: string;
  /** 标签说明 */
  remark?: string;
  /** 状态：0-禁用 1-启用 */
  status?: number;
}

/**
 * 更新会员标签命令
 */
export interface UpdateMembershipTagCommand extends AddMembershipTagCommand {
  /** 主键，自动递增 */
  id: number;
}

/**
 * 获取会员标签列表
 */
export const getMembershipTagListApi = (params: MembershipTagQuery) => {
  return http.request<ResponseData<PageDTO<MembershipTagDTO>>>("get", "/membership/tags", { params });
};

/**
 * 获取标签详情
 */
export const getMembershipTagDetailApi = (id: number) => {
  return http.request<ResponseData<MembershipTagDTO>>("get", `/membership/tags/${id}`);
};

/**
 * 添加会员标签
 */
export const addMembershipTagApi = (data: AddMembershipTagCommand) => {
  return http.request<ResponseData<void>>("post", "/membership/tags", { data });
};

/**
 * 更新会员标签
 */
export const updateMembershipTagApi = (id: number, data: UpdateMembershipTagCommand) => {
  return http.request<ResponseData<void>>("put", `/membership/tags/${id}`, { data });
};

/**
 * 删除会员标签
 */
export const deleteMembershipTagApi = (ids: number[]) => {
  return http.request<ResponseData<void>>("delete", `/membership/tags/${ids.join(',')}`);
};
