function deployCampaign(
    uint32 holdingPeriodInSeconds,
    address targetToken,
    address rewardToken,
    uint256 rewardPPQ,
    address campaignAdmin,
    uint256 startTimestamp,
    address alternativeWithdrawalAddress,
    uint256 uuid
) public returns (address campaign) {
    if (campaignAdmin == address(0)) revert ZeroAddress();
    if (targetToken == address(0) || rewardToken == address(0)) revert ZeroAddress();
    if (holdingPeriodInSeconds == 0) revert InvalidParameter();

    // No validation that uuid is unique
    // ...
}
// Add to contract state variables
mapping(uint256 => bool) public usedUUIDs;

// Add to deployCampaign function
if (usedUUIDs[uuid]) revert DuplicateUUID();
usedUUIDs[uuid] = true;
error DuplicateUUID();
