Services in main package (e.g., UserService.java).
Use repositories for DB access.
May depend on other services (e.g., KeycloakService, SlugService).
Handle business logic, updates, creations.
Do NOT inject CurrentUserContext into services. Pass currentUserId as a method parameter from the controller instead. This keeps services testable and decoupled from the HTTP request context.
When querying workspace subclass-specific fields (e.g., orgId, userId), query the subclass directly: SELECT w FROM OrgWorkspace w WHERE w.orgId = :orgId.