resolveBlog static method

Future<SlugMatch?> resolveBlog(
  1. String slugOrId
)

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;
}