import { ToastButton } from '@ionic/vue';
import { RouteLocationNormalizedLoaded } from 'vue-router';

/**
 * 공통 서비스 인터페이스
 */
export interface ICommonService {
	/**
	 * 모달 오픈
	 *
	 * @param message
	 * @param [named]
	 * @param [duration]
	 * @param [header]
	 * @param [color]
	 * @param [icon]
	 * @param [buttons]
	 * @returns toast
	 */
	openToast(
		message: string,
		named?: Record<string, unknown>,
		duration?: number,
		header?: string,
		color?: IonColorType,
		icon?: string,
		buttons?: (ToastButton | string)[],
		routerPath?: string
	): Promise<any>;

	/**
	 * Changes page
	 *
	 * @param location
	 */
	changePage(location: string): void;
}

/**
 * 로그 타입
 */
export type ConsoleLogType = 'log' | 'debug' | 'error';

/**
 * Console Log data
 */
export interface ConsoleLogVo {
	/** 타입 */
	type?: ConsoleLogType;

	/** 제목 */
	title?: string;

	/** 데이타 */
	datas?: any[];

	/** 간단 내용 */
	text?: string;

	/** 상세보기 */
	showDetail?: boolean;
}

/**
 * 로그 서비스 인터페이스
 */
export interface ILogerService {
	/**
	 * Sets logger
	 *
	 * @param logger
	 */
	setLogger(logger: ILogerService): void;

	/**
	 * Consoles log
	 *
	 * @param type
	 * @param title
	 * @param obj
	 */
	consoleLog(type: ConsoleLogType, title: string, ...obj: any[]): void;

	/**
	 * Changes page
	 *
	 * @param location
	 */
	changePage?(location: string): void;
}

/**
 * Code vo
 *
 * @template T
 */
export interface CodeVo<T = any> {
	/** 라벨 */
	label?: string;

	/** 값 */
	value?: string;

	/** 기타 옵션 */
	options?: T;
}

/**
 * User details vo
 *
 */
export interface UserDetailsVo {
	/** 회원 번호 */
	userId?: string;

	/** 협력사 번호 */
	cmpnCd?: string;

	/** 협력사 명 */
	cmpnNm?: string;

	/** 사업자 번호 */
	corpCd?: string;

	/** 회원명 */
	userNm?: string;

	/** 회원명 영문 */
	userNmEngs?: string;

	/** 로그인 아이디 */
	lginId?: string;

	/** 사번 */
	empNo?: string;

	/** 메일 주소 */
	emlAddr?: string;

	/** 핸드폰 */
	hpNo?: string;

	/** 부서 코드? */
	bsuCd?: string;

	/** 부서 코드 */
	deptCd?: string;

	/** 부서명 */
	deptNm?: string;

	/** 협력사 여부 */
	isAsMember?: boolean;

	/** 협력사 코드 */
	covendId?: string;

	/** 대표 현장 코드 */
	connSiteCd?: string;

	/** 푸시 사용여부 */
	pushUseYn?: string;

	/**
	 * 모바일 접근 권한
	 *
	 * - M : 모바일(임직원) 회의실예약,현장주소록
	 * - A : 모바일(하자관리) 하자작업지시,하자조회및완료처리, 회의실예약, 현장주소록
	 * - C : 모바일(타사임직원) 회의실예약
	 * - X : (권한 미정의) 권한없음
	 * - Z : (협력업체)  하자처리, 하자완료조회
	 */
	authSiteYn?: string;

	/** 푸시 키 */
	pushKey?: string;

	/** 기존 접속자 여부 */
	alreadyUsed?: boolean;
}

/**
 * 암호 규칙
 */
export interface PasswdRuleVo {
	/**
	 * 암호 규칙
	 *
	 * ```
	 * CHK01 - 영문포함
	 * CHK02 - 숫자포함
	 * CHK03 - 영문,숫자포함
	 * CHK04 - 영문,숫자,특수문자 포함
	 * ```
	 */
	pwComplexChk?: string;

