feat(retention): implement data retention policy

- introduce `Retention` struct to define data retention period and label generation flag
- add `MessageAge` enum to represent different retention time units (days, months, years)
- implement default values for retention policy (5 years, generate label)
This commit is contained in:
Jeremiah Russell
2025-10-07 15:51:34 +01:00
committed by Jeremiah Russell
parent 4390fe4c2d
commit f63a0f888d

36
src/retention.rs Normal file
View File

@@ -0,0 +1,36 @@
mod message_age;
pub use message_age::MessageAge;
/// Define retention period and flag to indicate if label should be generated
#[derive(Debug)]
pub struct Retention {
age: MessageAge,
generate_label: bool,
}
impl Default for Retention {
fn default() -> Self {
Self {
age: MessageAge::Years(5),
generate_label: true,
}
}
}
impl Retention {
pub(crate) fn new(age: MessageAge, generate_label: bool) -> Self {
Retention {
age,
generate_label,
}
}
pub(crate) fn age(&self) -> &MessageAge {
&self.age
}
pub(crate) fn generate_label(&self) -> bool {
self.generate_label
}
}