import type { FunnelPeriod } from '../../api/types'; /** Default period selected on first load: 单日(默认昨日,T+1)。 */ export const DEFAULT_PERIOD: FunnelPeriod = 'day'; /** The fixed 5-step funnel (display name + event key), in fixed order. */ export const FIXED_FUNNEL_STEPS: { name: string; event_key: string }[] = [ { name: '启动', event_key: 'start' }, { name: '曝光', event_key: 'show' }, { name: '拼团详情', event_key: 'detail' }, { name: '下单', event_key: 'order' }, { name: '成功', event_key: 'paid' }, ]; /** Format a "yyyyMMdd" snapshot day as "yyyy-MM-dd" for display. */ export function formatSnapshotDt(dt: string): string { if (/^\d{8}$/.test(dt)) { return `${dt.slice(0, 4)}-${dt.slice(4, 6)}-${dt.slice(6, 8)}`; } return dt; } /** Local-midnight `Date` for yesterday — the latest selectable / queryable day (data is T+1). */ export function yesterday(): Date { const d = new Date(); d.setHours(0, 0, 0, 0); d.setDate(d.getDate() - 1); return d; } /** Format a local `Date` as request `snapshot_dt` ("yyyy-MM-dd"). */ export function toSnapshotParam(d: Date): string { const y = d.getFullYear(); const m = String(d.getMonth() + 1).padStart(2, '0'); const day = String(d.getDate()).padStart(2, '0'); return `${y}-${m}-${day}`; }