	/** 최소 패스워드 길이 체크 (최대16) */
	pwMinLen?: string;

	/** 사용불가 특수문자(필수 : &) */
	pwNotStr?: string;

	/** 기존 암호와 같은 암호 사용 금지 여부 */
	pwSameYn?: string;
}

/**
 * 어플 메뉴
 */
export interface AppMenuVo {
	/** 제목 */
	title?: string;

	/** URL */
	url?: string;

	/** 자식 메뉴 */
	icon?: string;

	/** 자식 메뉴 */
	children?: AppMenuVo[];

	/** 선택여부 */
	selected?: boolean;

	/** 라우트 로케이션 */
	_routeLocation?: RouteLocationNormalizedLoaded;
}

export type LoadStatusType = 'loading' | 'submit' | 'ready' | 'loaded' | 'error' | 'nodata';

/**
 * 컨포넌트 기본 데이타
 */
export interface BaseDataVo<P = {}> {
	/** 제목 */
	title?: string;

	/** 부제목 */
	subTitle?: string;

	/** 로딩 상태 */
	loadStatus?: LoadStatusType;

	/** 키 정보 */
	codeKey?: {
		[key: string]: string;
	};

	params?: P;

	/** 하단 툴바 설정 */
	toolbars?: ToolbarButtonVo[];
}

/**
 * 보기 데이타
 */
export interface ViewDataVo<D, P = {}> extends BaseDataVo<P> {
	/** 내용 보기 */
	dataView: D;
}

/**
 * 작성 데이타
 */
export interface WriteDataVo<D, P = {}> extends BaseDataVo<P> {
	/** 입력 폼 */
	writeModel: D;
}

/**
 * 보기/리스트 데이타
 */
export interface ViewListDataVo<D, L = {}, P = {}> extends ViewDataVo<D, P> {
	/** 목록 리스트 */
	dataList: L[];
}

/**
 * 목록 데이타
 */
export interface ListDataVo<D, S = {}, P = {}> extends BaseDataVo<P> {
	/** 검색 조건 모델 */
	searchModel?: S;

	/** 목록 리스트 */
	dataList: D[];
}

/**
 * 하자) 하자접수처리
 */
export interface TcsDeftVo {
	/** 신청자명 */
	aplntNm?: string;

	/** 신청자 관계 */
	aplntRel?: string;

	/** 사후관리 담당자 핸드폰 */
	asmngChrgrCrryTel?: string;

	/** 사후관리담당자사번 */
	asmngChrgrEmpno?: string;

	/** 사후관리담당자명 */
	asmngChrgrEmpnm?: string;

	/** 회사 코드 */
	cmpnCd?: string;

	/** 시공협력업체id */
	consCovendId?: string;

	/** 시공협력업체명 */
	consCovendNm?: string;

	/** 시공주체코드[cs011] */
	consMnbdCd?: string;

	/** 완료자명 */
	cplprNm?: string;

	/** 완료일자 */
	cpltDt?: string;

	/** 완료 경과 순번 */
	cpltElpsSeq?: string;

	/** 휴대전화번호 */
	crryTelNo?: string;

	/** 하자원인번호 */
	deftCausNo?: string;

	/** 하자원인명 */
	deftCausNm?: string;

	/** 하자내용 */
	deftCn?: string;

	/** 하자사진첨부파일id */
	deftImgAflId?: string;

	/** 하자공종번호 */
	deftJobtypNo?: string;

	/** 하자공종명 */
	deftJobtypNm?: string;

	/** 하자대공종번호 */
	deftLjobtypNo?: string;

	/** 하자대공종명 */
	deftLjobtypNm?: string;

	/** 하자중공종번호 */
	deftMjobtypNo?: string;

	/** 하자중공종명 */
	deftMjobtypNm?: string;

