sharenet/backend/crates/domain/src/models/user.rs
2025-03-26 21:31:13 -04:00

40 lines
797 B
Rust

use crate::{Id, IdParseError, Name, NameError};
use thiserror::Error;
#[derive(Debug, Clone)]
pub struct User {
id: Id,
first_name: Name,
last_name: Name,
}
#[derive(Error, Debug)]
pub enum InvalidUserError {
#[error("uuid parse error")]
Id(IdParseError),
#[error(transparent)]
Name(#[from] NameError),
}
impl User {
#[must_use]
pub fn new(id: Id, first_name: Name, last_name: Name) -> Self {
Self {
id,
first_name,
last_name,
}
}
#[must_use]
pub const fn id(&self) -> Id {
self.id
}
#[must_use]
pub fn first_name(&self) -> String {
self.first_name.to_string()
}
#[must_use]
pub fn last_name(&self) -> String {
self.last_name.to_string()
}
}