// 公告类型枚举（对应后端 AnnouncementTypeEnum）
export enum AnnouncementTypeEnum {
  Activity = 1,
  System = 2,
}

// 公告类型（兼容旧代码）
export type AnnouncementType = 'Activity' | 'System'

// 公告DTO（对应后端 AnnouncementLogDto）
export interface AnnouncementLogDto {
  /** 标题 */
  title: string
  /** 内容列表 */
  content: string[]
  /** 图片url */
  imageUrl?: string | null
  /** 开始时间（系统公告时间、活动开始时间） */
  startTime: string
  /** 活动结束时间 */
  endTime?: string | null
  /** 公告类型（系统、活动） */
  type: AnnouncementType
}

// ==================== 后台管理用 DTO ====================

// 公告 DTO（后台管理列表）
export interface AnnouncementDto {
  id: string;
  title: string;
  content: string[];
  remark?: string;
  imageUrl?: string;
  startTime: string;
  endTime?: string;
  type: AnnouncementTypeEnum;
  url?: string;
  creationTime: string;
}

// 创建公告输入
export interface AnnouncementCreateInput {
  title: string;
  content: string[];
  remark?: string;
  imageUrl?: string;
  startTime: string;
  endTime?: string;
  type: AnnouncementTypeEnum;
  url?: string;
}

// 更新公告输入
export interface AnnouncementUpdateInput {
  id: string;
  title: string;
  content: string[];
  remark?: string;
  imageUrl?: string;
  startTime: string;
  endTime?: string;
  type: AnnouncementTypeEnum;
  url?: string;
}

// 获取公告列表输入
export interface AnnouncementGetListInput {
  searchKey?: string;
  skipCount?: number;
  maxResultCount?: number;
  type?: AnnouncementTypeEnum;
}

// 分页结果
export interface PagedResultDto<T> {
  items: T[];
  totalCount: number;
}
