fix: Update fields to use Optional type for better clarity and handling of null values
This commit is contained in:
parent
c6191180c8
commit
0a66b9c0e3
|
|
@ -5,7 +5,7 @@ from functools import lru_cache
|
|||
class Settings(BaseSettings):
|
||||
app_name: str = "Hadith Scholar API"
|
||||
app_version: str = "0.1.0"
|
||||
debug: bool = False
|
||||
debug: Optional[bool] = None
|
||||
|
||||
# PostgreSQL
|
||||
pg_host: str = "pg.betelgeusebytes.io"
|
||||
|
|
|
|||
|
|
@ -67,8 +67,8 @@ class TopicTag(BaseModel):
|
|||
class NarratorInChain(BaseModel):
|
||||
order: int = Field(description="Position in chain: 1=closest to compiler, last=closest to Prophet ﷺ")
|
||||
name_arabic: str = Field(description="Narrator's Arabic name as it appears in the hadith text")
|
||||
name_transliterated: str = Field("", description="Latin transliteration of the name")
|
||||
entity_type: str = Field("", description="PERSON, KUNYA (أبو/أم), NISBA (attributional), or TITLE (رسول الله)")
|
||||
name_transliterated: Optional[str] = Field(None, description="Latin transliteration of the name")
|
||||
entity_type: Optional[str] = Field(None, description="PERSON, KUNYA (أبو/أم), NISBA (attributional), or TITLE (رسول الله)")
|
||||
transmission_verb: Optional[str] = Field(None, description="Exact Arabic transmission verb: حدثنا، أخبرنا، عن، سمعت")
|
||||
|
||||
model_config = {
|
||||
|
|
@ -121,8 +121,8 @@ class HadithDetail(BaseModel):
|
|||
|
||||
class NarratorSummary(BaseModel):
|
||||
name_arabic: str = Field(description="Primary Arabic name")
|
||||
name_transliterated: str = Field("", description="Latin transliteration")
|
||||
entity_type: str = Field("", description="PERSON, KUNYA, NISBA, TITLE")
|
||||
name_transliterated: Optional[str] = Field(None, description="Latin transliteration")
|
||||
entity_type: Optional[str] = Field(None, description="PERSON, KUNYA, NISBA, TITLE")
|
||||
generation: Optional[str] = Field(None, description="طبقة: صحابي، تابعي، تابع التابعين")
|
||||
reliability_grade: Optional[str] = Field(None, description="جرح وتعديل: ثقة، صدوق، ضعيف، متروك")
|
||||
hadith_count: int = Field(0, description="Number of hadiths this narrator appears in")
|
||||
|
|
@ -166,8 +166,8 @@ class PlaceRelation(BaseModel):
|
|||
|
||||
class NarratorProfile(BaseModel):
|
||||
name_arabic: str = Field(description="Primary Arabic name")
|
||||
name_transliterated: str = Field("", description="Latin transliteration")
|
||||
entity_type: str = Field("", description="PERSON, KUNYA, NISBA, TITLE")
|
||||
name_transliterated: Optional[str] = Field(None, description="Latin transliteration")
|
||||
entity_type: Optional[str] = Field(None, description="PERSON, KUNYA, NISBA, TITLE")
|
||||
full_nasab: Optional[str] = Field(None, description="Full lineage: فلان بن فلان بن فلان")
|
||||
kunya: Optional[str] = Field(None, description="أبو/أم name (e.g. أبو هريرة)")
|
||||
nisba: Optional[str] = Field(None, description="Attributional name (e.g. البخاري، المدني، الزهري)")
|
||||
|
|
@ -226,8 +226,8 @@ class NarratorProfile(BaseModel):
|
|||
|
||||
class IsnadNode(BaseModel):
|
||||
name_arabic: str = Field(description="Narrator Arabic name")
|
||||
name_transliterated: str = Field("", description="Latin transliteration")
|
||||
entity_type: str = Field("", description="PERSON, KUNYA, NISBA, TITLE")
|
||||
name_transliterated: Optional[str] = Field(None, description="Latin transliteration")
|
||||
entity_type: Optional[str] = Field(None, description="PERSON, KUNYA, NISBA, TITLE")
|
||||
generation: Optional[str] = Field(None, description="طبقة")
|
||||
reliability_grade: Optional[str] = Field(None, description="جرح وتعديل grade")
|
||||
|
||||
|
|
@ -271,9 +271,9 @@ class IsnadChain(BaseModel):
|
|||
|
||||
class NarratorInteraction(BaseModel):
|
||||
narrator_a: str = Field(description="First narrator Arabic name")
|
||||
narrator_a_transliterated: str = Field("", description="First narrator transliteration")
|
||||
narrator_a_transliterated: Optional[str] = Field(None, description="First narrator transliteration")
|
||||
narrator_b: str = Field(description="Second narrator Arabic name")
|
||||
narrator_b_transliterated: str = Field("", description="Second narrator transliteration")
|
||||
narrator_b_transliterated: Optional[str] = Field(None, description="Second narrator transliteration")
|
||||
relationship_type: str = Field(description="NARRATED_FROM, TEACHER_OF, HEARD_BY, STUDENT_OF")
|
||||
shared_hadith_count: int = Field(0, description="Number of hadiths connecting them")
|
||||
hadith_ids: list[str] = Field(default_factory=list, description="IDs of connecting hadiths (max 20)")
|
||||
|
|
@ -295,7 +295,7 @@ class NarratorInteraction(BaseModel):
|
|||
|
||||
class NarratorConnection(BaseModel):
|
||||
narrator: str = Field(description="Connected narrator Arabic name")
|
||||
narrator_transliterated: str = Field("", description="Transliteration")
|
||||
narrator_transliterated: Optional[str] = Field(None, description="Transliteration")
|
||||
connection_type: str = Field(description="Relationship type")
|
||||
direction: str = Field(description="'incoming' (they → this) or 'outgoing' (this → them)")
|
||||
|
||||
|
|
@ -311,7 +311,7 @@ class NarratorNetwork(BaseModel):
|
|||
class SemanticSearchResult(BaseModel):
|
||||
hadith: HadithSummary = Field(description="Matching hadith")
|
||||
score: float = Field(description="Cosine similarity score (0-1, higher = more relevant)")
|
||||
collection: str = Field("", description="Collection name")
|
||||
collection: Optional[str] = Field(None, description="Collection name")
|
||||
|
||||
model_config = {
|
||||
"json_schema_extra": {
|
||||
|
|
|
|||
Loading…
Reference in New Issue