import { DefaulResponsePagination, DefaultRequestPagination } from '@/entities/common/model/types';

export interface SupportParams {
  mid?: string;
};
export interface FaqListParams {
  category?: string;
  searchCl?: SearchCl | null;
  searchValue?: string;
  page?: DefaultRequestPagination;
};
export interface FaqItem {
  cursorId?: number;
  seq?: string;
  category?: string;
  title?: string;
  contents?: string;
};
export interface FaqListResponse extends DefaulResponsePagination {
  content: Array<FaqItem>;
  hasNext: boolean;
  nextCursor: string | null;
};
export interface FaqItemProps extends FaqItem {
  
}
export interface QnaListParams extends SupportParams {
  statusCode?: string;
  page?: DefaultRequestPagination;
};
export interface QnaItem {
  answer?: string;
  answerDate?: string;
  contents?: string;
  corpName?: string | null;
  cursorId?: number;
  requestDate?: string;
  requestName?: string;
  requestType?: string;
  sendEmail?: string | null;
  seq?: string;
  statusCode?: string;
  title?: string;
};
export interface QnaListResponse extends DefaulResponsePagination {
  content: Array<QnaItem>
};
export interface QnaItemProps extends QnaItem {

};
export interface QnaSaveParams extends SupportParams {
  requestType: string;
  requestName: string;
  requestTel: string;
  requestEmail: string;
  title: string;
  contents: string;
};
export interface QnaSaveResponse {
  
};
export interface NoticeListParams extends SupportParams {
  informCl?: InformCl | string;
  searchCl?: SearchCl | null;
  searchKeyword?: string;
  page?: DefaultRequestPagination;
};
export interface NoticeItem {
  seq?: number;
  title?: string;
  informCl?: InformCl | string;
  regDt?: string;
  contents?: string;
};
export interface NoticeListResponse {
  content: Array<NoticeItem>;
  nextCursor: string;
  hasNext: boolean;
};

export enum SearchCl {
  HEAD = 'HEAD',
  BODY = 'BODY',
  ALL = 'ALL',
};
export enum InformCl {
  INTEREST_FREE_INSTALLMENT = 'INTEREST_FREE_INSTALLMENT',
  NEWS = 'NEWS',
  SERVICE_DISRUPTION_NOTICE = 'SERVICE_DISRUPTION_NOTICE',
  MAINTENANCE_NOTICE = 'MAINTENANCE_NOTICE',
  EVENT = 'EVENT',
  SERVICE_CHANGE_OR_ADDITION = 'SERVICE_CHANGE_OR_ADDITION',
  IMPORTANT_NOTICE = 'IMPORTANT_NOTICE',
  ADDITIONAL_SERVICE = 'ADDITIONAL_SERVICE',
  OTHERS = 'OTHERS'
};
export interface NoticeDetailParams {
  seq: number;
};
export interface NoticeDetailResponse extends NoticeItem {
  
};
export interface NoticeItemProps extends NoticeItem {

}