	/** 하자번호 */
	deftNo?: string;

	/** 하자처리상태코드[cs009] */
	deftPrcgStusCd?: string;

	/** 하자처리상태명[cs009] */
	deftPrcgStusNm?: string;

	/** 하자유형번호 */
	deftTypeNo?: string;

	/** 하자유형명 */
	deftTypeNm?: string;

	/** 동 */
	dong?: string;

	/** 동/호수 */
	dongHsno?: string;

	/** 소요일수 */
	duraDys?: string;

	/** 긴급 구분코드[cs020] */
	emgGbCd?: string;

	/** 긴급 구분명[cs020] */
	emgGbNm?: string;

	/** 호수 */
	hsno?: string;

	/** 위치번호 */
	locNo?: string;

	/** 하자위치명 */
	locNm?: string;

	/** 모바일내용확인여부 */
	mbilCnConfYn?: string;

	/** 모바일처리내용 */
	mbilPrcgCn?: string;

	/** 수정 일자 */
	mdftDt?: string;

	/** 수정 자 */
	mdftPr?: string;

	/** 신청 일자 */
	offrDt?: string;

	/** 처리자명 */
	pgprNm?: string;

	/** 처리첨부파일id */
	prcgAflId?: string;

	/** 처리내용 */
	prcgCn?: string;

	/** 처리협력업체id */
	prcgCovendId?: string;

	/** 처리일자 */
	prcgDt?: string;

	/** 처리 경과 순번 */
	prcgElpsSeq?: string;

	/** 처리주체코드[cs011] */
	prcgMnbdCd?: string;

	/** 접수일자 */
	rcptDt?: string;

	/** 접수방법코드[cs010] */
	rcptMtdCd?: string;

	/** 접수자 사원번호 */
	rcvprEmpno?: string;

	/** 접수자명 */
	rcvprNm?: string;

	/** 요청내용 */
	reqCn?: string;

	/** 신속도점수 */
	rpdtScor?: string;

	/** 현장코드 */
	siteCd?: string;

	/** 현장명 */
	siteNm?: string;

	/** 전화번호 */
	telNo?: string;

	/** 상위위치번호 */
	upperLocNo?: string;

	/** 업체 담당자 핸드폰 */
	vendrLbprCrryTel?: string;

	/** 업체 담당자 메일 */
	vendrLbprMail?: string;

	/** 업체작업자명 */
	vendrLbprNm?: string;

	/** 업체작업자 일련번호 */
	vendrLbprSeq?: string;

	/** 업체작업자 푸시알림여부 */
	vendrLbprPushYn?: string;

	/** 방문 경과 순번 */
	visElpsSeq?: string;

	/** 작업 경과 순번 */
	workElpsSeq?: string;

	/** 작업지시서번호 */
	workWkiNo?: string;

	/** 작업지시 PUSH 전송 여부 */
	workWkiPushYn?: string;

	/** 작업지시 SMS 전송 여부 */
	workWkiSmsYn?: string;

	/** 작성 일자 */
	wrteDt?: string;

	/** 작성 자 */
	wrtePr?: string;

	/** 작업지시 문자 제목 */
	smsTitle?: string;

	/** 작업지시 문자 내용 */
	smsContents?: string;
}

/**
 * 현장 주소록
 */
export interface ZehrSiteAddressVo {
	/** 신청자명 */
	cmpnCd?: string;

	/** 본부 */
	deptGroupCd?: string;

	/** 현장명 */
	siteNm?: string;

	/** 공사기간 from */
	constPrdFromDt?: string;

	/** 공사기간 to */
	constPrdToDt?: string;

	/** 발주처 */
	constCorp?: string;

	/** PM */
	manager1?: string;

	/** CM */
	manager2?: string;

	/** PE */
	manager3?: string;

	/** 공무 */
	manager4?: string;

	/** 현장관리자 */
	manager5?: string;

	/** 주소(사무실) */
	officeAddress?: string;

