package context

// fastapiEquivalenceClasses returns equivalence classes for fastapi.
func fastapiEquivalenceClasses() []EquivalenceClass {
	return []EquivalenceClass{
		{
		Concept:    "FASTAPI_DEPENDENCY",
		Phrases:    []string{"dependency injection", "depends", "dependency function", "nested dependency", "generator dependency"},
		Targets:    []string{"Depends", "DependsClass", "solve_dependencies", "get_dependant", "Dependant", "SecurityScopes"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "python",
		},
		{
		Concept:    "FASTAPI_ROUTER",
		Phrases:    []string{"api router", "fastapi router", "include router", "route handler", "endpoint"},
		Targets:    []string{"APIRouter", "include_router", "add_api_route", "APIRoute", "get_routes"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "python",
		},
		{
		Concept:    "FASTAPI_VALIDATION",
		Phrases:    []string{"request validation", "pydantic model", "response model", "body parameter", "query parameter"},
		Targets:    []string{"BaseModel", "Field", "Body", "Query", "Path", "Header", "Cookie", "RequestValidationError", "ModelField"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "python",
		},
		{
		Concept:    "FASTAPI_OPENAPI",
		Phrases:    []string{"openapi schema", "swagger", "api documentation", "openapi generation", "schema generation"},
		Targets:    []string{"get_openapi", "get_openapi_path", "get_flat_models_from_routes", "get_model_definitions", "OpenAPI"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "python",
		},
		{
		Concept:    "FASTAPI_SECURITY",
		Phrases:    []string{"oauth2", "api key", "bearer token", "security scheme", "authentication"},
		Targets:    []string{"OAuth2PasswordBearer", "OAuth2PasswordRequestForm", "SecurityScopes", "APIKeyHeader", "APIKeyCookie", "HTTPBearer"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "python",
		},
		{
		Concept:    "FASTAPI_LIFESPAN",
		Phrases:    []string{"lifespan", "startup", "shutdown", "on_event", "application lifecycle"},
		Targets:    []string{"Lifespan", "on_event", "startup", "shutdown", "AsyncExitStack"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "python",
		},
		{
		Concept:    "FASTAPI_WEBSOCKET",
		Phrases:    []string{"websocket", "websocket endpoint", "bidirectional", "streaming"},
		Targets:    []string{"WebSocket", "WebSocketRoute", "WebSocketEndpoint", "StreamingResponse", "EventSourceResponse"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "python",
		},
		{
		Concept:    "FASTAPI_APP",
		Phrases:    []string{"fastapi app", "application", "openapi", "swagger", "docs"},
		Targets:    []string{"FastAPI", "build_middleware_stack", "openapi", "setup", "openapi_schema"},
		TargetType: "symbol",
		Weight:     0.8,
		Source:     "language",
		},
		{
		Concept:    "FASTAPI_BACKGROUND",
		Phrases:    []string{"background task", "background job", "after response", "async task"},
		Targets:    []string{"BackgroundTasks", "add_task", "BackgroundTask"},
		TargetType: "symbol",
		Weight:     0.8,
		Source:     "language",
		},
		{
		Concept:    "FASTAPI_UPLOAD",
		Phrases:    []string{"file upload", "upload file", "multipart", "form data"},
		Targets:    []string{"UploadFile", "File", "Form", "Body"},
		TargetType: "symbol",
		Weight:     0.8,
		Source:     "language",
		},
		{
		Concept:    "FASTAPI_EXCEPTION",
		Phrases:    []string{"exception handler", "error handler", "http exception", "error response"},
		Targets:    []string{"http_exception_handler", "request_validation_exception_handler", "HTTPException", "exception_handler", "exception_handlers"},
		TargetType: "symbol",
		Weight:     0.8,
		Source:     "language",
		},
		{
		Concept:    "FASTAPI_BACKGROUND",
		Phrases:    []string{"background task", "background job", "after response", "async task"},
		Targets:    []string{"BackgroundTasks", "BackgroundTasks.add_task", "run_endpoint_function"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "python",
		},
		{
		Concept:    "FASTAPI_REQUEST_LIFECYCLE",
		Phrases:    []string{"request lifecycle", "route handler", "request response cycle", "response serialization"},
		Targets:    []string{"APIRoute.get_route_handler", "get_request_handler", "request_response", "solve_dependencies", "serialize_response", "jsonable_encoder"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "python",
		},
		{
		Concept:    "FASTAPI_PARAM_EXTRACT",
		Phrases:    []string{"parameter extraction", "body field", "query parameter", "path parameter", "analyze param"},
		Targets:    []string{"analyze_param", "add_param_to_fields", "request_body_to_args", "get_body_field", "create_body_model"},
		TargetType: "symbol",
		Weight:     0.9,
		Source:     "framework",
		Lang:       "python",
		},
	}
}
