export interface DomainGroup {
  domain: string;
  iconPath: string | null;
  sortOrder: number;
  apis: ServiceApiItem[];
}

export interface ApiDomainInfo {
  domainId: number;
  domainName: string;
  iconPath: string | null;
  sortOrder: number;
  createdAt: string;
  updatedAt: string;
}

export interface ServiceApiItem {
  apiId: number;
  serviceId: number;
  apiPath: string;
  apiMethod: string;
  apiName: string;
  apiDomain: string | null;
  apiSection: string | null;
  description: string | null;
  isActive: boolean;
  createdAt: string;
  updatedAt: string;
}

export interface ServiceCatalog {
  serviceId: number;
  serviceCode: string;
  serviceName: string;
  description: string | null;
  serviceUrl: string | null;
  healthStatus: 'UP' | 'DOWN' | 'UNKNOWN';
  apiCount: number;
  domains: DomainGroup[];
}

export interface PopularApi {
  domain: string;
  apiName: string;
  apiId: number | null;
  serviceId: number | null;
  count: number;
}

export interface RecentApi {
  apiId: number;
  apiName: string;
  apiPath: string;
  apiMethod: string;
  apiDomain: string | null;
  description: string | null;
  serviceId: number;
  serviceCode: string;
  serviceName: string;
  createdAt: string;
}
