59 lines
2.0 KiB
TypeScript
59 lines
2.0 KiB
TypeScript
import apiClient from './apiClient'
|
|
|
|
export interface VirtualEntityResponse {
|
|
id: string
|
|
name: string
|
|
email: string
|
|
jobTitle: string
|
|
personality: string | null
|
|
scheduleCron: string | null
|
|
contextWindowDays: number
|
|
active: boolean
|
|
createdAt: string
|
|
}
|
|
|
|
export interface VirtualEntityCreateDto {
|
|
name: string
|
|
email: string
|
|
jobTitle: string
|
|
personality?: string
|
|
scheduleCron?: string
|
|
contextWindowDays: number
|
|
}
|
|
|
|
export type VirtualEntityUpdateDto = Partial<VirtualEntityCreateDto>
|
|
|
|
/** GET /api/v1/virtual-entities — list all virtual entities. */
|
|
export async function getEntities(): Promise<VirtualEntityResponse[]> {
|
|
const response = await apiClient.get<VirtualEntityResponse[]>('/v1/virtual-entities')
|
|
return response.data
|
|
}
|
|
|
|
/** GET /api/v1/virtual-entities/:id — get one entity by id. */
|
|
export async function getEntity(id: string): Promise<VirtualEntityResponse> {
|
|
const response = await apiClient.get<VirtualEntityResponse>(`/v1/virtual-entities/${id}`)
|
|
return response.data
|
|
}
|
|
|
|
/** POST /api/v1/virtual-entities — create a new entity. */
|
|
export async function createEntity(data: VirtualEntityCreateDto): Promise<VirtualEntityResponse> {
|
|
const response = await apiClient.post<VirtualEntityResponse>('/v1/virtual-entities', data)
|
|
return response.data
|
|
}
|
|
|
|
/** PUT /api/v1/virtual-entities/:id — update an entity. */
|
|
export async function updateEntity(id: string, data: VirtualEntityUpdateDto): Promise<VirtualEntityResponse> {
|
|
const response = await apiClient.put<VirtualEntityResponse>(`/v1/virtual-entities/${id}`, data)
|
|
return response.data
|
|
}
|
|
|
|
/** DELETE /api/v1/virtual-entities/:id — soft-delete (deactivate) an entity. */
|
|
export async function deleteEntity(id: string): Promise<void> {
|
|
await apiClient.delete(`/v1/virtual-entities/${id}`)
|
|
}
|
|
|
|
/** POST /api/v1/virtual-entities/:id/trigger — manually trigger the entity pipeline. */
|
|
export async function triggerEntity(id: string): Promise<void> {
|
|
await apiClient.post(`/v1/virtual-entities/${id}/trigger`)
|
|
}
|