package com.airlock.iam.flow.shared.domain.model.continuation;

import com.airlock.iam.common.api.domain.model.binary.ByteSequence;
import com.airlock.iam.security.util.crypto.random.AlphanumericRandomStringGenerator;
import java.nio.charset.StandardCharsets;

public record FlowContinuationToken(String token) {
   public static FlowContinuationToken createRandomFlowContinuationToken() {
      return new FlowContinuationToken(AlphanumericRandomStringGenerator.generateAlphanumericRandomString(100));
   }

   public FlowContinuationTokenHash hash() {
      return new FlowContinuationTokenHash(ByteSequence.byteSequence(this.token.getBytes(StandardCharsets.UTF_8)).sha512());
   }
}
