🔨 Refactors into packages models and dtos

This commit is contained in:
2025-10-05 19:44:31 +02:00
parent 91837d736f
commit cb9cfec119
9 changed files with 130 additions and 78 deletions

25
src/dtos/hit.rs Normal file
View File

@@ -0,0 +1,25 @@
use crate::models::hit::Hit;
use serde::Serialize;
#[derive(Serialize)]
pub struct HitDTO {
pub id: String,
pub tracker_id: String,
pub ip: String,
pub agent: Option<String>,
pub language: Option<String>,
pub created_at: String,
}
impl HitDTO {
pub fn from(hit: &Hit) -> HitDTO {
HitDTO {
id: hit.id.to_string(),
tracker_id: hit.tracker_id.to_string(),
ip: hit.ip.clone(),
agent: hit.agent.clone(),
language: hit.language.clone(),
created_at: hit.created_at.to_string(),
}
}
}

2
src/dtos/mod.rs Normal file
View File

@@ -0,0 +1,2 @@
pub mod hit;
pub mod tracker;

17
src/dtos/tracker.rs Normal file
View File

@@ -0,0 +1,17 @@
use crate::models::tracker::Tracker;
use serde::{Deserialize, Serialize};
#[derive(Serialize)]
pub struct TrackerDTO {
pub id: String,
pub created_at: String,
}
impl TrackerDTO {
pub fn from(tracker: &Tracker) -> TrackerDTO {
TrackerDTO {
id: tracker.id.to_string(),
created_at: tracker.created_at.to_string(),
}
}
}