24
crates/como_domain/src/item/mod.rs
Normal file
24
crates/como_domain/src/item/mod.rs
Normal file
@@ -0,0 +1,24 @@
|
||||
pub mod queries;
|
||||
pub mod requests;
|
||||
pub mod responses;
|
||||
|
||||
use async_graphql::{Enum, InputObject};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use uuid::Uuid;
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize, Clone, PartialEq, Eq, Enum, Copy)]
|
||||
pub enum ItemState {
|
||||
Created,
|
||||
Done,
|
||||
Archived,
|
||||
Deleted,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq, InputObject)]
|
||||
pub struct ItemDto {
|
||||
pub id: Uuid,
|
||||
pub title: String,
|
||||
pub description: Option<String>,
|
||||
pub state: ItemState,
|
||||
pub project_id: Uuid,
|
||||
}
|
13
crates/como_domain/src/item/queries.rs
Normal file
13
crates/como_domain/src/item/queries.rs
Normal file
@@ -0,0 +1,13 @@
|
||||
use async_graphql::InputObject;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use uuid::Uuid;
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq, InputObject)]
|
||||
pub struct GetItemQuery {
|
||||
pub item_id: Uuid,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq, InputObject)]
|
||||
pub struct GetItemsQuery {
|
||||
pub project_id: Uuid,
|
||||
}
|
21
crates/como_domain/src/item/requests.rs
Normal file
21
crates/como_domain/src/item/requests.rs
Normal file
@@ -0,0 +1,21 @@
|
||||
use async_graphql::InputObject;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use uuid::Uuid;
|
||||
|
||||
use super::ItemState;
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq, InputObject)]
|
||||
pub struct CreateItemDto {
|
||||
pub title: String,
|
||||
pub description: Option<String>,
|
||||
pub project_id: Uuid,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq, InputObject)]
|
||||
pub struct UpdateItemDto {
|
||||
pub id: Uuid,
|
||||
pub title: Option<String>,
|
||||
pub description: Option<String>,
|
||||
pub state: Option<ItemState>,
|
||||
pub project_id: Option<Uuid>,
|
||||
}
|
3
crates/como_domain/src/item/responses.rs
Normal file
3
crates/como_domain/src/item/responses.rs
Normal file
@@ -0,0 +1,3 @@
|
||||
use super::ItemDto;
|
||||
|
||||
pub type CreatedItemDto = ItemDto;
|
Reference in New Issue
Block a user