use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct LicensePayload {
pub hwid: String,
pub issued_at: DateTime<Utc>,
pub expires_at: DateTime<Utc>,
pub license_type: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ValidLicenseInfo {
pub license_type: String,
pub issued_at: DateTime<Utc>,
pub expires_at: DateTime<Utc>,
pub hwid: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Value>,
}
impl From<LicensePayload> for ValidLicenseInfo {
fn from(payload: LicensePayload) -> Self {
ValidLicenseInfo {
license_type: payload.license_type,
issued_at: payload.issued_at,
expires_at: payload.expires_at,
hwid: payload.hwid,
metadata: payload.metadata,
}
}
}