카테고리 값 삭제 로직 개선

- 소프트 삭제(is_active=false)에서 하드 삭제(DELETE)로 변경
- 하위 카테고리 체크 시 is_active 조건 제거하여 정확성 향상
- 불필요한 updated_at, updated_by 파라미터 제거
This commit is contained in:
SeongHyun Kim 2025-11-17 13:36:46 +09:00
parent 660f81edbc
commit e9c64f65c8
1 changed files with 7 additions and 11 deletions

View File

@ -445,7 +445,7 @@ class TableCategoryValueService {
}
/**
* ()
* ( )
*/
async deleteCategoryValue(
valueId: number,
@ -465,7 +465,6 @@ class TableCategoryValueService {
SELECT COUNT(*) as count
FROM table_column_category_values
WHERE parent_value_id = $1
AND is_active = true
`;
checkParams = [valueId];
} else {
@ -475,7 +474,6 @@ class TableCategoryValueService {
FROM table_column_category_values
WHERE parent_value_id = $1
AND company_code = $2
AND is_active = true
`;
checkParams = [valueId, companyCode];
}
@ -486,27 +484,25 @@ class TableCategoryValueService {
throw new Error("하위 카테고리 값이 있어 삭제할 수 없습니다");
}
// 비활성화 (멀티테넌시 적용)
// 물리적 삭제 (멀티테넌시 적용)
let deleteQuery: string;
let deleteParams: any[];
if (companyCode === "*") {
// 최고 관리자: 모든 카테고리 값 삭제 가능
deleteQuery = `
UPDATE table_column_category_values
SET is_active = false, updated_at = NOW(), updated_by = $2
DELETE FROM table_column_category_values
WHERE value_id = $1
`;
deleteParams = [valueId, userId];
deleteParams = [valueId];
} else {
// 일반 회사: 자신의 카테고리 값만 삭제 가능
deleteQuery = `
UPDATE table_column_category_values
SET is_active = false, updated_at = NOW(), updated_by = $3
DELETE FROM table_column_category_values
WHERE value_id = $1
AND company_code = $2
`;
deleteParams = [valueId, companyCode, userId];
deleteParams = [valueId, companyCode];
}
const result = await pool.query(deleteQuery, deleteParams);
@ -515,7 +511,7 @@ class TableCategoryValueService {
throw new Error("카테고리 값을 찾을 수 없거나 권한이 없습니다");
}
logger.info("카테고리 값 삭제(비활성화) 완료", {
logger.info("카테고리 값 삭제 완료", {
valueId,
companyCode,
});