import type { MemberStoredCardPaymentMethod } from '#/api/member/stored-card';
import type { StoredCardTabKey } from '#/views/member/stored-card/types';

import dayjs from 'dayjs';

/** 会员储值卡查看权限。 */
export const MEMBER_STORED_CARD_VIEW_PERMISSION =
  'tenant:member:stored-card:view';

/** 会员储值卡管理权限。 */
export const MEMBER_STORED_CARD_MANAGE_PERMISSION =
  'tenant:member:stored-card:manage';

/** 页面 Tab 选项。 */
export const STORED_CARD_TAB_OPTIONS: Array<{
  label: string;
  value: StoredCardTabKey;
}> = [
  { label: '充值方案', value: 'plans' },
  { label: '充值记录', value: 'records' },
];

/** 方案状态选项。 */
export const STORED_CARD_PLAN_STATUS_OPTIONS = [
  { label: '启用', value: 'enabled' },
  { label: '停用', value: 'disabled' },
];

/** 支付方式文案映射。 */
export const STORED_CARD_PAYMENT_METHOD_TEXT_MAP: Record<
  MemberStoredCardPaymentMethod,
  string
> = {
  wechat: '微信支付',
  alipay: '支付宝',
  cash: '现金',
  card: '刷卡',
  balance: '余额',
  unknown: '未知',
};

/** 支付方式标签颜色。 */
export const STORED_CARD_PAYMENT_METHOD_COLOR_MAP: Record<
  MemberStoredCardPaymentMethod,
  string
> = {
  wechat: 'green',
  alipay: 'blue',
  cash: 'orange',
  card: 'gold',
  balance: 'purple',
  unknown: 'default',
};

/** 默认记录日期范围（本月 1 日至今日）。 */
export function createDefaultRecordDateRange() {
  return [dayjs().startOf('month'), dayjs()] as [dayjs.Dayjs, dayjs.Dayjs];
}
