Expand description
SQLite persistence layer: one module per entity, migrations on open.
use kasl::db::{db::Db, tasks::Tasks, workdays::Workdays};
use kasl::libs::task::Task;
let db = Db::new()?;
let mut tasks = Tasks::new()?;
let task = Task::new("Review code", "Check PR #123", Some(75));
tasks.insert(&task)?;use kasl::db::{tags::{Tags, Tag}, templates::{Templates, TaskTemplate}};
let mut tags = Tags::new()?;
let tag_id = tags.create(&Tag::new("urgent".to_string(), Some("red".to_string())))?;
let mut templates = Templates::new()?;
let template = TaskTemplate::new(
"daily-standup".to_string(),
"Attend daily standup meeting".to_string(),
"Team sync and planning".to_string(),
100
);
templates.create(&template)?;Modules§
- db
- Connection handling and schema bootstrap. Database connection bootstrap: path resolution, pragmas, migrations.
- jira_
inbox - Local inbox of assigned open Jira issues. Persistent store for discovered Jira inbox issues.
- jira_
statuses - Catalog of Jira status id → name pairs synced from issues. Local catalog of Jira workflow statuses (id → name).
- migrations
- Versioned schema migrations. Database schema migration management and versioning system.
- pauses
- Pause records detected by the monitor or entered by hand. Database operations for tracking pause periods.
- server_
outbox - Days owed to kasl-server after a failed or skipped upload. Days owed to kasl-server: what could not be sent, kept until it can.
- tags
- Tags and their task associations. Tags and the task_tags junction table linking them to tasks.
- tasks
- Task CRUD and filtered queries.
Task table access: CRUD plus the filtered queries behind
TaskFilter. - templates
- Reusable task templates. Reusable task templates: named blueprints tasks are created from.
- workdays
- Workday start/end records. Workday records: one row per calendar date, start and optional end.