package com.airlock.iam.common.infrastructure.usertrail;

import com.airlock.iam.common.domain.model.usertrail.UserTrailLogRepository;
import com.airlock.iam.log.usertrail.UserTrailLog;
import com.airlock.iam.log.usertrail.UserTrailLogAppender;
import lombok.NonNull;

public final class UserTrailLogDatabaseAppender implements UserTrailLogAppender {
   @NonNull
   private final UserTrailLogRepository userTrailLogRepository;

   public UserTrailLogDatabaseAppender(@NonNull UserTrailLogRepository userTrailLogRepository) {
      if (userTrailLogRepository == null) {
         throw new NullPointerException("userTrailLogRepository is marked non-null but is null");
      }

      this.userTrailLogRepository = userTrailLogRepository;
   }

   public void append(UserTrailLog logEntry) {
      this.userTrailLogRepository.insert(logEntry);
   }
}
