use super::event::AuditEvent;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize, Deserialize)]
pub struct AuditTailRequest {
pub limit: u32,
}
impl AuditTailRequest {
#[must_use]
pub const fn new(limit: u32) -> Self {
Self { limit }
}
#[must_use]
pub const fn normalized_limit(self) -> u32 {
if self.limit == 0 {
100
} else if self.limit > 500 {
500
} else {
self.limit
}
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct AuditTailRecord {
pub sequence_id: i64,
pub event: AuditEvent,
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct AuditTail {
pub events: Vec<AuditTailRecord>,
}
#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
pub struct AuditChainVerifyReport {
pub events_scanned: usize,
pub chain_valid: bool,
pub first_break_at_sequence: Option<i64>,
pub first_break_event_id: Option<String>,
}