from dataclasses import dataclass from typing import List from pydantic import BaseModel @dataclass class ScriptureCategoryConstants: LITERATURE: str = "literature" SRI_SOOKTHI: str = "sri_sookthi" VEDAM: str = "vedam" ITHIHASAM: str = "ithihasam" PURANAM: str = "puranam" STOTRAM: str = "stotram" SOCIAL_MEDIA: str = "social" VEDANTA: str = "vedanta" GRANTHAM: str = "grantham" @dataclass class ScriptureCategory: name: str title: str @dataclass class ScriptureCategories: categories: list[ScriptureCategory] scripture_categories = ScriptureCategories( categories=[ ScriptureCategory( name=ScriptureCategoryConstants.LITERATURE, title="Azhwar's Arulicheyal", ), ScriptureCategory( name=ScriptureCategoryConstants.SRI_SOOKTHI, title="Acharya Sri Sookthis", ), ScriptureCategory( name=ScriptureCategoryConstants.VEDAM, title="Vedas & Upanishads" ), ScriptureCategory( name=ScriptureCategoryConstants.ITHIHASAM, title="Ithihasams" ), ScriptureCategory(name=ScriptureCategoryConstants.PURANAM, title="Puranams"), ScriptureCategory(name=ScriptureCategoryConstants.STOTRAM, title="Stotrams"), ScriptureCategory( name=ScriptureCategoryConstants.SOCIAL_MEDIA, title="Social Media" ), ScriptureCategory(name=ScriptureCategoryConstants.VEDANTA, title="Vedanta"), ScriptureCategory(name=ScriptureCategoryConstants.GRANTHAM, title="Granthams"), ] ) def get_scripture_category_by_name(name: str): matches = [ category for category in scripture_categories.categories if category.name == name ] if matches: return matches[0] else: raise Exception(f"No category found by name [{name}]!") def get_scripture_categories(): return scripture_categories