import type {
  CustomerAnalysisOverviewDto,
  CustomerAnalysisPeriodFilter,
  CustomerAnalysisSegmentCode,
  CustomerAnalysisSegmentListResultDto,
  CustomerDetailDto,
  CustomerMemberDetailDto,
  CustomerProfileDto,
} from '#/api/customer';

export interface OptionItem {
  label: string;
  value: string;
}

export interface CustomerAnalysisPagePagination {
  page: number;
  pageSize: number;
  total: number;
}

export interface CustomerAnalysisPageState {
  detail: CustomerDetailDto | null;
  isDetailDrawerOpen: boolean;
  isDetailLoading: boolean;
  isExporting: boolean;
  isMemberDrawerOpen: boolean;
  isMemberLoading: boolean;
  isOverviewLoading: boolean;
  isProfileDrawerOpen: boolean;
  isProfileLoading: boolean;
  isSegmentDrawerOpen: boolean;
  isSegmentLoading: boolean;
  memberDetail: CustomerMemberDetailDto | null;
  overview: CustomerAnalysisOverviewDto;
  pagination: CustomerAnalysisPagePagination;
  period: CustomerAnalysisPeriodFilter;
  profile: CustomerProfileDto | null;
  segmentCode: CustomerAnalysisSegmentCode;
  segmentKeyword: string;
  segmentResult: CustomerAnalysisSegmentListResultDto | null;
}
