resolveBlog static method
Resolve a prefixed blog slug/ID — tries slug first, then ID.
Implementation
static Future<SlugMatch?> resolveBlog(String slugOrId) async {
if (slugOrId.isEmpty) return null;
final entry = await BlogEntryFirestore().getBySlug(slugOrId);
if (entry != null && entry.id.isNotEmpty) {
return SlugMatch(type: 'blog', id: entry.id, slug: slugOrId, entity: entry);
}
// Fallback: try by ID
final entryById = await BlogEntryFirestore().retrieve(slugOrId);
if (entryById.id.isNotEmpty) {
return SlugMatch(type: 'blog', id: entryById.id, slug: '', entity: entryById);
}
return null;
}