| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- const HAIR_LENGTH_MAP: Record<string, 'SHORT' | 'MEDIUM' | 'LONG'> = {
- Short: 'SHORT',
- Medium: 'MEDIUM',
- Long: 'LONG',
- };
- const CONTACT_TYPE_MAP: Record<string, 'LINE' | 'PHONE' | 'EMAIL'> = {
- LINE: 'LINE',
- Phone: 'PHONE',
- Email: 'EMAIL',
- };
- const LINE_STATUS_MAP: Record<string, 'LINKED' | 'UNLINKED' | 'INVITED' | 'KEEP'> = {
- 已关联: 'LINKED',
- 已連携: 'LINKED',
- 未关联: 'UNLINKED',
- 未連携: 'UNLINKED',
- 邀请已发送: 'INVITED',
- 保留: 'KEEP',
- };
- const FOLLOW_STATUS_MAP: Record<string, 'NONE' | 'NEED_FOLLOW_UP' | 'SENT'> = {
- '': 'NONE',
- NONE: 'NONE',
- NEED_FOLLOW_UP: 'NEED_FOLLOW_UP',
- SENT: 'SENT',
- 需跟进: 'NEED_FOLLOW_UP',
- 已发送: 'SENT',
- 发送计划: 'NEED_FOLLOW_UP',
- };
- export function normalizeHairLength(value?: string) {
- return value ? HAIR_LENGTH_MAP[value] ?? null : null;
- }
- export function normalizeContactType(value?: string) {
- return value ? CONTACT_TYPE_MAP[value] ?? 'LINE' : 'LINE';
- }
- export function normalizeLineStatus(value?: string) {
- return value ? LINE_STATUS_MAP[value] ?? null : null;
- }
- export function normalizeFollowStatus(value?: string) {
- return value == null ? 'NONE' : FOLLOW_STATUS_MAP[value] ?? 'NONE';
- }
- export function parseDateOnly(value?: string) {
- return value ? new Date(`${value}T00:00:00.000Z`) : null;
- }
- export function formatDateOnly(value: Date | null) {
- return value ? value.toISOString().slice(0, 10) : undefined;
- }
- export function toFrontendHairLength(value: string | null) {
- if (!value) {
- return undefined;
- }
- return value[0] + value.slice(1).toLowerCase();
- }
|