use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use validator::Validate;
#[derive(Debug, Serialize)]
pub struct Project {
pub id: i64,
pub name: String,
pub description: Option<String>,
pub repository_url: Option<String>,
pub status: String,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
}
#[derive(Debug, Deserialize, Validate)]
pub struct CreateProjectRequest {
#[validate(length(min = 1, max = 255))]
pub name: String,
#[validate(length(max = 1000))]
pub description: Option<String>,
#[validate(url)]
pub repository_url: Option<String>,
}
#[derive(Debug, Deserialize, Validate)]
pub struct UpdateProjectRequest {
#[validate(length(min = 1, max = 255))]
pub name: Option<String>,
#[validate(length(max = 1000))]
pub description: Option<String>,
#[validate(url)]
pub repository_url: Option<String>,
pub status: Option<String>,
}