use backbone_core::{EntityValidator, ValidationErrors, ValidationError};
use backbone_core::{OptionalNotBlank, RequiredString};
use crate::domain::entity::FinancialStatement;
pub type FinancialStatementValidator = EntityValidator<FinancialStatement>;
pub fn financial_statement_validator() -> FinancialStatementValidator {
EntityValidator::new()
.rule(RequiredString::new("statement_number", |e: &FinancialStatement| &e.statement_number))
.rule(RequiredString::new("name", |e: &FinancialStatement| &e.name))
.rule(OptionalNotBlank::new("management_notes", |e: &FinancialStatement| e.management_notes.as_deref()))
.rule(OptionalNotBlank::new("pdf_url", |e: &FinancialStatement| e.pdf_url.as_deref()))
.rule(OptionalNotBlank::new("excel_url", |e: &FinancialStatement| e.excel_url.as_deref()))
.rule(RequiredString::new("currency", |e: &FinancialStatement| &e.currency))
}