/// 앱 전역에서 사용하는 상수 정의 파일
///
/// 라우트, 장비 상태, 장비 유형, 사용자 권한 등 도메인별로 구분하여 관리합니다.
library;

/// 라우트 이름 상수 클래스
class Routes {
  static const String home = '/';
  static const String vendor = '/vendor'; // 벤더 관리
  static const String vendors = '/vendor'; // 복수형 별칭
  static const String model = '/model'; // 모델 관리
  static const String models = '/model'; // 복수형 별칭
  static const String equipment = '/equipment'; // 통합 장비 관리
  static const String equipmentIn = '/equipment-in'; // 입고 목록(미사용)
  static const String equipmentInAdd = '/equipment-in/add'; // 장비 입고 폼
  static const String equipmentInEdit = '/equipment-in/edit'; // 장비 입고 편집
  static const String equipmentOut = '/equipment-out'; // 출고 목록(미사용)
  static const String equipmentOutAdd = '/equipment-out/add'; // 장비 출고 폼
  static const String equipmentOutEdit = '/equipment-out/edit'; // 장비 출고 편집
  static const String equipmentInList = '/equipment/in'; // 입고 장비 목록
  static const String equipmentOutList = '/equipment/out'; // 출고 장비 목록
  static const String equipmentRentList = '/equipment/rent'; // 대여 장비 목록
  static const String company = '/company';
  static const String companies = '/company'; // 복수형 별칭
  static const String companyAdd = '/company/add';
  static const String companyEdit = '/company/edit';
  static const String user = '/user';
  static const String users = '/user'; // 복수형 별칭
  static const String userAdd = '/user/add';
  static const String userEdit = '/user/edit';
  // License 시스템이 Maintenance로 대체됨
  static const String warehouseLocation = '/warehouse-location'; // 입고지 관리 목록
  static const String warehouseLocations = '/warehouse-location'; // 복수형 별칭
  static const String warehouseLocationAdd =
      '/warehouse-location/add'; // 입고지 추가
  static const String warehouseLocationEdit =
      '/warehouse-location/edit'; // 입고지 수정
  static const String zipcode = '/zipcode'; // 우편번호 검색
  static const String zipcodes = '/zipcode'; // 복수형 별칭
  
  // 재고 관리 라우트
  static const String inventory = '/inventory'; // 재고 이력
  static const String inventoryHistory = '/inventory/history'; // 재고 이력
  static const String inventoryStockIn = '/inventory/stock-in'; // 입고 등록
  static const String inventoryStockOut = '/inventory/stock-out'; // 출고 처리
  
  // 유지보수 관리 라우트
  static const String maintenance = '/maintenance'; // 유지보수 일정
  static const String maintenanceSchedule = '/maintenance/schedule'; // 유지보수 일정
  static const String maintenanceAlert = '/maintenance/alert'; // 유지보수 알림
  static const String maintenanceHistory = '/maintenance/history'; // 유지보수 이력
  static const String maintenanceAdd = '/maintenance/add'; // 유지보수 추가
  static const String maintenanceEdit = '/maintenance/edit'; // 유지보수 수정
  
  // 임대 관리 라우트
  static const String rent = '/rent'; // 임대 목록
  static const String rents = '/rent'; // 복수형 별칭
  static const String rentAdd = '/rent/add'; // 임대 추가
  static const String rentEdit = '/rent/edit'; // 임대 수정
}

/// 장비 상태 코드 상수 클래스
class EquipmentStatus {
  static const String in_ = 'I'; // 입고
  static const String out = 'O'; // 출고
  static const String rent = 'T'; // 대여
  static const String repair = 'R'; // 수리
  static const String damaged = 'D'; // 손상
  static const String lost = 'L'; // 분실
  static const String disposed = 'P'; // 폐기
  static const String etc = 'E'; // 기타
}

/// 장비 유형 상수 클래스
class EquipmentType {
  static const String new_ = '신제품'; // 신제품
  static const String used = '중고'; // 중고
  static const String contract = '계약'; // 계약(입고후 즉각 출고)
}

/// 사용자 권한 상수 클래스
class UserRoles {
  static const String admin = 'S'; // 관리자
  static const String member = 'M'; // 멤버
}

/// 페이지네이션 상수는 lib/core/constants/app_constants.dart로 이동됨
/// AppConstants의 페이지네이션 관련 상수를 사용하세요.
