use chrono::{DateTime, Utc};
use uuid::Uuid;
use crate::domain::entity::LoginAction;
use crate::infrastructure::schema::login_actions;
#[derive(Queryable, Insertable)]
#[table_name = "login_actions"]
pub struct LoginActionDiesel {
user_id: String,
date_time: DateTime<Utc>,
ip: String,
}
impl Into<LoginAction> for LoginActionDiesel {
fn into(self) -> LoginAction {
LoginAction {
user_id: Uuid::parse_str(&*self.user_id).unwrap(),
date_time: self.date_time,
ip: self.ip,
}
}
}
impl From<LoginAction> for LoginActionDiesel {
fn from(action: LoginAction) -> Self {
Self {
user_id: action.user_id.to_string(),
date_time: action.date_time,
ip: action.ip,
}
}
}