Refactor internal campaigns package
Created by: eseliger
internal/campaigns/types.go
has grown pretty big (~2000loc) and also has rather bad coverage at <28%.
I think we should investigate how we can reduce the size of that file / increase coverage of it, because it does feel kinda scary to me.