import { 
	NoticeListParams, 
	NoticeListResponse 
} from '@/entities/support/model/types';

export interface HomeBottomBannerProps {
	setBottomBannerOn: (bottomBannerOn: boolean) => void;
	bottomBannerOn: boolean;
	bannerList: Array<BannerList>;
};
export interface AuthRegisterProps {
	setAuthRegisterOn: (authRegisterOn: boolean) => void;
	authRegisterOn: boolean;
};

export interface HomeCommonParams {
	mid?: string;
	searchDate?: string;
};
export interface HomeTodayParams extends HomeCommonParams {};
export interface HomeTodayResponse {
	sales: Sales,
	settlement: Settlement
};
export interface Sales {
	todayTotalAmount?: number;
	yesterdayTotalAmount?: number;
	totalCount?: number;
	cancelCount?: number;
	currentMonthAmount?: number;
	previousMonthAmount?: number;
};
export interface Settlement {
	todaySettlementAmount: number;
	totalCreditLimit: number;
	availableCredit: number;
	currentMonthSettlementAmount?: number;
	previousMonthSettlementAmount?: number;
};
export interface HomeOverviewParams extends HomeCommonParams {};
export interface HomeOverviewResponse {
	averageTransactionAmount: number;
	dailyAverageSales: number;
	dailyAverageCount: number;
	topSalesDayInfo: TopSalesDayInfo;
	topSalesTimeInfo: TopSalesTimeInfo;
	topPaymentMethodInfo: TopPaymentMethodInfo;
};
export interface TopSalesDayInfo {
	daySalesRatios: Array<DaySalesRatios>;
};
export interface TopSalesTimeInfo {
	timeSalesRatios: Array<TimeSalesRatios>;
};
export interface TopPaymentMethodInfo {
	paymentMethodRatios: Array<PaymentMethodRatios>;
};
export interface DaySalesRatios {
	dayOfWeek: string;
	ratio: number;
};
export interface TimeSalesRatios {
	hour: string;
	ratio: number;
};
export interface PaymentMethodRatios {
	paymentMethod: string;
	ratio: number;
};
export interface HomeNoticeListParams extends NoticeListParams {};
export interface HomeNoticeListResponse extends NoticeListResponse {};
export interface HomeMonthParams extends HomeCommonParams {};
export interface HomeMonthResponse {
	sales: Sales;
	settlement: Settlement;
};
export interface HomeGroupsParams {
	userid?: string;
};
export interface HomeGroupsResponse {
	mids: Array<string>;
};

export enum BannerType {
	MAIN = 'MAIN',
	BOTTOM = 'BOTTOM'
};
export interface HomeBannerListParams {
	bannerType: BannerType;
};
export interface HomeBannerListResponse {
	bannerList: Array<BannerList>
};
export interface BannerList {
	title?: string;
	imageUrl?: string;
	linkUrl?: string;
	order?: number;
};