date: Optional[date_type] = Query(None, description="Single day, YYYY-MM-DD"), date_from: Optional[date_type] = Query(None, alias="from"), date_to: Optional[date_type] = Query(None, alias="to"), groomer_id: Optional[uuid.UUID] = Query(None), user: User = Depends(current_active_user), session: AsyncSession = Depends(get_async_session), ): dt_from, dt_to = _resolve_date_range(date, date_from, date_to) if user.role in (Role.admin, Role.groomer): appts = await crud.list_all( session, date_from=dt_from, date_to=dt_to, groomer_id=groomer_id, ) else: # Client: only their own; groomer_id filter is ignored for safety appts = await crud.list_for_client( session, user.id, date_from=dt_from, date_to=dt_to, ) return await _enrich_appointments(session, appts)