사용하지 않는 파일 정리 전 백업 (Phase 10 완료 후 상태)
This commit is contained in:
@@ -93,4 +93,50 @@ abstract class CompanyRepository {
|
||||
/// [excludeId] 체크에서 제외할 회사 ID (수정 시 현재 회사 제외용)
|
||||
/// Returns: 중복 여부 (true: 중복됨, false: 중복되지 않음)
|
||||
Future<Either<Failure, bool>> isDuplicateCompanyName(String name, {int? excludeId});
|
||||
|
||||
// 계층 구조 관련 메서드들
|
||||
|
||||
/// 전체 회사 계층 구조 조회
|
||||
/// [includeInactive] 비활성 회사 포함 여부
|
||||
/// Returns: 전체 계층 구조 트리
|
||||
Future<Either<Failure, List<Company>>> getCompanyHierarchy({
|
||||
bool includeInactive = false,
|
||||
});
|
||||
|
||||
/// 특정 회사의 자식 회사 목록 조회
|
||||
/// [companyId] 부모 회사 ID
|
||||
/// [recursive] 재귀적으로 모든 자손 포함 여부
|
||||
/// Returns: 자식 회사 목록
|
||||
Future<Either<Failure, List<Company>>> getChildrenCompanies(
|
||||
int companyId, {
|
||||
bool recursive = false,
|
||||
});
|
||||
|
||||
/// 특정 회사의 부모 경로 조회
|
||||
/// [companyId] 회사 ID
|
||||
/// Returns: 루트부터 현재 회사까지의 경로
|
||||
Future<Either<Failure, List<Company>>> getAncestorPath(int companyId);
|
||||
|
||||
/// 회사의 부모 변경
|
||||
/// [companyId] 변경할 회사 ID
|
||||
/// [newParentId] 새로운 부모 회사 ID (null이면 루트로 변경)
|
||||
/// Returns: 업데이트된 회사 정보
|
||||
Future<Either<Failure, Company>> updateParentCompany(
|
||||
int companyId,
|
||||
int? newParentId,
|
||||
);
|
||||
|
||||
/// 회사가 자식을 가지고 있는지 확인
|
||||
/// [companyId] 확인할 회사 ID
|
||||
/// Returns: 자식 회사 존재 여부
|
||||
Future<Either<Failure, bool>> hasChildrenCompanies(int companyId);
|
||||
|
||||
/// 계층 구조 유효성 검증
|
||||
/// [companyId] 검증할 회사 ID
|
||||
/// [newParentId] 새로운 부모 회사 ID
|
||||
/// Returns: 유효성 검증 결과 (순환 참조, 깊이 제한 등)
|
||||
Future<Either<Failure, bool>> validateHierarchyChange(
|
||||
int companyId,
|
||||
int? newParentId,
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user