import jingrow from jingrow.query_builder.functions import Count from jingrow.query_builder.terms import QueryBuilder def check(base_query: QueryBuilder, document_name: str) -> bool: PressRole = jingrow.qb.DocType("Jcloude Role") PressRoleResource = jingrow.qb.DocType("Jcloude Role Resource") ServerSnapshot = jingrow.qb.DocType("Server Snapshot") return ( base_query.left_join(PressRoleResource) .on(PressRoleResource.parent == PressRole.name) .left_join(ServerSnapshot) .on(ServerSnapshot.name == document_name) .select(Count(PressRole.name).as_("count")) .where(PressRoleResource.document_type == "Server") .where(PressRoleResource.document_name == ServerSnapshot.app_server) .run(as_dict=True) .pop() .get("count") > 0 )