use anyhow::{Result, anyhow};
use crate::StoredFile;
pub struct StoredFileDomainService;
impl StoredFileDomainService {
pub fn new() -> Self {
Self
}
pub fn validate(&self, entity: &StoredFile) -> Result<()> {
if entity.path.is_empty() {
return Err(anyhow!("path is required"));
}
if entity.original_name.is_empty() {
return Err(anyhow!("original_name is required"));
}
if entity.mime_type.is_empty() {
return Err(anyhow!("mime_type is required"));
}
if entity.storage_key.is_empty() {
return Err(anyhow!("storage_key is required"));
}
Ok(())
}
pub fn can_create(&self, entity: &StoredFile) -> Result<bool> {
self.validate(entity)?;
Ok(true)
}
pub fn can_update(&self, _current: &StoredFile, _updated: &StoredFile) -> Result<bool> {
Ok(true)
}
pub fn can_delete(&self, _entity: &StoredFile) -> Result<bool> {
Ok(true)
}
}
impl Default for StoredFileDomainService {
fn default() -> Self {
Self::new()
}
}