use sea_orm::entity::prelude::*; use time::OffsetDateTime; use uuid::Uuid; use super::project_health::ProjectHealth; use super::project_state::ProjectState; #[sea_orm::model] #[derive(Clone, Debug, PartialEq, Eq, DeriveEntityModel)] #[sea_orm(table_name = "project")] pub struct Model { #[sea_orm(primary_key, auto_increment = false)] pub id: Uuid, pub space_id: Uuid, pub creator_id: Uuid, pub name: String, pub description: Option, pub lead_id: Option, pub icon: Option, pub color: Option, pub state: ProjectState, pub target_date: Option, pub started_at: Option, pub completed_at: Option, pub cancelled_at: Option, pub health: Option, #[sea_orm(default_value = 0)] pub sort_order: i32, #[sea_orm(default_value = 0)] pub starred: i32, pub created_at: OffsetDateTime, pub updated_at: Option, #[sea_orm(belongs_to, from = "space_id", to = "id")] pub space: BelongsTo, #[sea_orm(belongs_to, relation_enum = "Creator", from = "creator_id", to = "uid")] pub creator: BelongsTo, #[sea_orm(belongs_to, relation_enum = "Lead", from = "lead_id", to = "uid")] pub lead: BelongsTo>, #[sea_orm(has_many)] pub project_members: HasMany, #[sea_orm(has_many)] pub project_views: HasMany, #[sea_orm(has_many)] pub project_documents: HasMany, #[sea_orm(has_many)] pub project_activities: HasMany, #[sea_orm(has_many)] pub project_favorites: HasMany, } impl ActiveModelBehavior for ActiveModel {}