import type { OptionItem } from '../../types';

import type { CustomerListStatsDto } from '#/api/customer';
import type { CustomerFilterState } from '#/views/customer/list/types';

/**
 * 文件职责：客户列表页常量与默认值。
 */

/** 客户列表查看权限。 */
export const CUSTOMER_LIST_VIEW_PERMISSION = 'tenant:customer:list:view';

/** 客户列表管理权限（导出）。 */
export const CUSTOMER_LIST_MANAGE_PERMISSION = 'tenant:customer:list:manage';

/** 客户标签筛选项。 */
export const CUSTOMER_TAG_OPTIONS: OptionItem[] = [
  { label: '全部标签', value: 'all' },
  { label: '高价值', value: 'high_value' },
  { label: '活跃客户', value: 'active' },
  { label: '沉睡客户', value: 'dormant' },
  { label: '流失客户', value: 'churn' },
  { label: '新客户', value: 'new_customer' },
];

/** 下单次数筛选项。 */
export const CUSTOMER_ORDER_COUNT_OPTIONS: OptionItem[] = [
  { label: '全部次数', value: 'all' },
  { label: '1次', value: 'once' },
  { label: '2-5次', value: 'two_to_five' },
  { label: '6-10次', value: 'six_to_ten' },
  { label: '10次以上', value: 'ten_plus' },
];

/** 注册周期筛选项。 */
export const CUSTOMER_REGISTER_PERIOD_OPTIONS: OptionItem[] = [
  { label: '全部时间', value: 'all' },
  { label: '最近7天', value: '7d' },
  { label: '最近30天', value: '30d' },
  { label: '最近90天', value: '90d' },
];

/** 默认筛选项。 */
export function createDefaultFilters(): CustomerFilterState {
  return {
    keyword: '',
    tag: 'all',
    orderCountRange: 'all',
    registerPeriod: 'all',
  };
}

/** 默认统计值。 */
export const DEFAULT_STATS: CustomerListStatsDto = {
  totalCustomers: 0,
  monthlyNewCustomers: 0,
  monthlyGrowthRatePercent: 0,
  activeCustomers: 0,
  averageAmountLast30Days: 0,
};
