feat: all project setup

This commit is contained in:
ivannoskov
2025-11-10 12:07:24 +03:00
parent fbfd7719bb
commit b0a9934220
99 changed files with 19597 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
// ============================================================================
// External Channels API
// ============================================================================
import { api } from "./client";
import type {
ExternalChannel,
ExternalChannelDetail,
ExternalChannelQueryParams,
ExternalChannelCreateRequest,
ExternalChannelUpdateRequest,
ExternalChannelImportResponse,
ListResponse,
SuccessResponse,
} from "@/lib/types/api";
export const externalChannelsApi = {
/**
* Get list of external channels
*/
list: (params?: ExternalChannelQueryParams) =>
api.get<ListResponse<ExternalChannel>>("/external-channels", { params }),
/**
* Get external channel details
*/
get: (id: string) =>
api.get<ExternalChannelDetail>(`/external-channels/${id}`),
/**
* Create new external channel
*/
create: (data: ExternalChannelCreateRequest) =>
api.post<ExternalChannel>("/external-channels", data),
/**
* Update external channel
*/
update: (id: string, data: ExternalChannelUpdateRequest) =>
api.patch<ExternalChannel>(`/external-channels/${id}`, data),
/**
* Delete external channel
*/
delete: (id: string) =>
api.delete<SuccessResponse>(`/external-channels/${id}`),
/**
* Import external channels from Excel file
*/
import: (file: File, targetChannelId: string) => {
const formData = new FormData();
formData.append("file", file);
formData.append("target_channel_id", targetChannelId);
return api.upload<ExternalChannelImportResponse>(
"/external-channels/import",
formData
);
},
};