@startuml set namespaceSeparator :: abstract class "wyatt_architecture::src::core::exceptions::exceptions.dart::AppException" { +String? message +String toString() } "dart::core::Exception" <|-- "wyatt_architecture::src::core::exceptions::exceptions.dart::AppException" class "wyatt_architecture::src::core::exceptions::exceptions.dart::ClientException" { } "wyatt_architecture::src::core::exceptions::exceptions.dart::AppException" <|-- "wyatt_architecture::src::core::exceptions::exceptions.dart::ClientException" class "wyatt_architecture::src::core::exceptions::exceptions.dart::ServerException" { } "wyatt_architecture::src::core::exceptions::exceptions.dart::AppException" <|-- "wyatt_architecture::src::core::exceptions::exceptions.dart::ServerException" abstract class "wyatt_architecture::src::domain::repositories::base_repository.dart::BaseRepository" { } abstract class "wyatt_architecture::src::domain::data_sources::local::base_local_data_source.dart::BaseLocalDataSource" { } "wyatt_architecture::src::domain::data_sources::base_data_source.dart::BaseDataSource" <|-- "wyatt_architecture::src::domain::data_sources::local::base_local_data_source.dart::BaseLocalDataSource" abstract class "wyatt_architecture::src::domain::data_sources::base_data_source.dart::BaseDataSource" { } abstract class "wyatt_architecture::src::domain::data_sources::remote::base_remote_data_source.dart::BaseRemoteDataSource" { } "wyatt_architecture::src::domain::data_sources::base_data_source.dart::BaseDataSource" <|-- "wyatt_architecture::src::domain::data_sources::remote::base_remote_data_source.dart::BaseRemoteDataSource" class "wyatt_architecture::src::domain::usecases::no_param.dart::NoParam" { } "wyatt_architecture::src::domain::entities::entity.dart::Entity" <|-- "wyatt_architecture::src::domain::usecases::no_param.dart::NoParam" abstract class "wyatt_architecture::src::domain::usecases::observers.dart::Observer" { +FutureOr onStart() +FutureOr onError() } abstract class "wyatt_architecture::src::domain::usecases::observers.dart::AsyncObserver" { +FutureOr onComplete() } abstract class "wyatt_architecture::src::domain::usecases::observers.dart::StreamObserver" { +void onDone() +void onData() } abstract class "wyatt_architecture::src::domain::usecases::usecase.dart::BaseUseCase" { +ReturnType execute() +ReturnType call() } abstract class "wyatt_architecture::src::domain::usecases::usecase.dart::UseCase" { -FutureOr _onSuccess() +FutureOr> execute() } "wyatt_architecture::src::domain::usecases::usecase.dart::BaseUseCase" <|-- "wyatt_architecture::src::domain::usecases::usecase.dart::UseCase" "wyatt_architecture::src::domain::usecases::observers.dart::Observer" <|-- "wyatt_architecture::src::domain::usecases::usecase.dart::UseCase" abstract class "wyatt_architecture::src::domain::usecases::usecase.dart::AsyncUseCase" { -FutureOr _onSuccess() } "wyatt_architecture::src::domain::usecases::usecase.dart::UseCase" <|-- "wyatt_architecture::src::domain::usecases::usecase.dart::AsyncUseCase" "wyatt_architecture::src::domain::usecases::observers.dart::AsyncObserver" <|-- "wyatt_architecture::src::domain::usecases::usecase.dart::AsyncUseCase" abstract class "wyatt_architecture::src::domain::usecases::usecase.dart::StreamUseCase" { -FutureOr _onSuccess() } "wyatt_architecture::src::domain::usecases::usecase.dart::UseCase" <|-- "wyatt_architecture::src::domain::usecases::usecase.dart::StreamUseCase" "wyatt_architecture::src::domain::usecases::observers.dart::StreamObserver" <|-- "wyatt_architecture::src::domain::usecases::usecase.dart::StreamUseCase" abstract class "wyatt_architecture::src::domain::entities::entity.dart::Entity" { } @enduml