docs: tambah doc comment, logging, dan inline comments di semua 255 file

Meliputi:
- File-level //! doc comment: tujuan file, alur kerja, komponen utama
- Function-level /// doc comment: apa, parameter, return, flow, edge cases
- Struct/enum/trait /// doc comment: peran, field docs
- Tracing logging (tracing::info!/debug!/trace!/warn!/error!) di setiap fungsi
- Inline comments untuk variable dan branching logic penting
- Seluruh 8 crates di workspace: zesdex-backend, zesdex-cms, zesdex-entities,
  zesdex-iam, zesdex-infra, zesdex-ipc, zesdex-middleware, zesdex-utils
- Build: 0 errors, 242/242 tests passed
This commit is contained in:
asepharyana
2026-07-19 17:05:47 +07:00
parent 6680795ce7
commit 5aaedbf787
255 changed files with 5666 additions and 743 deletions
+29 -14
View File
@@ -1,7 +1,18 @@
//! Service trait definitions — use-case boundaries for CMS operations.
//!
//! These traits are implemented by the application layer and consumed by
//! infrastructure adapters (HTTP handlers, CLI commands, etc.).
//! These traits define the public API of the application use-cases.
//! They are implemented by concrete types in the `application` layer
//! and consumed by infrastructure adapters (HTTP handlers, CLI commands).
//!
//! ## Traits
//! - `SettingsService` — load/save settings, update provider config
//! - `ConversationService` — load/save conversations, add messages
//! - `MemoryService` — list/save/delete session memories
//!
//! ## Dependency Inversion
//! Application service implementations accept repository traits as generic
//! type parameters. Infrastructure adapters depend only on these service
//! traits, never on concrete implementations.
use anyhow::Result;
@@ -9,39 +20,43 @@ use super::conversation::{ChatMessage, Conversation};
use super::memory::Memory;
use super::settings::Settings;
/// Settings use cases.
/// Use-cases for application settings.
pub trait SettingsService {
/// Load current settings from the default store.
/// Load the current `Settings` from the default store location.
fn load_settings(&self) -> Result<Settings>;
/// Persist updated settings.
/// Persist updated `Settings` to the default store location.
fn save_settings(&self, settings: &Settings) -> Result<()>;
/// Update the provider configuration (name and details).
/// Update (or insert) a provider configuration entry.
///
/// Flow: load current AppConfig → mutate provider map → save.
fn update_provider(&self, name: &str, config: &super::app_config::ProviderConfig)
-> Result<()>;
}
/// Conversation management use cases.
/// Use-cases for conversation (session message) management.
pub trait ConversationService {
/// Load a conversation for the given session id.
/// Load a `Conversation` for the given session ID.
fn load_conversation(&self, session_id: &str) -> Result<Conversation>;
/// Persist a conversation.
/// Persist a `Conversation` to its session storage.
fn save_conversation(&self, conv: &Conversation) -> Result<()>;
/// Append a single message and persist.
/// Append a single `ChatMessage` to the conversation and persist.
///
/// Flow: push message to in-memory conv → persist full conversation.
fn add_message(&self, conv: &mut Conversation, msg: ChatMessage) -> Result<()>;
}
/// Memory management use cases.
/// Use-cases for long-term memory management.
pub trait MemoryService {
/// List all memory slugs.
/// List all memory slugs (filenames without extension).
fn list_memories(&self) -> Result<Vec<String>>;
/// Save (create or update) a memory.
/// Save (create or overwrite) a `Memory`.
fn save_memory(&self, memory: &Memory) -> Result<()>;
/// Delete a memory by name.
/// Delete a `Memory` by its slug/name.
fn delete_memory(&self, name: &str) -> Result<()>;
}