|
33 | 33 |
|
34 | 34 | ENTITY_ALIASES = { |
35 | 35 | "customers": { |
36 | | - "aliases": [ |
37 | | - "customer", |
38 | | - "customers", |
39 | | - "client", |
40 | | - "clients", |
41 | | - "accounts", |
42 | | - "buyers", |
43 | | - "companies" |
44 | | - ], |
| 36 | + "aliases": ["customer", "customers", "client", "clients", "accounts", "buyers", "companies"], |
45 | 37 | "table": "daea_Mainframe_VSAM.dbo.CUSTOMERS_VSAM", |
46 | 38 | "description": "VSAM-backed customer master file accessed via CONNX" |
| 39 | + }, |
| 40 | + "orders": { |
| 41 | + "aliases": ["order", "orders", "purchases", "transactions", "sales"], |
| 42 | + "table": "daea_Mainframe_VSAM.dbo.ORDERS_VSAM", |
| 43 | + "description": "Customer order transactions stored in VSAM" |
| 44 | + }, |
| 45 | + "products": { |
| 46 | + "aliases": ["product", "products", "items", "inventory", "goods"], |
| 47 | + "table": "daea_Mainframe_VSAM.dbo.PRODUCTS_VSAM", |
| 48 | + "description": "Product master file stored in VSAM" |
47 | 49 | } |
48 | 50 | } |
49 | 51 |
|
| 52 | + |
50 | 53 | def resolve_entity(name: str) -> Optional[str]: |
51 | 54 | """ |
52 | 55 | Resolve a natural-language entity name to a canonical table. |
@@ -493,39 +496,35 @@ async def get_semantic_entities() -> Dict[str, Any]: |
493 | 496 | "entities": [ |
494 | 497 | { |
495 | 498 | "entity": "customers", |
496 | | - "aliases": [ |
497 | | - "customer", "customers", "client", "clients", |
498 | | - "accounts", "buyers", "companies" |
499 | | - ], |
| 499 | + "aliases": ["customer", "customers", "client", "clients", "accounts", "buyers", "companies"], |
500 | 500 | "table": "daea_Mainframe_VSAM.dbo.CUSTOMERS_VSAM", |
501 | 501 | "primary_key": "CUSTOMERID", |
502 | | - "description": "Customer master records stored in a VSAM file" |
| 502 | + "description": "Customer master records stored in a VSAM file", |
503 | 503 | }, |
504 | 504 | { |
505 | 505 | "entity": "orders", |
506 | | - "aliases": [ |
507 | | - "order", "orders", "purchases", "transactions", "sales" |
508 | | - ], |
| 506 | + "aliases": ["order", "orders", "purchases", "transactions", "sales"], |
509 | 507 | "table": "daea_Mainframe_VSAM.dbo.ORDERS_VSAM", |
510 | 508 | "primary_key": "ORDERID", |
511 | 509 | "foreign_keys": { |
512 | 510 | "CUSTOMERID": "customers.CUSTOMERID", |
513 | | - "PRODUCTID": "products.PRODUCTID" |
| 511 | + "PRODUCTID": "products.PRODUCTID", |
| 512 | + }, |
| 513 | + "relationships": { |
| 514 | + "customers": "orders.CUSTOMERID -> customers.CUSTOMERID", |
| 515 | + "products": "orders.PRODUCTID -> products.PRODUCTID", |
514 | 516 | }, |
515 | | - "description": "Customer order transactions stored in VSAM" |
| 517 | + "description": "Customer order transactions stored in VSAM", |
516 | 518 | }, |
517 | 519 | { |
518 | 520 | "entity": "products", |
519 | | - "aliases": [ |
520 | | - "product", "products", "items", "inventory", "goods" |
521 | | - ], |
| 521 | + "aliases": ["product", "products", "items", "inventory", "goods"], |
522 | 522 | "table": "daea_Mainframe_VSAM.dbo.PRODUCTS_VSAM", |
523 | 523 | "primary_key": "PRODUCTID", |
524 | | - "description": "Product master file stored in VSAM" |
525 | | - } |
| 524 | + "description": "Product master file stored in VSAM", |
| 525 | + }, |
526 | 526 | ] |
527 | 527 | } |
528 | | - |
529 | 528 | # Main Entry Point |
530 | 529 | if __name__ == "__main__": # pragma: no cover |
531 | 530 | # FastMCP.run() manages its own event loop via anyio.run() |
|
0 commit comments