domain: add Sharing entities and ports (ShareScope, ShareTarget, ShareLink, InviteCode, VisibilityFilter)

This commit is contained in:
2026-05-31 03:33:00 +02:00
parent 1d3060fa12
commit ba53e0fa70
12 changed files with 302 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
use chrono::{Duration, Utc};
use domain::entities::{ScopeType, ShareScope, ShareableType};
use domain::value_objects::{DateTimeStamp, SystemId};
#[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());
}