export interface accessTokenInput {
  clientId: string;
  clientSecret: string;
}

// export interface alarmInput {
//   memId: number;
//   usrId: number;
// }

// export interface treatmentInfoAlarmInput {
//   memId: number;
//   usrId: number;
//   oddId: number;
// }

export interface treatmentInfoDto {
  organization: string;
  loginType: string;
  loginTypeLevel: string;
  phoneNo: string;
  authMethod?: string | undefined;
  telecom?: string | undefined;
  timeout?: string | undefined;
  userName: string;
  identity: string;
  startDate: string;
  endDate: string;
  secureNoYN?: string | undefined;
  id: string | undefined;
  type: string | undefined;
  //*추가인증후
  secureNo?: string | undefined;
  secureNoRefresh?: string | undefined;
  smsAuthNo?: string | undefined;
  simpleAuth?: string | undefined;
  is2Way?: boolean | undefined;
  //TODO
  twoWayInfo?:
    | {
        jobIndex: number | undefined;
        threadIndex: number | undefined;
        jti: string | undefined;
        twoWayTimestamp: number | undefined;
      }
    | undefined;
}

//* 심평원 다건요청 - 배열 요소 1건 (기존 단건 파라미터 + 상품 구분자 inquiryType)
//* 공유 인증필드는 전 요소 동일, 2차전용 필드(is2Way/twoWayInfo 등)는 1차 응답의 단일 공유 twoWayInfo를 전 요소에 동일 적용
export interface TreatmentMultipleItemDto extends treatmentInfoDto {
  //* 배열요소 구분자: '0'=기본(진료/상세/처방·투약), '1'=자동차보험 (확장: '2'=내가먹는약)
  inquiryType: string;
  //* 주문 상관키(ordId 등) — inhouse 엔진 로그 조인용. 외부 벤더(codef/coocon 등)는 무시. PII 아님. optional(하위호환)
  traceId?: string;
}

//* 심평원 다건요청 본문 타입 (요청 배열)
export type TreatmentMultipleRequest = TreatmentMultipleItemDto[];

//* 국세청 연말정산간소화(의료비) Codef 요청 파라미터
export interface ntsMedicalInfoDto {
  organization: string;
  loginType: string;
  loginTypeLevel: string;
  phoneNo: string;
  authMethod?: string | undefined;
  telecom?: string | undefined;
  timeout?: string | undefined;
  userName: string;
  identity: string;
  startDate: string;
  endDate: string;
  secureNoYN?: string | undefined;
  id?: string | undefined;
  //* 2차 자료요청 시 사용
  secureNo?: string | undefined;
  secureNoRefresh?: string | undefined;
  smsAuthNo?: string | undefined;
  simpleAuth?: string | undefined;
  is2Way?: boolean | undefined;
  twoWayInfo?:
    | {
        jobIndex: number | undefined;
        threadIndex: number | undefined;
        jti: string | undefined;
        twoWayTimestamp: number | undefined;
      }
    | undefined;
}
