3.0 KiB
3.0 KiB
Chrono Manager Module
The Chrono Manager module provides the backend management layer for calendar, event, task, and journal functionality within the Ktrix platform.
Overview
This module implements the Provider-Service-Collection-Entity architecture for chronological data:
- Providers: Calendar/task service providers (local, CalDAV, Exchange, etc.)
- Services: Individual calendar/task services within a provider
- Collections: Calendars, task lists, or journal collections
- Entities: Individual events, tasks, or journal entries
Features
- Multi-provider support for calendars and tasks
- CRUD operations for collections and entities
- Event management with recurrence support
- Task management with priorities and subtasks
- Journal entry support
- Delta synchronization
- Filtering and sorting capabilities
Architecture
PHP Backend (lib/)
Manager.php: Core manager class handling all operationsModule.php: Module registration and lifecycle
TypeScript Frontend (src/)
- Types: TypeScript interfaces for all data structures
- Services: API communication layer
- Stores: Pinia stores for state management
- Models: Data model classes with validation
Usage
Backend (PHP)
use KTXM\ChronoManager\Manager;
// Register providers
Manager::registerProvider('local', LocalProvider::class);
// Create manager instance
$manager = new Manager($logger);
// List collections
$collections = $manager->collectionList($tenantId, $userId);
// Create entity
$entity = $manager->entityCreate($tenantId, $userId, $providerId, $serviceId, $collectionId, $entityData);
Frontend (TypeScript)
import { useCollectionsStore, useEntitiesStore } from '@ChronoManager/stores';
// Get stores
const collectionsStore = useCollectionsStore();
const entitiesStore = useEntitiesStore();
// Load collections
const collections = await collectionsStore.list();
// Create entity
const entity = await entitiesStore.create(collection, entityData);
Entity Types
Event
Calendar events with start/end times, locations, attendees, and recurrence patterns.
Task
Todo items with priorities, due dates, completion tracking, and subtasks.
Journal
Journal entries with timestamps and content.
Development
Build TypeScript
npm install
npm run build
Watch Mode
npm run watch
API Endpoints
All endpoints are prefixed with /m/chrono_manager/:
/provider/list- List available providers/provider/extant- Check provider availability/service/list- List available services/service/fetch- Get service details/collection/list- List collections/collection/create- Create collection/collection/modify- Update collection/collection/destroy- Delete collection/entity/list- List entities/entity/create- Create entity/entity/modify- Update entity/entity/destroy- Delete entity/entity/delta- Get delta changes
License
AGPL-3.0-or-later