import { apiClient } from "./client"; export interface SmartFactoryLogEntry { id: number; company_code: string; company_name: string | null; user_id: string; user_name: string | null; use_type: string; connect_ip: string; send_status: "SUCCESS" | "FAIL" | "SKIPPED"; response_status: number | null; error_message: string | null; log_dt: string; created_at: string; } export interface SmartFactoryLogFilters { companyCode?: string; userId?: string; sendStatus?: string; dateFrom?: string; dateTo?: string; search?: string; page?: number; limit?: number; } export interface SmartFactoryLogStats { total: number; statusCounts: Array<{ status: string; count: number }>; companyCounts: Array<{ companyCode: string; companyName: string; count: number }>; dailyCounts: Array<{ date: string; count: number }>; } export async function getSmartFactoryLogs( filters: SmartFactoryLogFilters ): Promise<{ success: boolean; data: SmartFactoryLogEntry[]; total: number; page: number; limit: number; }> { const params = new URLSearchParams(); if (filters.companyCode) params.append("companyCode", filters.companyCode); if (filters.userId) params.append("userId", filters.userId); if (filters.sendStatus) params.append("sendStatus", filters.sendStatus); if (filters.dateFrom) params.append("dateFrom", filters.dateFrom); if (filters.dateTo) params.append("dateTo", filters.dateTo); if (filters.search) params.append("search", filters.search); if (filters.page) params.append("page", String(filters.page)); if (filters.limit) params.append("limit", String(filters.limit)); const response = await apiClient.get(`/admin/smart-factory-log?${params.toString()}`); return response.data; } export async function getSmartFactoryLogStats( companyCode?: string, days?: number ): Promise<{ success: boolean; data: SmartFactoryLogStats }> { const params = new URLSearchParams(); if (companyCode) params.append("companyCode", companyCode); if (days) params.append("days", String(days)); const response = await apiClient.get(`/admin/smart-factory-log/stats?${params.toString()}`); return response.data; }