Initial public release

This commit is contained in:
thakares committed 2026-06-11 20:19:03 +05:30
commit c1107147b4
92 files changed
+10562

No files matched your search

+11
View File
@@ -0,0 +1,11 @@
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct ApiKey {
pub id: String,
pub user_id: String,
pub key_hash: String,
pub name: String,
pub created_at: String,
pub last_used_at: Option<String>,
}
+13
View File
@@ -0,0 +1,13 @@
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct AuditLog {
pub id: String,
pub timestamp: String,
pub username: String,
pub action: String,
pub object_type: Option<String>,
pub object_id: Option<String>,
pub ip_address: Option<String>,
pub user_agent: Option<String>,
}
+13
View File
@@ -0,0 +1,13 @@
pub mod user;
pub mod url;
pub mod page;
pub mod visit;
pub mod api_key;
pub mod audit;
pub use user::{User, Session};
pub use url::Url;
pub use page::LandingPage;
pub use visit::{VisitRecord, SummaryEntry};
pub use api_key::ApiKey;
pub use audit::AuditLog;
+13
View File
@@ -0,0 +1,13 @@
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct LandingPage {
pub id: String,
pub code: String,
pub slug: String,
pub title: String,
pub html_content: String,
pub state: String, // 'draft', 'published', 'archived'
pub created_at: String,
pub updated_at: String,
}
+14
View File
@@ -0,0 +1,14 @@
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct Url {
pub id: String,
pub code: String,
pub destination: String,
pub title: Option<String>,
pub description: Option<String>,
pub status: String, // 'healthy', 'suspect', 'dead'
pub created_at: String,
pub updated_at: String,
pub tags: Vec<String>,
}
+17
View File
@@ -0,0 +1,17 @@
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct User {
pub id: String,
pub username: String,
pub password_hash: String,
pub created_at: String,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct Session {
pub id: String,
pub user_id: String,
pub expires_at: String,
pub created_at: String,
}
+25
View File
@@ -0,0 +1,25 @@
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct VisitRecord {
pub id: String,
pub target_type: String, // 'url' or 'page'
pub target_id: String,
pub timestamp: String,
pub ip_address: String,
pub user_agent: String,
pub referer: String,
pub accept_language: String,
pub country: String,
pub status_code: u16,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct SummaryEntry {
pub date: String,
pub target_type: String,
pub target_id: String,
pub metric_type: String,
pub metric_key: String,
pub metric_value: i64,
}