use serde::{Deserialize, Serialize};
use uuid::Uuid;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct ProjectFromIssue {
pub company_id: Uuid,
pub issue_id: Uuid,
pub customer_id: Uuid,
pub subject: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct ProjectAck {
pub project_id: Uuid,
}
#[async_trait::async_trait]
pub trait ProjectPort: Send + Sync {
async fn open_delivery_project(
&self,
req: &ProjectFromIssue,
) -> Result<ProjectAck, SupportRejected>;
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct SupportRejected {
pub code: String,
pub message: String,
}