// Identity & Access (Tasks 3-4) pub mod permission; pub mod role; mod user; mod group; pub use permission::{Permission, PermissionAction, ResourceType}; pub use role::Role; pub use user::User; pub use group::Group; // Storage & Sources (Task 6) mod storage_volume; mod library_path; mod ingest_session; mod quota; pub use storage_volume::StorageVolume; pub use library_path::{LibraryPath, OwnershipPolicy}; pub use ingest_session::{IngestSession, IngestStatus}; pub use quota::{QuotaDefinition, QuotaRule, TimePeriod, UsageLedgerEntry, UsageType}; // Media Catalog (Task 8) mod asset; mod asset_metadata; mod asset_stack; mod derivative_asset; mod duplicate; pub use asset::{Asset, AssetType, SourceReference}; pub use asset_metadata::{AssetMetadata, MetadataSource}; pub use asset_stack::{AssetStack, AssetStackMember, StackMemberRole, StackType}; pub use derivative_asset::{DerivativeAsset, DerivativeProfile, GenerationStatus}; pub use duplicate::{DetectionMethod, DuplicateCandidate, DuplicateGroup, DuplicateStatus}; // Organization (Task 10) mod album; mod tag; mod collection; pub use album::{Album, AlbumEntry}; pub use tag::{AssetTag, Tag, TagSource}; pub use collection::Collection; // Sharing (Task 11) mod share_scope; mod share_target; mod share_link; mod invite_code; mod visibility_filter; pub use share_scope::{ScopeType, ShareScope, ShareableType}; pub use share_target::{ShareTarget, TargetType}; pub use share_link::{LinkAccessLevel, ShareLink}; pub use invite_code::InviteCode; pub use visibility_filter::VisibilityFilter; // Sidecar Sync (Task 12) mod sidecar_record; mod sidecar_config; pub use sidecar_record::{SidecarRecord, SyncStatus}; pub use sidecar_config::{ConflictPolicy, SidecarConfig, SyncMode}; // Processing (Task 13) mod job; mod job_batch; mod plugin; mod processing_pipeline; pub use job::{Job, JobStatus, JobType}; pub use job_batch::{BatchStatus, JobBatch}; pub use plugin::{Plugin, PluginType}; pub use processing_pipeline::{PipelineStep, ProcessingPipeline};