	/** 현장주소 */
	fieldAddress?: string;

	/** 위도 */
	latitude?: number;

	/** 경도 */
	longtude?: number;

	/** 연락처 */
	contactNumber?: string;

	/** 주관사 여부 */
	organizerYn?: string;

	/** 구분 */
	gbNm?: string;

	/** 비고 */
	memo?: string;
}

/**
 * 하자) 하자접수처리 통계
 */
export interface TcsDeftStatusVo {
	/** 신청 */
	statusA?: number;

	/** 접수 */
	statusB?: number;

	/** 재하자 */
	statusC?: number;

	/** 작업완료 */
	statusD?: number;

	/** 최종완료 */
	statusZ?: number;

	/** 반려 */
	statusX?: number;

	/** 긴급 */
	emgGbA?: number;

	/** 상(중요) */
	emgGbB?: number;

	/** 중(보통) */
	emgGbC?: number;

	/** 하(일반) */
	emgGbD?: number;

	/** 기타 */
	emgGbE?: number;

	/** 완료율 (마무리된 건수 / 총 건수 * 100) */
	chartRate?: number;

	/** 접수 건수 */
	statusRecv?: number;

	/** 총 건수 */
	statusTotal?: number;

	/** 마무리된 건수  (작업완료 + 최종완료 + 반려) */
	statusClose?: number;

	/** 작업완료 건수 */
	statusDone?: number;

	/** 미처리 건수 (신청 + 접수 + 재하자) */
	statusUnDone?: number;

	/** 최종완료 건수 */
	statusEnd?: number;
}

/**
 * 하자) 하자처리경과
 */
export interface TcsDeftElpsVo {
	/** 회사 코드 */
	cmpnCd?: string;

	/** 하자번호 */
	deftNo?: string;

	/** 하자처리구분코드[cs013] */
	deftPrcgGbCd?: string;

	/** 하자처리구분명 */
	deftPrcgGbNm?: string;

	/** 메일 내용 */
	mailCn?: string;

	/** 수정 일자 */
	mdftDt?: string;

	/** 수정 자 */
	mdftPr?: string;

	/** 처리자 구분코드[cs016] */
	pgprGbCd?: string;

	/** 처리자 구분명 */
	pgprGbNm?: string;

	/** 처리자 명 */
	pgprNm?: string;

	/** 처리 비용 */
	prcgAmt?: string;

	/** 처리경과순번 */
	prcgElpsSeq?: string;

	/** 처리예정종료일자 */
	prcgPrEndDt?: string;

	/** 처리예정종료시간to */
	prcgPrEndTm?: string;

	/** 처리예정시작일자 */
	prcgPrStrtDt?: string;

	/** 처리예정시작시간from */
	prcgPrStrtTm?: string;

	/** 처리예정시작시간from to*/
	prcgPrStrtEndTm?: string;

	/** 처리유형코드[cs012] */
	prcgTypeCd?: string;

	/** 처리유형명 */
	prcgTypeNm?: string;

	/** 비고내용 */
	rmkCn?: string;

	/** 작성 일자 */
	wrteDt?: string;

	/** 작성 자 */
	wrtePr?: string;
}

/**
 * 하자) 협력업체 정보
 */
export interface SmComCovendVo {
	/** 주소 */
	addr?: string;

	/** 주소 상세 */
	addrDtl?: string;

	/** 첨부파일ID */
	aflId?: string;

	/** AS대표공종명 */
	asRpstJobtypNm?: string;

	/** 업태 */
	bizcdNm?: string;

	/** 업종 */
	biztpNm?: string;

	/** 거래취소일시 */
	canDt?: string;

	/** 폐업_일자 */
	clseDt?: string;

	/** 회사 코드 */
	cmpnCd?: string;

	/** 법인번호 */
	coprNo?: string;

	/** 업체명영문 */
	corpEng?: string;

	/** FAX번호 */
	corpFax?: string;

