The story is full of hearts and comedy, but predictable, lame comedy lines that's cringey to watch.
More specifics (contains minor spoilers):
Hero: Says that only true good heart people will be selected, but he's done nothing to show that he is. 20 minutes of the movie is about discovering power in lame comedic way. If only they invested more on the character.
Villain: Random goals changing through out the film, revenge, power, attention?! Introduced him as a cruel villain then make him play hide and seek with shazam. Really?