File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
export interface Merchant {
id: string;
/** 등록 시 자동 생성 — 수정 불가(기획 MCH_003_p ①). */
code: string;
brandName: string;
name: string;
categoryCode: string;
businessNumber: string;
ownerName: string;
phoneNumber: string;
address: string;
addressDetail: string;
latitude: string;
longitude: string;
isVisible: boolean;
memo: string;
createdAt: string;
updatedAt: string;
}
export const EMPTY_FIELD_PLACEHOLDER = '-';
export function formatOptionalValue(
value: string | number | null | undefined
): string {
return value === null || value === undefined || value === ''
? EMPTY_FIELD_PLACEHOLDER
: String(value);
}
/**
* 업종 — 기획 MCH_002_p ②.
*
* TODO(기획): "제공받을 수 없는 데이터라면 추후 삭제 필요"로 적혀 있다. 코드표가 정해지면
* 공통코드 조회로 바꾼다.
*/
export const MERCHANT_CATEGORY_OPTIONS: ReadonlyArray<{
value: string;
label: string;
}> = [
{ value: 'CONVENIENCE', label: '편의점' },
{ value: 'CAFE', label: '카페' },
{ value: 'RESTAURANT', label: '음식점' },
{ value: 'BOOKSTORE', label: '서점' },
{ value: 'STATIONERY', label: '문구점' },
{ value: 'ETC', label: '기타' },
];
export function formatCategoryLabel(code: string): string {
if (!code) {
return EMPTY_FIELD_PLACEHOLDER;
}
return (
MERCHANT_CATEGORY_OPTIONS.find((option) => option.value === code)?.label ??
code
);
}
export function formatVisibilityLabel(isVisible: boolean): string {
return isVisible ? '노출' : '미노출';
}
/** 목록의 주소 칸 — 상세주소까지 붙이면 한 줄을 넘겨 표가 밀린다. */
export function formatAddressSummary(merchant: Merchant): string {
return formatOptionalValue(merchant.address);
}