import type { PageParam } from '@/api';

/**
 * 分销商海报设置
 */
export interface ShopDealerPoster {
  // 主键ID
  id?: number;
  // 海报名称
  name?: string;
  // 背景图片URL
  backgroundImage?: string;
  // 海报配置(JSON格式)
  config?: string;
  // 是否启用
  enabled?: boolean;
  // 是否默认
  isDefault?: boolean;
  // 排序
  sort?: number;
  // 商城ID
  tenantId?: number;
  // 创建时间
  createTime?: string | Date;
  // 修改时间
  updateTime?: string | Date;
}

/**
 * 海报配置
 */
export interface PosterConfig {
  // 背景图片
  backgroundImage?: string;
  // 海报尺寸
  width?: number;
  height?: number;
  // 是否显示头像
  showAvatar?: boolean;
  // 头像URL
  avatarUrl?: string;
  // 头像宽度
  avatarWidth?: number;
  // 头像形状 circle|square
  avatarShape?: string;
  // 是否显示昵称
  showNickname?: boolean;
  // 昵称
  nickname?: string;
  // 昵称字体大小
  nicknameFontSize?: number;
  // 昵称颜色
  nicknameColor?: string;
  // 是否显示二维码
  showQrcode?: boolean;
  // 二维码URL
  qrcodeUrl?: string;
  // 二维码宽度
  qrcodeWidth?: number;
  // 元素位置配置
  elements?: {
    avatar?: { x: number; y: number };
    nickname?: { x: number; y: number };
    qrcode?: { x: number; y: number };
    [key: string]: { x: number; y: number } | undefined;
  };
}

/**
 * 分销商海报设置搜索条件
 */
export interface ShopDealerPosterParam extends PageParam {
  id?: number;
  name?: string;
  enabled?: boolean;
  keywords?: string;
}

/**
 * 海报生成参数
 */
export interface PosterGenerateParam {
  // 用户ID
  userId: number;
  // 海报配置
  config?: PosterConfig;
  // 用户信息
  userInfo?: {
    nickname?: string;
    avatar?: string;
    qrcode?: string;
  };
}
