async fn purge_expired(client: &Client) -> Result<u64, Error>
读取配置并删除过期回收站文章,返回删除行数。
抽取为独立函数便于单元测试(虽需 DB,但逻辑集中)。