use chrono::{DateTime, Utc};
use gatekeep::{FactId, SubjectSlot};
use keepsake::{CommandContext, RelationId, RevokeBySubject, SubjectRef};
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct KeepsakeRelationTarget {
pub fact: FactId,
pub subject: SubjectRef,
pub relation_id: RelationId,
pub subject_slot: Option<SubjectSlot>,
}
impl KeepsakeRelationTarget {
#[must_use]
pub fn revoke_by_subject(&self, at: DateTime<Utc>, context: CommandContext) -> RevokeBySubject {
RevokeBySubject::new(self.subject.clone(), self.relation_id, at, context)
}
}