pub async fn process_proposal(
conn: &mut PgConnection,
page_id: Uuid,
page_proposal_id: Uuid,
block_proposals: Vec<BlockProposalInfo>,
author: Uuid,
spec_fetcher: impl SpecFetcher,
fetch_service_info: impl Fn(Url) -> BoxFuture<'static, ModelResult<ExerciseServiceInfoApi>>,
) -> ModelResult<()>