refactor: restructure domain crate by bounded context

This commit is contained in:
2026-05-31 04:44:48 +02:00
parent 2b62d1ec81
commit de93373b43
136 changed files with 2111 additions and 2096 deletions

View File

@@ -0,0 +1,43 @@
use chrono::{Duration, Utc};
use domain::entities::{LinkAccessLevel, ScopeType, ShareLink, ShareScope, ShareableType};
use domain::value_objects::{DateTimeStamp, SystemId};
// --- ShareScope ---
#[test]
fn not_expired_when_no_expiry() {
let scope = ShareScope::new(ScopeType::Link, ShareableType::Album, SystemId::new(), SystemId::new());
assert!(!scope.is_expired());
}
#[test]
fn expired_when_past() {
let mut scope = ShareScope::new(ScopeType::Link, ShareableType::Album, SystemId::new(), SystemId::new());
scope.expires_at = Some(DateTimeStamp::from_datetime(Utc::now() - Duration::hours(1)));
assert!(scope.is_expired());
}
// --- ShareLink ---
#[test]
fn new_link_is_valid() {
let link = ShareLink::new(SystemId::new(), "tok123", LinkAccessLevel::ViewOnly);
assert!(link.is_valid());
assert_eq!(link.use_count, 0);
}
#[test]
fn deactivated_invalid() {
let mut link = ShareLink::new(SystemId::new(), "tok123", LinkAccessLevel::ViewOnly);
link.deactivate();
assert!(!link.is_valid());
}
#[test]
fn max_uses_exhausted() {
let mut link = ShareLink::new(SystemId::new(), "tok123", LinkAccessLevel::ViewOnly);
link.max_uses = Some(2);
link.record_use();
link.record_use();
assert!(!link.is_valid());
}

View File

@@ -0,0 +1 @@
mod entities;