19 lines
549 B
Rust
19 lines
549 B
Rust
use std::sync::Arc;
|
|
|
|
use async_trait::async_trait;
|
|
use como_domain::item::{
|
|
queries::{GetItemQuery, GetItemsQuery},
|
|
requests::CreateItemDto,
|
|
responses::CreatedItemDto,
|
|
ItemDto,
|
|
};
|
|
|
|
pub type DynItemService = Arc<dyn ItemService + Send + Sync>;
|
|
|
|
#[async_trait]
|
|
pub trait ItemService {
|
|
async fn add_item(&self, item: CreateItemDto) -> anyhow::Result<CreatedItemDto>;
|
|
async fn get_item(&self, query: GetItemQuery) -> anyhow::Result<ItemDto>;
|
|
async fn get_items(&self, query: GetItemsQuery) -> anyhow::Result<Vec<ItemDto>>;
|
|
}
|