	/** 사업자구분코드[CS023] */
	corpGbCd?: string;

	/** 업체명한글 */
	corpKor?: string;

	/** 사업자등록번호 */
	corpRegNo?: string;

	/** 회사규모 */
	corpScale?: string;

	/** 전화번호 */
	corpTel?: string;

	/** 협력업체 ID */
	covendId?: string;

	/** 협력업체 상태 구분코드 */
	covendStatusGbCd?: string;

	/** 생성주체 */
	crtMnbd?: string;

	/** 설립일자 */
	estaDate?: string;

	/** 본사 사업자번호 */
	headCorpRegNo?: string;

	/** 홈페이지URL */
	hmpgUrl?: string;

	/** 수정 일자 */
	mdftDt?: string;

	/** 수정 자 */
	mdftPr?: string;

	/** 우편번호 */
	postNo?: string;

	/** 대표자명 */
	reprNm?: string;

	/** 비고 */
	rmkCn?: string;

	/** 과세유형코드 */
	taxnTypeCd?: string;

	/** 작성 일자 */
	wrteDt?: string;

	/** 작성 자 */
	wrtePr?: string;

	/** 현장코드 */
	siteCd?: string;

	/** 시공주체코드 */
	corpTypCd?: string;

	/** 시공주체명 */
	corpTypNm?: string;

	/** 계약 명 */
	contNm?: string;

	/** 협력업체유형코드[CS004] */
	jobGbCd?: string;

	/** 협력업체유형명 */
	jobGbNm?: string;
}

/**
 * 협력업체_담당자정보
 */
export interface SmComCovendChrgrVo {
	/** 담당자 일련번호 */
	chargeSeq?: string;

	/** 담당자 유형코드 */
	chrgrTypeCd?: string;

	/** 회사 코드 */
	cmpnCd?: string;

	/** 협력업체 ID */
	covendId?: string;

	/** 생성주체 */
	crtMnbd?: string;

	/** 부서명 */
	division?: string;

	/** 이메일 */
	email?: string;

	/** 팩스 */
	faxNum?: string;

	/** 최종접속 현장코드 */
	fnlConnSiteCd?: string;

	/** 휴대폰 */
	hpNo?: string;

	/** 수정 일자 */
	mdftDt?: string;

	/** 수정 자 */
	mdftPr?: string;

	/** 비밀번호 */
	passwd?: string;

	/** 직위명 */
	position?: string;

	/** 비밀번호 만료일자 */
	pswdEddt?: string;

	/** 비밀번호 실패건수 */
	pswdFailCnt?: string;

	/** 비밀번호 실패일자 */
	pswdFailDt?: string;

	/** 알림 사용 여부 */
	pushUseYn?: string;

	/** 전화번호 */
	telNum?: string;

	/** 로그인ID */
	userId?: string;

	/** 담당자명 */
	userName?: string;

	/** 사용 유효 일자 */
	useValdDt?: string;

	/** 사용여부 */
	useYn?: string;

	/** 작성 일자 */
	wrteDt?: string;

	/** 작성 자 */
	wrtePr?: string;
}

/**
 * 이미지 썸네일
 */
export interface ImageThumbnailVo {
	/** 가로크기 */
	width?: number;

	/** 세로크기 */
	height?: number;

	/** 이미지 형태 */
	imageType?: string;

	/** 쎔네일 이미지 Base64 Encoded */
	imageSrc?: string;
}

/**
 * 첨부파일
 */
export interface FileBucketVo {
	/** 파일아이디 */
	id?: string;

	/** 파일번호 */
	backNumber?: number;

	/** 원본파일명 */
	originalFilename?: string;

	/** 파일사이즈 */
	fileSize?: number;

	/** 삭제여부 */
	deleted?: string;

	/** 선택여부 */
	selected?: boolean;

	/** 이미지 썸네일 */
	thumbnail?: ImageThumbnailVo;
}

