27 lines
747 B
Go
27 lines
747 B
Go
package probe
|
|
|
|
import "supply-intelligence/internal/domain"
|
|
|
|
func NextAccountStatus(current domain.AccountStatus, classification domain.ProbeClassification, consecutiveExplicitFailures int) domain.AccountStatus {
|
|
switch classification {
|
|
case domain.ProbeClassificationSuccess:
|
|
return domain.AccountStatusActive
|
|
case domain.ProbeClassificationExplicitFailure:
|
|
switch current {
|
|
case domain.AccountStatusActive:
|
|
return domain.AccountStatusSuspended
|
|
case domain.AccountStatusSuspended:
|
|
if consecutiveExplicitFailures >= 3 {
|
|
return domain.AccountStatusDisabled
|
|
}
|
|
return domain.AccountStatusSuspended
|
|
default:
|
|
return current
|
|
}
|
|
case domain.ProbeClassificationInconclusive:
|
|
fallthrough
|
|
default:
|
|
return current
|
|
}
|
|
}
|