
export enum LoadStatus {
	NOT_LOADED,
	LOADING,
	LOADED
}

export type MsgBoxType = "clear"|"error"|"success";

export type TargetMode = "default" | "custom";
export const isTargetMode = (elem:any): elem is TargetMode => {
	if (["default", "custom"].includes(elem)) return true;
	return false;
}

export type TargetData = {
	board_id:number;
	workflow_id:number;
	column_id:number;
	lane_id:number;
	owner_id:number|null;
	priority_id:number; // Not using "|null" because it defaults to 3 (average)
}

export const isTargetData = (element:object): element is TargetData => {
	const requiredKeys = ["board_id", "workflow_id", "column_id", "lane_id", "owner_id", "priority_id"]
	for (const key of requiredKeys) {
		if (!element.hasOwnProperty(key)) return false;
	}
	return true;
}

export type MailData = {
	title: string;
	description: string;
	reporter_email: string;
}

export type BsmapFormProps = {
	submitType: "setDefault" | "createCard"
};