interface BasicResponse {
  id: number;
  disasterType: string;
  disasterLevel: string;
  publishTime: string;
  activeStatus: number;
  pushStatus: number;
}
export interface WarningInfoListResponse extends BasicResponse {
  warningIcon: string;
  warningTime: string;
  warningContent: string;
}

export interface DefenseNoticeListResponse extends BasicResponse {
  noticeTitle: string;
}

interface BasicDetailResponse {
  isPush: boolean;
  userGroupList?: number[];
  createUser: string;
}

export interface WarningInfoDetailResponse
  extends BasicDetailResponse,
    Omit<WarningInfoListResponse, 'activeStatus' | 'pushStatus' | 'publishTime' | 'warningIcon'> {
  source: string;
}

export interface DefenseNoticeAttachment {
  id: number;
  fileName: string;
  fileType: string;
  fileSize: string;
  downloadUrl?: string;
}
export interface DefenseNoticeDetailResponse
  extends BasicDetailResponse,
    Omit<DefenseNoticeListResponse, 'activeStatus' | 'pushStatus' | 'publishTime'> {
  noticeContent: string;
  noticeAttachment: DefenseNoticeAttachment[];
}
