import { Company, CompanyTableColumn } from "@/types/company";

/**
 * 회사 관리 관련 상수 정의
 */

// 회사 상태 코드 정의
export const COMPANY_STATUS = {
  ACTIVE: "active",
  INACTIVE: "inactive",
  PENDING: "pending",
} as const;

// 회사 상태 라벨 매핑
export const COMPANY_STATUS_LABELS = {
  [COMPANY_STATUS.ACTIVE]: "활성",
  [COMPANY_STATUS.INACTIVE]: "비활성",
  [COMPANY_STATUS.PENDING]: "대기",
} as const;

// 회사 목록 테이블 컬럼 정의
export const COMPANY_TABLE_COLUMNS: CompanyTableColumn[] = [
  { key: "company_code", label: "회사코드", sortable: true, width: "150px" },
  { key: "company_name", label: "회사명", sortable: true },
  { key: "writer", label: "등록자", sortable: true, width: "200px" },
];

// 하드코딩된 회사 목록 데이터 (백엔드 구현 전까지 사용)
export const MOCK_COMPANIES: Company[] = [
  {
    company_code: "ILSHIN001",
    company_name: "일신오토클레이브",
    writer: "admin",
    regdate: "2024-01-15T09:30:00Z",
    status: COMPANY_STATUS.ACTIVE,
  },
  {
    company_code: "HUTECH001",
    company_name: "휴텍",
    writer: "manager",
    regdate: "2024-01-20T14:15:00Z",
    status: COMPANY_STATUS.ACTIVE,
  },
  {
    company_code: "DAIN001",
    company_name: "다인",
    writer: "admin",
    regdate: "2024-02-01T11:00:00Z",
    status: COMPANY_STATUS.ACTIVE,
  },
  {
    company_code: "ACME001",
    company_name: "ACME Corporation",
    writer: "operator",
    regdate: "2024-02-10T16:45:00Z",
    status: COMPANY_STATUS.INACTIVE,
  },
  {
    company_code: "TECH001",
    company_name: "TechFlow Inc",
    writer: "admin",
    regdate: "2024-02-15T10:20:00Z",
    status: COMPANY_STATUS.PENDING,
  },
  {
    company_code: "GLOBAL001",
    company_name: "Global Solutions",
    writer: "test_user",
    regdate: "2024-03-01T13:30:00Z",
    status: COMPANY_STATUS.ACTIVE,
  },
];

// 새 회사 등록 시 기본값
export const DEFAULT_COMPANY_FORM_DATA = {
  company_name: "",
  business_registration_number: "",
  representative_name: "",
  representative_phone: "",
  email: "",
  website: "",
  address: "",
};

// 페이징 관련 상수
export const COMPANY_PAGINATION = {
  DEFAULT_PAGE_SIZE: 10,
  PAGE_SIZE_OPTIONS: [10, 20, 50, 100],
} as const;
