pub struct Portfolio {
pub id: Uuid,
pub owner_user_id: Uuid,
pub name: String,
pub description: Option<String>,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
}Expand description
Représente un portefeuille (Aggregate Root).
Cf. ADR-0011 (docs/maury/refonte-ux-multi-role-acp/architecture.md).
Fields§
§id: Uuid§owner_user_id: Uuid§name: String§description: Option<String>§created_at: DateTime<Utc>§updated_at: DateTime<Utc>Implementations§
Source§impl Portfolio
impl Portfolio
Sourcepub fn new(
owner_user_id: Uuid,
name: String,
description: Option<String>,
) -> Result<Self, PortfolioError>
pub fn new( owner_user_id: Uuid, name: String, description: Option<String>, ) -> Result<Self, PortfolioError>
Constructeur validé.
Invariants vérifiés :
name.trim()∈ [2, 120] caractères.description.trim()≤ 1000 caractères si présent.
Sourcepub fn update_info(
&mut self,
name: String,
description: Option<String>,
) -> Result<(), PortfolioError>
pub fn update_info( &mut self, name: String, description: Option<String>, ) -> Result<(), PortfolioError>
Mise à jour name + description avec re-validation des invariants.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Portfolio
impl<'de> Deserialize<'de> for Portfolio
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for Portfolio
impl StructuralPartialEq for Portfolio
Auto Trait Implementations§
impl Freeze for Portfolio
impl RefUnwindSafe for Portfolio
impl Send for Portfolio
impl Sync for Portfolio
impl Unpin for Portfolio
impl UnsafeUnpin for Portfolio
impl UnwindSafe for Portfolio
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<T> Fake for T
impl<T> Fake for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreCreates a shared type from an unshared type.