feat(gift): 관리자 선물 카테고리 CRUD 추가
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
export function createGiftCategoryForm() {
|
||||
return {
|
||||
classificationNumber: '',
|
||||
categoryCode: '',
|
||||
name: '',
|
||||
receiptCode: '',
|
||||
representativeItem: '',
|
||||
requiresDamageWaiver: false,
|
||||
isActive: true
|
||||
}
|
||||
}
|
||||
|
||||
export function buildGiftCategoryRequest(form) {
|
||||
return {
|
||||
classificationNumber: form.classificationNumber,
|
||||
categoryCode: form.categoryCode,
|
||||
name: form.name,
|
||||
receiptCode: form.receiptCode,
|
||||
representativeItem: form.representativeItem,
|
||||
requiresDamageWaiver: form.requiresDamageWaiver,
|
||||
isActive: form.isActive
|
||||
}
|
||||
}
|
||||
|
||||
export function validateGiftCategory(form) {
|
||||
const errors = {}
|
||||
const requiredFields = [
|
||||
['classificationNumber', '분류번호', 3],
|
||||
['categoryCode', '카테고리 코드', 50],
|
||||
['name', '카테고리명', 50],
|
||||
['receiptCode', '접수 코드', 9],
|
||||
['representativeItem', '대표 품목', 100]
|
||||
]
|
||||
for (const [key, label, maxLength] of requiredFields) {
|
||||
const value = form[key]
|
||||
if (typeof value !== 'string' || !value.trim()) {
|
||||
errors[key] = `${label} 항목은 필수입니다.`
|
||||
} else if (value.length > maxLength) {
|
||||
errors[key] = `${label} 항목은 ${maxLength}자 이하로 입력해 주세요.`
|
||||
}
|
||||
}
|
||||
if (!errors.classificationNumber && (!/^[0-9]{3}$/.test(form.classificationNumber) || form.classificationNumber.length !== 3)) {
|
||||
errors.classificationNumber = '분류번호는 숫자 3자리로 입력해 주세요.'
|
||||
}
|
||||
if (!errors.receiptCode && /[^A-Z]/.test(form.receiptCode)) {
|
||||
errors.receiptCode = '접수 코드는 영문 대문자 1~9자로 입력해 주세요.'
|
||||
}
|
||||
if (typeof form.requiresDamageWaiver !== 'boolean') {
|
||||
errors.requiresDamageWaiver = '파손면책 동의 필요 여부를 선택해 주세요.'
|
||||
}
|
||||
if (typeof form.isActive !== 'boolean') {
|
||||
errors.isActive = '활성 여부를 선택해 주세요.'
|
||||
}
|
||||
return errors
|
||||
}
|
||||
Reference in New Issue
Block a user