/**
 * 회의실 위치 정보
 */
export interface RoomLocationVo {
	/**  회의실 위치 명 */
	mrLocation?: string;

	/**  회의실 위치 아이디 */
	locationId?: number;

	/**  하부 회의실 정보 */
	children?: RoomInfoVo[];
}

/**
 * 회의실 정보
 */
export interface RoomInfoVo {
	/**  가용인원 */
	admittedNum?: number;

	/**  첨부파일 아이디 */
	atchfileId?: string;

	/**  회의실 위치 명 */
	bigo?: string;

	/**  회의실 위치 명 */
	bunho?: string;

	/**  회의실 위치 명 */
	equipment?: string;

	/**  회의실 위치 명 */
	locationId?: number;

	/**  회의실 위치 아이디 */
	meetingroomId?: number;

	/**  연락처 */
	tel?: string;

	/**  위치 정보 */
	roomLocation?: RoomLocationVo;

	/**  일자 예약 정보 */
	dayInfo?: RoomDayInfoVo;

	/**  일자 예약 정보 */
	dayCells?: RoomDayCellVo[];
}

/**
 * 회의실 예약 셀정보
 */
export interface RoomDayCellVo {
	/**  회의실 위치 명 */
	color?: string;

	/**  회의실 위치 명 */
	text?: string;

	/**  셀 병합 */
	colspan?: number;

	/**  예약번호 */
	reservationId?: string;
}

/**
 * App Conf
 */
export interface AppConfVo {
	/**  어플 형태 */
	appType: 'portal' | 'as';

	/**  어플 이름 */
	appName: string;

	/**  어플 Install Type */
	installType: string;

	/**  로그 보이기 */
	showLogger: boolean;

	/** 모바일 접근 권한
	 *
	 * - M 모바일(임직원)   : 회의실예약,현장주소록
	 * - A 모바일(하자관리)  : 하자작업지시,하자조회및완료처리, 회의실예약, 현장주소록
	 * - C 모바일(타사임직원) : 회의실예약
	 * - X (권한 미정의)
	 * - Z (협력업체)
	 */
	authType: string;

	/** 모바일 접근 권한
	 *
	 * - defting  - 협력업체
	 * - deftdone - 협력업체
	 * - deftmang - 하자작업지시
	 * - deftque - 하자조회및완료처리
	 * - roomrev - 회의실예약
	 * - roomapp -  회의실예약 승인
	 * - address - 현장주소록
	 */
	authMenu: string[];

	/**  로그인 정보 */
	loginInfo: UserDetailsVo;

	/**  프로세스 환경 정보 */
	processEnv?: {
		NODE_ENV: 'production' | 'development';
		VUE_APP_TYPE: 'as' | 'portal' | 'auto';
		BASE_URL: string;
		VUE_APP_API_KEY: string;
		VUE_APP_AUTH_DOMAIN: string;
		VUE_APP_PROJECT_ID: string;
		VUE_APP_STORAGE_BUCKET: string;
		VUE_APP_MESSAGING_SENDER_ID: string;
		VUE_APP_ID: string;
		VUE_APP_MEASUREMENT_ID: string;
		VUE_APP_VAPID_KEY: string;
	};

	/**  홈스크린 활성화 가능 */
	deferredPrompt: any;

	/**  홈스크린에 추가하기 */
	addHomeScreen: () => void;
}

/**
 * 회의실 예약 정보
 */
export interface RoomDayInfoVo {
	/**  회의실 위치 명 */
	bunho?: string;

	/**  회의실 위치 아이디 */
	meetingroomId?: number;

	/**  회의실 위치 명 */
	mrLocation?: string;

	/**  예약일자 */
	reYyyymmdd?: string;

	/** 회의실 예약 번호 07시 00분*/
	idt070?: string;

	/** 회의실 예약 번호 07시 30분*/
	idt073?: string;

	/** 회의실 예약 번호 08시 00분*/
	idt080?: string;

