fix: Update NarratorSummary model to make name_arabic optional and name_transliterated nullable; enhance query filters for non-null Arabic names
This commit is contained in:
parent
f2bab9cadd
commit
5083e377a0
|
|
@ -126,8 +126,8 @@ class HadithDetail(BaseModel):
|
|||
# ── Narrator ───────────────────────────────────────────────────────────────
|
||||
|
||||
class NarratorSummary(BaseModel):
|
||||
name_arabic: str = Field(description="Primary Arabic name")
|
||||
name_transliterated: str = Field("", description="Latin transliteration")
|
||||
name_arabic: str = Field("", description="Primary Arabic name")
|
||||
name_transliterated: Optional[str] = Field("", description="Latin transliteration")
|
||||
entity_type: str = Field("", description="PERSON, KUNYA, NISBA, TITLE")
|
||||
generation: Optional[str] = Field(None, description="طبقة: صحابي، تابعي، تابع التابعين")
|
||||
reliability_grade: Optional[str] = Field(None, description="جرح وتعديل grade: ثقة، صدوق، ضعيف")
|
||||
|
|
|
|||
|
|
@ -253,12 +253,14 @@ async def narrators_by_generation(
|
|||
total = db.neo4j_count("""
|
||||
MATCH (n:Narrator)
|
||||
WHERE toLower(n.generation) CONTAINS toLower($gen)
|
||||
AND n.name_arabic IS NOT NULL
|
||||
RETURN count(n) AS count
|
||||
""", {"gen": q_norm})
|
||||
|
||||
rows = db.neo4j_query("""
|
||||
MATCH (n:Narrator)
|
||||
WHERE toLower(n.generation) CONTAINS toLower($gen)
|
||||
AND n.name_arabic IS NOT NULL
|
||||
OPTIONAL MATCH (n)-[:APPEARS_IN]->(h:Hadith)
|
||||
RETURN n.name_arabic AS name_arabic,
|
||||
n.name_transliterated AS name_transliterated,
|
||||
|
|
@ -293,6 +295,7 @@ async def narrators_by_place(
|
|||
MATCH (n:Narrator)-[r]->(p:Place)
|
||||
WHERE type(r) IN ['BORN_IN', 'LIVED_IN', 'DIED_IN', 'TRAVELED_TO']
|
||||
AND toLower(p.name_arabic) CONTAINS toLower($place)
|
||||
AND n.name_arabic IS NOT NULL
|
||||
RETURN count(DISTINCT n) AS count
|
||||
""", {"place": q_norm})
|
||||
|
||||
|
|
@ -300,6 +303,7 @@ async def narrators_by_place(
|
|||
MATCH (n:Narrator)-[r]->(p:Place)
|
||||
WHERE type(r) IN ['BORN_IN', 'LIVED_IN', 'DIED_IN', 'TRAVELED_TO']
|
||||
AND toLower(p.name_arabic) CONTAINS toLower($place)
|
||||
AND n.name_arabic IS NOT NULL
|
||||
OPTIONAL MATCH (n)-[:APPEARS_IN]->(h:Hadith)
|
||||
RETURN DISTINCT n.name_arabic AS name_arabic,
|
||||
n.name_transliterated AS name_transliterated,
|
||||
|
|
|
|||
Loading…
Reference in New Issue