import type { UserUpdateDTO } from "@/types/dto";
import type { IUser } from "@/types/user";

export function convertIUserToUserUpdateDTO(user: IUser): UserUpdateDTO {
  const userUpdateDTO: UserUpdateDTO = {};
  // 遍历IUser对象的属性
  for (const key in user) {
    // 只选取UserUpdateDTO中定义的属性进行赋值
    if (
      key === "userAvatar" ||
      key === "lastLoginTime" ||
      key === "englishName" ||
      key === "gender" ||
      key === "birthday" ||
      key === "phone" ||
      key === "contentEmail"
    ) {
      userUpdateDTO[key] = user[key];
    }
  }
  return userUpdateDTO;
}

/**
 * 处理图片url
 * @param url
 * @returns
 */
export function convertImageUrl(url: string, altText: string): string {
  // 如果url为空，生成一个课程名图片
  if (url === null || url === "" || url === "null") {
    // 创建画布
    const canvas = document.createElement("canvas");
    // 绘制文字环境
    const context = canvas.getContext("2d");
    // 画布宽度
    canvas.width = 400;
    // 画布高度
    canvas.height = 240;
    // 绘制文字之前填充
    context.fillStyle = "#000000";
    context.fillRect(0, 0, canvas.width, canvas.height);
    // 设置水平对齐方式
    context.textAlign = "center";
    // 设置垂直对齐方式
    context.textBaseline = "middle";
    // 设置字体颜色
    context.fillStyle = "#ffffff";
    // 设置字体大小和字体类型
    context.font = "40px Arial";
    // 绘制文字
    context.fillText(altText, canvas.width / 2, canvas.height / 2);
    // 生成图片信息
    return canvas.toDataURL("image/png");
  }

  const index = url.indexOf("?");
  // 截取?之前的字符串
  if (index !== -1) {
    return url.substring(0, index);
  }
  // 否则返回原url
  return url;
}