	/** 회의실 예약 번호 08시 30분*/
	idt083?: string;

	/** 회의실 예약 번호 09시 00분*/
	idt090?: string;

	/** 회의실 예약 번호 09시 30분*/
	idt093?: string;

	/** 회의실 예약 번호 10시 00분*/
	idt100?: string;

	/** 회의실 예약 번호 10시 30분*/
	idt103?: string;

	/** 회의실 예약 번호 11시 00분*/
	idt110?: string;

	/** 회의실 예약 번호 11시 30분*/
	idt113?: string;

	/** 회의실 예약 번호 12시 00분*/
	idt120?: string;

	/** 회의실 예약 번호 12시 30분*/
	idt123?: string;

	/** 회의실 예약 번호 13시 00분*/
	idt130?: string;

	/** 회의실 예약 번호 13시 30분*/
	idt133?: string;

	/** 회의실 예약 번호 14시 00분*/
	idt140?: string;

	/** 회의실 예약 번호 14시 30분*/
	idt143?: string;

	/** 회의실 예약 번호 15시 00분*/
	idt150?: string;

	/** 회의실 예약 번호 15시 30분*/
	idt153?: string;

	/** 회의실 예약 번호 16시 00분*/
	idt160?: string;

	/** 회의실 예약 번호 16시 30분*/
	idt163?: string;

	/** 회의실 예약 번호 17시 00분*/
	idt170?: string;

	/** 회의실 예약 번호 17시 30분*/
	idt173?: string;

	/** 회의실 예약 번호 18시 00분*/
	idt180?: string;

	/** 회의실 예약 번호 18시 30분*/
	idt183?: string;

	/** 회의실 예약 번호 19시 00분*/
	idt190?: string;

	/** 회의실 예약 번호 19시 30분*/
	idt193?: string;

	/** 회의실 예약 번호 20시 00분*/
	idt200?: string;

	/** 회의실 예약 번호 20시 30분*/
	idt203?: string;

	/** 회의실 예약 번호 21시 00분*/
	idt210?: string;

	/** 회의실 예약 번호 21시 30분*/
	idt213?: string;

	/** 회의실 예약 번호 22시 00분*/
	idt220?: string;

	/** 회의실 예약 번호 22시 30분*/
	idt223?: string;

	/** 회의실 예약 명 07시 00분*/
	t070?: string;

	/** 회의실 예약 명 07시 30분*/
	t073?: string;

	/** 회의실 예약 명 08시 00분*/
	t080?: string;

	/** 회의실 예약 명 08시 30분*/
	t083?: string;

	/** 회의실 예약 명 09시 00분*/
	t090?: string;

	/** 회의실 예약 명 09시 30분*/
	t093?: string;

	/** 회의실 예약 명 10시 00분*/
	t100?: string;

	/** 회의실 예약 명 10시 30분*/
	t103?: string;

	/** 회의실 예약 명 11시 00분*/
	t110?: string;

	/** 회의실 예약 명 11시 30분*/
	t113?: string;

	/** 회의실 예약 명 12시 00분*/
	t120?: string;

	/** 회의실 예약 명 12시 30분*/
	t123?: string;

	/** 회의실 예약 명 13시 00분*/
	t130?: string;

	/** 회의실 예약 명 13시 30분*/
	t133?: string;

	/** 회의실 예약 명 14시 00분*/
	t140?: string;

	/** 회의실 예약 명 14시 30분*/
	t143?: string;

	/** 회의실 예약 명 15시 00분*/
	t150?: string;

	/** 회의실 예약 명 15시 30분*/
	t153?: string;

	/** 회의실 예약 명 16시 00분*/
	t160?: string;

	/** 회의실 예약 명 16시 30분*/
	t163?: string;

	/** 회의실 예약 명 17시 00분*/
	t170?: string;

	/** 회의실 예약 명 17시 30분*/
	t173?: string;

