package de.cannamanage.domain.constants;

import java.math.BigDecimal;

/**
 * CanG (Cannabisgesetz) compliance limits.
 * All limits are defined as per §19 CanG (Cannabisgesetz) for social cannabis clubs.
 * These are immutable constants — changes require legal review.
 */
public final class ComplianceConstants {

    // CanG §19(2) — adult daily distribution limit
    public static final BigDecimal ADULT_DAILY_LIMIT_GRAMS = new BigDecimal("25.0");

    // CanG §19(2) — adult monthly distribution limit
    public static final BigDecimal ADULT_MONTHLY_LIMIT_GRAMS = new BigDecimal("50.0");

    // CanG §19(3) — under-21 monthly distribution limit
    public static final BigDecimal UNDER21_MONTHLY_LIMIT_GRAMS = new BigDecimal("30.0");

    // CanG §19(4) — maximum THC percentage allowed for under-21 members
    public static final BigDecimal UNDER21_MAX_THC_PERCENTAGE = new BigDecimal("10.0");

    // Minimum age for club membership (§5 CanG)
    public static final int MINIMUM_MEMBERSHIP_AGE = 18;

    // Age threshold below which stricter limits apply
    public static final int UNDER21_THRESHOLD_AGE = 21;

    private ComplianceConstants() {
        // Utility class — do not instantiate
    }
}
