Files
chrono_manager/README.md
2026-02-10 20:09:45 -05:00

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 operations
  • Module.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