	/** 회의실 예약 명 18시 00분*/
	t180?: string;

	/** 회의실 예약 명 18시 30분*/
	t183?: string;

	/** 회의실 예약 명 19시 00분*/
	t190?: string;

	/** 회의실 예약 명 19시 30분*/
	t193?: string;

	/** 회의실 예약 명 20시 00분*/
	t200?: string;

	/** 회의실 예약 명 20시 30분*/
	t203?: string;

	/** 회의실 예약 명 21시 00분*/
	t210?: string;

	/** 회의실 예약 명 21시 30분*/
	t213?: string;

	/** 회의실 예약 명 22시 00분*/
	t220?: string;

	/** 회의실 예약 명 22시 30분*/
	t223?: string;
}

/**
 * 회의실 예약 정보
 */
export interface RoomRemInfoVo {
	/** 참여 인원 */
	attendNum?: number;

	/**  회의실 위치 명 */
	bunho?: string;

	/**  회의실 위치 아이디 */
	meetingroomId?: number;

	/**  예약번호 */
	reservationId?: number;

	/**  부서코드 */
	deptCd?: string;

	/**  부서명 */
	deptName?: string;

	/**  사용본부코드 */
	usePdeptCd?: string;

	/**  사용본부명 */
	usePdeptNm?: string;

	/**  예약 종료시간 */
	endHhmm?: string;

	/**  예약 종료일자 */
	endYyyymmdd?: string;

	/**  예약 구분 */
	gubun?: string;

	/**  예약 구분명 */
	gubunNm?: string;

	/**  열쇠 사용여부 */
	keyYn?: string;

	/**  열쇠 지급여부 */
	keysendYn?: string;

	/**  위치명 */
	locationNm?: string;

	/**  회의 내용 */
	meetingCon?: string;

	/**  회의 제목 */
	meetingName?: string;

	/**  회의 제목 */
	reName?: string;

	/**  예약시간 범위 */
	phm?: string;

	/**  연락처 */
	phone?: string;

	/**  예약 일자 범위 */
	pymd?: string;

	/**  사용 후기 */
	remark?: string;

	/**  회의 내용 */
	recon?: string;

	/**  예약 시작시간 */
	startHhmm?: string;

	/**  예약 시작일자 */
	startYyyymmdd?: string;

	/**  상태 */
	status?: string;

	/**  상태명 */
	statusNm?: string;

	/**  예약자 명 */
	subscName?: string;

	/**  예약자 명 */
	snm?: string;

	/**  예약자 사원번호 */
	subscSabun?: string;

	/**  반복조건 */
	week?: string;

	weekList?: string[];

	/**  요일 금 */
	weekFr?: string;

	/**  요일 월 */
	weekMu?: string;

	/**  요일 목 */
	weekTh?: string;

	/**  요일 화 */
	weekTu?: string;

	/**  요일 수 */
	weekWe?: string;

	/**  취소 가능여부 */
	cancelYn?: string;

	/**  취소 불가사유 */
	cancelCn?: string;

	/**  예약종료 가능여부 */
	closeYn?: string;

	/** 예약종료 불가사유 */
	closeCn?: string;

	/** 나의 예약 여부 */
	myRomResrv?: boolean;
}

/**
 * 기본 색상 테마
 */
export type IonColorType = 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger' | 'light' | 'medium' | 'dark';

/**
 * 툴바 버튼 정보
 */
export interface ToolbarButtonVo {
	/** 버튼 색상 */
	color?: IonColorType;

	/** 버튼 라벨 */
	label?: string;

	/** 아이디 */
	id?: string;

	/** 사용불가여부 */
	disabled?: boolean;

	/** 숨김여부 */
	hide?: boolean;

	/** 아이콘 */
	icon?: any;

	role?: 'submit' | 'button' | 'delete';

	/** 클릭시 이벤트 */
	click?: () => void;

	[key: string]: any;
}
