package logic import ( "context" "errors" "spark-server/internal/pkg/errs" ) func (s *Service) CanSend(ctx context.Context, fromUserID, toUserID int64) error { if !s.ready() || fromUserID <= 0 || toUserID <= 0 { return errs.ErrForbidden } if fromUserID == toUserID { return errs.ErrForbidden } if _, err := s.repo.GetRelation(ctx, fromUserID, toUserID); err != nil { if errors.Is(err, errs.ErrNotFound) { return errs.ErrForbidden } return err } blocked, err := s.repo.BlockedEither(ctx, fromUserID, toUserID) if err != nil { return err } if blocked { return errs.ErrForbidden } return nil }