nexus-scribe-core
Core types, configuration, and error handling for the NexusScribe platform.
Overview
This crate provides the foundational types and utilities used throughout the NexusScribe ecosystem.
Key Types
User
pub struct User {
pub id: Uuid,
pub organization_id: Option<Uuid>,
pub email: String,
pub display_name: String,
pub role: UserRole,
pub mfa_enabled: bool,
pub email_verified: bool,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
}
pub enum UserRole {
Admin,
Editor,
Viewer,
Guest,
User,
}
Meeting
pub struct Meeting {
pub id: Uuid,
pub title: String,
pub description: Option<String>,
pub host_user_id: Uuid,
pub status: MeetingStatus,
pub privacy_level: PrivacyLevel,
pub recording_enabled: bool,
pub started_at: Option<DateTime<Utc>>,
pub ended_at: Option<DateTime<Utc>>,
pub duration_seconds: Option<i32>,
}
pub enum MeetingStatus {
Scheduled,
Active,
Paused,
Completed,
Cancelled,
}
TranscriptSegment
pub struct TranscriptSegment {
pub id: Uuid,
pub meeting_id: Uuid,
pub speaker_id: Option<Uuid>,
pub start_time_ms: i64,
pub end_time_ms: i64,
pub text: String,
pub confidence: f32,
pub language: String,
pub is_final: bool,
}
Configuration
AppConfig
pub struct AppConfig {
pub server: ServerConfig,
pub database: DatabaseConfig,
pub auth: AuthConfig,
pub transcription: TranscriptionConfig,
pub email: EmailConfig,
pub storage: StorageConfig,
pub compliance: ComplianceConfig,
}
Load configuration:
use nexus_scribe_core::AppConfig;
let config = AppConfig::load("config/default.toml")?;
Error Handling
pub enum Error {
Config(String),
Database(String),
Auth(String),
NotFound(String),
Validation(String),
Internal(String),
}
pub type Result<T> = std::result::Result<T, Error>;
Usage
[dependencies]
nexus-scribe-core = { path = "../nexus-scribe-core" }
use nexus_scribe_core::{User, UserRole, Meeting, Result};