use crate::value_objects::{Email, PasswordHash, UserId, Username}; use chrono::{DateTime, Utc}; #[derive(Debug, Clone)] pub struct User { pub id: UserId, pub username: Username, pub email: Email, pub password_hash: PasswordHash, pub display_name: Option, pub bio: Option, pub avatar_url: Option, pub header_url: Option, pub custom_css: Option, pub local: bool, pub ap_id: Option, pub inbox_url: Option, pub public_key: Option, pub private_key: Option, pub created_at: DateTime, pub updated_at: DateTime, } impl User { pub fn new_local( id: UserId, username: Username, email: Email, password_hash: PasswordHash, ) -> Self { let now = Utc::now(); Self { id, username, email, password_hash, display_name: None, bio: None, avatar_url: None, header_url: None, custom_css: None, local: true, ap_id: None, inbox_url: None, public_key: None, private_key: None, created_at: now, updated_at: now, } } }