import { apiClient } from "./client"; import type { ApiResponse, PaginatedResponse } from "@/types/api"; import type { ServiceListRequest, ServiceSummary, ServiceDetail, ApiKeyResponse, CreateServiceRequest, CreateServiceResponse, UpdateServiceRequest, RegisterFcmRequest, RegisterApnsRequest, } from "@/features/service/types"; /** 서비스 목록 조회 */ export function fetchServices(data: ServiceListRequest) { return apiClient.post>( "/v1/in/service/list", data, ); } /** 서비스 상세 조회 */ export function fetchServiceDetail(serviceCode: string) { return apiClient.post>( `/v1/in/service/${serviceCode}`, ); } /** API Key 전체 조회 (마스킹 해제) */ export function fetchApiKey(serviceCode: string) { return apiClient.post>( `/v1/in/service/${serviceCode}/apikey/view`, ); } /** 서비스 생성 */ export function createService(data: CreateServiceRequest) { return apiClient.post>( "/v1/in/service/create", data, ); } /** 서비스 수정 */ export function updateService(data: UpdateServiceRequest) { return apiClient.post>( "/v1/in/service/update", data, ); } /** FCM 인증서 등록 */ export function registerFcm(serviceCode: string, data: RegisterFcmRequest) { return apiClient.post>( `/v1/in/service/${serviceCode}/fcm`, data, ); } /** FCM 인증서 삭제 */ export function deleteFcm(serviceCode: string) { return apiClient.post>( `/v1/in/service/${serviceCode}/fcm/delete`, ); } /** APNs 인증서 등록 */ export function registerApns(serviceCode: string, data: RegisterApnsRequest) { return apiClient.post>( `/v1/in/service/${serviceCode}/apns`, data, ); } /** APNs 인증서 삭제 */ export function deleteApns(serviceCode: string) { return apiClient.post>( `/v1/in/service/${serviceCode}/apns/delete`, ); }