/** * Entity management service */ import { transceivePost } from './transceive'; import type { EntityListRequest, EntityListResponse, EntityDeltaRequest, EntityDeltaResponse, EntityExtantRequest, EntityExtantResponse, EntityFetchRequest, EntityFetchResponse, EntityCreateRequest, EntityCreateResponse, EntityModifyRequest, EntityModifyResponse, EntityDestroyRequest, EntityDestroyResponse, } from '../types/entity'; export const entityService = { /** * List all available entities (events, tasks, journals) * * @param request - Entity list request parameters * @returns Promise with entity list grouped by provider, service, and collection */ async list(request: EntityListRequest = {}): Promise { return await transceivePost('entity.list', request); }, /** * Get delta changes for entities * * @param request - Entity delta request with source selector * @returns Promise with delta changes (created, modified, deleted) */ async delta(request: EntityDeltaRequest): Promise { return await transceivePost('entity.delta', request); }, /** * Check which entities exist/are available * * @param request - Entity extant request with source selector * @returns Promise with entity availability status */ async extant(request: EntityExtantRequest): Promise { return await transceivePost('entity.extant', request); }, /** * Fetch specific entities * * @param request - Entity fetch request * @returns Promise with entity details */ async fetch(request: EntityFetchRequest): Promise { return await transceivePost('entity.fetch', request); }, /** * Create a new entity * * @param request - Entity create request * @returns Promise with created entity */ async create(request: EntityCreateRequest): Promise { return await transceivePost('entity.create', request); }, /** * Modify an existing entity * * @param request - Entity modify request * @returns Promise with modified entity */ async modify(request: EntityModifyRequest): Promise { return await transceivePost('entity.modify', request); }, /** * Delete an entity * * @param request - Entity destroy request * @returns Promise with deletion result */ async destroy(request: EntityDestroyRequest): Promise { return await transceivePost('entity.destroy', request); }, }; export default entityService;